渗透测试中源码泄露分类整理

渗透测试中源码泄露分类整理


1.备份文件泄露:

有些站点的管理员将源码备份成压缩包的格式,却放在了Web目录下,攻击者访问该压缩包的时候就会下载该压缩包。
PS:常见后缀 : .zip .rar .tar.gz .7z

2.SVN源代码泄露

(1)漏洞成因

​ 管理员对SVN的机制不熟悉,直接将SVN检出到本地的web目录下,而忘记删除.svn目录(文件的类型及内容存放目录),从而导致攻击者拿到站点的源代码。

(2)SVN源代码泄露两个版本的区别

​ SVN1.7后取消了text-base备份文件夹,同时访问.svn/entries返回数字12。1.7以后的版本不会在每个目录下生成.svn的文件,仅在根目录下生成.svn文件。

​ 并且在.svn目录下存在wc.db,该数据库文件在NODES表单local_relpath为真实文件名,checksum为文件的sha1值,kind表示文件类型(dir->目录,file->文件) 。

3.git源码泄露

从git仓库下载代码的时候,会在本地生成一个.git隐藏文件夹(存放代码的变更记录),导致攻击者可以使用该文件夹下的信息拿到代码。

PS:利用工具:GitHack

4.swp源码泄露

​使用vi编辑器打开文件时,会生成一个.文件名.swp的备份文件,防止意外退出等情况导致文件内容丢失。产生原因主要是管理员在web目录下修改代码文件,导致生成了.swp备份文件。

PS:利用方法:访问.swp文件会下载该文件,然后vi -r 文件名 来恢复内容,然后按下任意键就可以看到其中的代码了。

5.数据库外泄

不只是源码泄露会导致安全威胁,其实数据库泄露也会导致安全威胁。

数据库外泄指的是数据库文件泄露,比如ACCESS的数据库是.mdb 以及上面提到的 .db 是SQLite的数据库。这两种数据库系统将数据保存在该格式的文件中,而数据库文件又在WEB目录下,攻击者可以下载数据库从而拿到数据。

​这种漏洞影响最多的是ASP+ACCESS的站点,比较经典两个案例:

1.某些CMS的目录下存在/data/#data.mdb 文件
2.ewebeditor 后台GETSHELL,下载eweb的数据库就是其中关键的一步 

6.WEB-INF/web.xml泄露

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

/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中 
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件 
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。 
/WEB-INF/database.properties:数据库配置文件 

2. 漏洞检测和利用
通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。
一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,使用了Nginx的安全策略,导致web.xml能够被攻击者访问到。
3. CVS泄露
测试目录:

http://url/CVS/Root 返回根信息

http://url/CVS/Entries 返回所有文件的结构

取回源码命令

bk clone http://url/name

bk下载地址

7.DS_Store文件泄露

漏洞成因
​在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。
漏洞利用

python ds_store_exp.py http://www.example.com/.DS_Store  

ds_store_exp.py下载

8.Bazaar/bzr

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

​ dvcs-ripper

原文地址:渗透测试初步学习之漏洞发现和源码泄露

你可能感兴趣的:(ctf)