欢迎光临
我们一直在努力

常见的Web源码泄漏漏洞

1.Git 源码泄露

​ 开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码

简要介绍git的目录结构
在一个目录中初始化一个仓库以后 , 会在这个目录下产生一个名叫 .git 的隐藏文件夹(版本库)这个文件夹里面保存了这个仓库的所有版本等一系列信息

一般来说 , 一个git仓库还存在这两个文件 :

确定是否存在泄漏

dirsearch 工具扫描后台,如果存在则会扫描出 .git 目录

也可以直接通过网页访问 .git 目录,如果能访问就说明存在

漏洞利用

1.GitHack工具

​ 是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码。渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注射等安全漏洞。

github项目地址:https://github.com/lijiejie/GitHack

命令:

python GitHack.py http://www.xxx.com/.git/ 

2.爬虫爬取(推荐使用)

​ 这种方法和使用githack这个工具相比 , 有一个比较好的地方就是 , 可以完全模拟服务器上的代码环境 , 可以跟踪到git的每一次提交 , 但是githack好像只可以将源码恢复到最近的一次提交,这里的好处还有可以去查看git的提交日志 , 这个日志信息中会有开发人员对每一次commit的描述 , 比如某个BUG的修复等等。

具体利用思路 :

命令:

wget -r -p -np -k http://www.xxx.com/.git/ (kail中使用) 获取源码 --recursive(递归) -k, --convert-links(转换链接) -p, --page-requisites(页面必需元素) -np, --no-parent(不追溯至父级) .git 文件可能被隐藏 可用 ls -a 查看 

利用命令 : git log 查看网站的提交记录
利用命令 : git reset --hard [log hash]恢复到指定版本号 (一般如果只需要得到源码的话就恢复到最近的一次提交)

利用命令:git show 查看文件

漏洞修复:

1.对.git目录的访问权限进行控制
2.在每次pull到web目录下之后删除.git文件夹

2. hg源码泄漏

Mercurial 是一种轻量级分布式版本控制系统,使用 hg init的时候会生成.hg

漏洞利用工具:dvcs-ripper

github项目地址:https://github.com/kost/dvcs-ripper

用法:

rip-hg.pl -v -u http://www.example.com/.hg/ 

3. SVN 源码泄露

​ SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。网站管理员在发布代码时,没有使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,可以利用.svn/entries文件,获取到服务器源码

漏洞利用工具:Seay SVN漏洞利用工具,dvcs-ripper

用法:

rip-svn.pl -v -u http://www.example.com/.svn/ 

修复建议:

删除web目录中所有.svn隐藏文件夹,开发人员在使用SVN时,严格使用导出功能,禁止直接复制代码

4. CVS泄露

​ CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。主要是针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息

http://url/CVS/Root 返回根信息 http://url/CVS/Entries 返回所有文件的结构 

漏洞利用工具:dvcs-ripper

用法:

rip-cvs.pl -v -u http://www.example.com/CVS/ 

5、Bazaar/bzr泄露

bzr也是个版本控制工具, 虽然不是很热门, 但它也是多平台支持, 并且有不错的图形界面

用法:

rip-bzr.pl -v -u http://www.example.com/.bzr/ 

6. WEB-INF/web.xml 泄露

​ WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

Tomcat的WEB-INF目录,每个j2ee的web应用部署文件默认包含这个目录。
Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录(请注意这里,是通过Nginx,而不是Tomcat访问到的,因为上面已经说到,Tomcat是禁止访问这个目录的。)。

WEB-INF 主要包含一下文件或目录:

WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则. WEB-INF/database.properties : 数据库配置文件 WEB-INF/classes/ : 一般用来存放Java类文件(.class) WEB-INF/lib/ : 用来存放打包好的库(.jar) WEB-INF/src/ : 用来放源代码(.asp和.php等) 

利用方式:

直接在域名后面加上WEB-INF/web.xml

通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,再通过反编译 class 文件,得到网站源码。

7.备份文件泄露

备份文件下载:

index.php.bak

多尝试下.bak文件路径,看有没有下载的

常见的网站源码备份文件后缀

tar tar.gz zip rar 

常见的网站源码备份文件名

web website backup back www wwwroot temp 

vim 交换文件名
在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容
以 index.php 为例:第一次产生的交换文件名为 .index.php.swp
再次意外退出后,将会产生名为 .index.php.swo 的交换文件
第三次产生的交换文件则为 .index.php.swn

8. DS_Store 文件泄露

​ .DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件

漏洞利用工具:

github项目地址:https://github.com/lijiejie/ds_store_exp

命令:

ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store 

9. SWP 文件泄露

​ swp即swap文件,在编辑文件时产生的临时文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp。

漏洞利用:直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件

10. GitHub源码泄漏

GitHub是一个面向开源及私有软件项目的托管平台,很多人喜欢把自己的代码上传到平台托管。攻击者通过关键词进行搜索,可以找到关于目标站点的敏感信息,甚至可以下载网站源码。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《常见的Web源码泄漏漏洞》
文章链接:https://www.456zj.com/27319.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址