欢迎光临
我们一直在努力

常见Web源码泄漏及其利用

目录

描述

1 Git源码泄露

Git源码泄露示例

2 .DS_Store 文件泄露

3 .svn 源码泄露

4. 网站备份压缩文件泄漏

5. SWP 文件泄露

6. WEB-INF/web.xml 泄露

7. GitHub源码泄漏


描述

源代码泄露一般由于敏感目录被扫描,导致直接下载网站源码查找敏感信息。如

  • .git导致源码泄露。
  • .DS_store文件导致源码泄露
  • .svn文件导致敏感信息泄露

1 Git源码泄露

什么是Git:

git是一个版本控制工具,可以高效便捷地管理大大小小的项目版本。通俗点来说,就是一个项目或者说工程有多个人一起干,这个项目里每个人都有可能都拿同一文件了来编辑,但是这就产生了问题,到底怎么协同项目里面的人的所编辑的文件,怎么更新项目呢?这时就有了像git(版本控制工具)这样的东西了来做这种事情。

什么是github:

百度百科上的定义是:面向开源以及私有软件项目的代码托管平台,只支持git 作为唯一的版本库格式进行托管,故名GitHub。GitHub是一个代码托管云服务网站,帮助开发者存储和管理其项目源代码,且能够追踪、记录并控制用户对其代码的修改。甚至可以把它当作存储代码等的网盘,用来存储任何东西。

Github和Git,是什么关系?

GitHub不等同于Git,二者完全是不同物,不能搞混,类似地,捋一捋java与javascript、周杰与周杰伦的关系,或许你能从中领悟到一些真谛。Git只是一个命令行工具,一个分布式版本控制系统。正是它在背后管理和跟踪你的代码历史版本,好比一个时光机,让你在代码出错时不至于手忙脚乱,能快速回退之前的历史版本。GitHub是一个代码托管网站,背后使用Git作为版本管理工具(而非svn)。主要服务是将你的项目代码托管到云服务器上,而非存储在自己本地硬盘上。

Git源码泄露

了解了上面的,那这个就比较好理解了。当前大量开发人员使用git进行版本控制,对站点自动部署。在执行git init初始化目录的时候,会在当前目录下自动创建一个.git目录,用来记录代码的变更记录等。开发人员在开发时,常常会先把源码提交到远程托管网站(如github),最后再从远程托管网站把源码pull到服务器的web目录下,如果忘记把.git文件删除,就造成此漏洞。利用.git文件恢复处网站的源码,而源码里可能会有数据库的信息。Git信息泄露的危害很大,渗透测试人员、攻击者,可直接从源码获取敏感配置信息(如:邮箱,数据库),也可以进一步审计代码,挖掘文件上传、SQL注射等安全漏洞。

Git是一个可以实现有效控制应用版本的系统,但是在一旦在代码发布的时候,存在不规范的操作及配置,就很可能将源代码泄露出去。那么,一旦攻击者或者黑客发现这个问题之后,就可能利用其获取网站的源码、数据库等重要资源信息,进而造成严重的危害。

Git源码泄露示例

1. 首先扫描器扫到了该漏洞

常见Web源码泄漏及其利用

2. 漏洞利用

如何利用泄露的.git文件?利用工具:https://github.com/lijiejie/GitHack

GitHack.py http://www.xx.com/.git/

常见Web源码泄漏及其利用

这样我们就可能能还原网站的源码

工具原理

1、解析.git/index文件,找到工程中所有的: ( 文件名,文件sha1 )
2、去.git/objects/ 文件夹下下载对应的文件
3、zlib解压文件,按原始的目录结构写入源代码

修复建议:删除.git目录或者修改中间件配置进行对.git隐藏文件夹的访问。

2 .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

3 .svn 源码泄露

1. 介绍

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

2. 漏洞利用工具

Seay SVN漏洞利用工具

常见Web源码泄漏及其利用

3. 修复建议

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

4. 网站备份压缩文件泄漏

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

常见的备份文件后缀:

  • .rar
  • .zip
  • .7z
  • .tar.gz
  • .bak
  • .txt
  • .old
  • .temp

一般使用web目录扫描工具如御剑就能扫描出来

5. SWP 文件泄露

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

漏洞利用

直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件。

6. WEB-INF/web.xml 泄露

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

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.xml 文件,推断 class 文件的路径,最后直接 class 文件,再通过反编译 class 文件,得到网站源码。

7. GitHub源码泄漏

GitHub是一个面向开源及私有软件项目的托管平台,数以百计的大侠,高手,圣手,教主,小白,宗主,等等级别人物的汇集之地,而平台的服务设施,很人性化,而且用户体验度高,所以用的人很多,而且很人也都喜欢把自己的代码上传到平台,反正是很方便。

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

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

评论 抢沙发

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