源码泄露\信息搜集小总结
各种源码泄露总结的笔记
git泄露
原理:
开发人员使用 git 进行版本控制,对站点部署。但如果配置不当,可能会将.git文件夹直接部署到线上环境,这就引起了git泄露
操作
用扫描器扫描(俺用的御剑,如果字典里没有得自己加),大概像这样
如果能访问那就存在git泄露
也可以试着访问 .git/head 文件,如果能下载也能推断存在 Git 源码泄露
获取泄露的源码
阔以用GitHack脚本,可以解析 .git/index 文件,并找到工程中所有的:文件名和文件 sha1,然后去 .git/objects/ 文件夹下下载对应的文件,通过 zlib 解压文件,按原始的目录结构写入源代码。通过泄露的.git文件夹下的文件重建还原工程源代码。键入下面的命令就会把存在Git泄露的源码全部下载下来
命令:
1 |
|
(注:此处url是.git的url)
GitHack下载链接
实战: buuctf[第一章 web入门]粗心的小李
首先,下载githack,然后终端打开,执行: python githack.py 链接/.git/
然后就可以看到githack目录下多了个以目标链接命名的文件夹,打开就阔以找到flag辣
敏感备份文件泄露
原理
使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容
以 index.php 为例:
第一次产生的交换文件名为 .index.php.swp
再次意外退出后,将会产生名为 .index.php.swo 的交换文件
第三次产生的交换文件则为 .index.php.swn
常见的备份文件格式有:
index.phps
index.php.swp
index.php.swo
index.php.php~
index.php.bak
index.php.txt
index.php.old
index.php~
注意: 有时候用dirsearch、菜刀等工具扫描时会因频率而被429限制访问,这时候需要延迟爆破频率
java之WEB-INF文件泄露
WEB-INF
WEB-INF是java的web应用的的安全目录(所谓安全就是客户端无法访问,只有服务端可以访问的目录),若想在页面里直接访问其中文件,必须通过web.xml对要访问的文件映射才能访问
WEB-INF主要有以下文件:
WEB-INF/web.xml: 配置文件,路径映射
WEB-INF/classes: 含了站点所有用的 class 文件(包括 servlet class 和非servlet class)
WEB-INF/lib: 存放web应用需要的各种JAR文件
WEB-INF/src: 源码
WEB-INF/database.properties: 数据库配置文件
漏洞成因
通常在web应用中我们会用多个web服务器用来彼此弥补
使用这种架构时,若对资源的目录或文件的映射配置不当,可能会导致web.xml文件可被读取
利用漏洞: 通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。
实战: [RoarCTF 2019]Easy Java
进入页面,是个登陆界面,sql注入试了一下,发现没有用
登陆页面下有个help窗口,尝试访问,url变成: /Download?filename=help.docx,也就是可以随意查询文件….但是它返回的结果是: java.io.FileNotFoundException:{help.docx}
然后我就8会了,看wp,发现要进行post传参,但我找了10几个wp也没明白为啥要这么搞,就tm离谱…
post传参:
1 |
|
下载下来发现关键映射:
1 |
|
根据映射可以看到: FlagController里应该有flag
payload:
1 |
|
我: ???
.hg文件泄露
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。hg.init 的时候会形成.hg文件夹,如果配置不当,可能会将.hg 文件夹直接部署到线上环境,引起泄露
工具: dvcs-ripper
1 |
|
.DS_Store文件泄漏
在发布代码时未删除文件夹中隐藏的.DS_store,可获取敏感的文件名等信息。
漏洞利用
可以访问一下(http://www.example.com/.ds_store),然后利用[dsstoreexp](https://github.com/lijiejie/ds_store_exp)工具
1 |
|