欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

漏洞挖掘中的常见的源码泄露

程序员文章站 2022-05-17 08:28:20
...

这几天一直想写点啥,偶然间,逛我们团长 小艾 的博客,我看到一个文章,题目是 " 常见的web 源码泄露漏洞 ",其中记录了好多源码泄露,但是我就见过其中三个,所以就想着总结一份挖洞中常见的源码泄露吧。

小艾那篇文章的地址:http://www.htmlsec.com/?p=50

在记录之前,我为了证明我的想法,我以关键词 ' 源码泄露 ' 在乌云漏洞库刷了一遍案例。

漏洞挖掘中的常见的源码泄露

一共 300 多个,但是说白了还是常见的那几种,我就从多到少的方式开始写。

一,svn 源码泄露

SVN(subversion)是源代码版本管理软件。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。

svn 源码泄露示例:

http://127.0.0.1/.svn/entries

1,

漏洞挖掘中的常见的源码泄露

2,

漏洞挖掘中的常见的源码泄露

如果存在以上案例中的情形,说明存在 svn 源码泄露 。

svn 源码泄露利用工具:

漏洞挖掘中的常见的源码泄露

这个一般都是使用的 'Seay SVN漏洞利用工具' 法师的工具。

链接: http://pan.baidu.com/s/1eSP6lUE 密码: a7b1

漏洞利用证明截图:

漏洞挖掘中的常见的源码泄露

二, 网站源码压缩备份泄露

一般网站管理员在日常维护中,总会把网站源码给备份一下,防止网站出现问题时,能马上的恢复使用,不过一般的管理员安全意识不高,在备份的时候,会使用一些常见的压缩备份名,而且不光使用常见的备份名字,大部分的管理还会把备份好的源码直接放在网站根目录里,这样给一些不法之徒,提供了一个很方便的渗透思路,或者有些直接不需要渗透了,因为备份中的数据,就已经满足那些不法之徒的需求了。

网站源码压缩备份示例:

1,

漏洞挖掘中的常见的源码泄露2,

漏洞挖掘中的常见的源码泄露

部分常见的网站源码压缩备份名:

0.rar
web.rar
www.rar
wwwroot.rar
back.rar
temp.rar
backup.rar
bbs.zip
website.rar

常用探测源码备份工具:

这个其实不是靠工具的,是靠字典的,工具的话,网上任何能扫目录的工具,都可以用来探测源码备份的,不过常见的还是用的 御剑1.5 ,或者自己写的一些扫目录的小脚本工具。

三, .git 源码泄露

在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。

.git 源码泄露示例:

http://127.0.0.1/.git/config

漏洞挖掘中的常见的源码泄露

这类案例网站不好站,但是我千找万找,还是找见一个案例。。。

.git 漏洞利用工具:

1, GitHack

GitHack.py http://127.0.0.1/.git/

GitHack 工具使用说明:

GitHack:一个git泄露利用脚本 - FreeBuf.COM | 关注黑客与极客

2,dvcs-ripper

rip-git.pl -v -u http://127.0.0.1/.git/

暂无使用详细使用说明,推荐使用第一个工具。

四,GitHub 项目源码泄露

github 是全球最大的 那个啥 交流网站,数以百计的大侠,高手,圣手,教主,小白,宗主,等等级别人物的汇集之地,而平台的服务设施,很人性化,而且用户体验度高,所以,用的人很多,而且很人也都喜欢把自己的代码上传到平台,反正是很方便。

有些安全意识不高的程序员大意的把自己的项目源码上传到 GitHub ,一些 不法份子 在收集信息中,通过关键词进行搜索,可以找到关于目标站点的信息,有些信息直接泄露了网站源码,管理员账号密码,数据库信息等。

漏洞示例:

漏洞挖掘中的常见的源码泄露

http://www.loner.fm/bugs/searchbug.php?q=github&page=1

 

----------------------------------------------------------------------------------------------------------------------

总结:

源码泄露,正如一开始我看小艾那个文章,有好多个,但是在实际的漏洞挖掘中,就这不几个常见的,或者说就前三种,剩下的源码泄露的漏洞都是不好找。

-----------------------------------------------------------------------------------------------------------------------

完了吗?肯定不能完啊!主要还是闲的没事,就自己想着自己写一个扫源码泄露的小脚本吧,结果,从一开始远大的抱负,写一个让自己用的脚本,结果越写, bug 越多,,,多到我自己都不会改了。。。

从多线程批量扫描式,删到单线程批量,再继续删到单个网站外接式探测,再继续删到单个网站内接式探测,,,,最后全删完了。。。

恩,然后瞎几把写了一个纯属娱乐的还误报很多的垃圾小脚本。。。

# (幸亏我不是程序员啊!要不然真的成了,钱多,话少,还 ④ 的早的段子了。。。)

# -*- coding:utf-8 -*-

# 导入 request 模块
import requests
# 把需要探测的文件放到这个列表里,并赋值给 mulu 
mulu = ['/.git/config', '/.svn/entries', 'web.rar', 'www.rar', 'wwwroot.rar', '1.rar', 'bbs.zip', 'website.rar']
print '- - - - - - - - - - - - - - - - - - - - -' # 没啥用
print u'|    这是一个很娱乐的源码泄露探测脚本   |'# 没啥用
print '- - - - - - - - - - - - - - - - - - - - -' # 没啥用
# 用来输入需要探测的网址
dizhi = raw_input('请输入URL地址:'.decode('utf-8').encode('gbk'))
# 把列表里的元素一个一个遍历出来
for a in mulu:
	# 把网址和探测的文件连接到一起
    tance = "%s/%s" % (dizhi, a)
    # print tance   这一行是我看看到底连接到一起了没的。。。
	# 使用 request 模块里的 get 来获取这个网址
    qq = requests.get(url=tance)

	# 获取响应码并赋值给 dq
    dq = qq.status_code
	# 判断响应码是否为 200 ,是,就进行下一步
    if dq == 200 :
		# 输出 响应码和探测地址
        print u"响应码:[%s]  -  地址:%s" % (dq, tance)
	# 如果响应码不是 200 就进行着一步
    else:
	# 输入响应码和地址
        print u"响应码:[%s]  -  地址:%s" % (dq, tance)

来,开始玩一玩这个垃圾脚本 (*^__^*) 嘻嘻……

漏洞挖掘中的常见的源码泄露

恩,测试测试 离心小姐姐 的博客吧? #(斜眼笑...)

请输入URL地址:http://www.lsafe.org

漏洞挖掘中的常见的源码泄露

@我是离心 你不会打我把? #( 一脸无辜.GIF )

完 ...

不追热点、不关时政、不要喧哗、不惹纷争、做自己喜欢的事,过宁静的生活。