本文包含web安全以及ctf中出现过的三类信息泄露,讲述使用python脚本进行clone时要注意的点,和readme.md里没出现但可以有的一些进阶一点的操作。
当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。
版本控制工具:dvcs-ripper
https://github.com/kost/dvcs-rippeLinuxr
注意Linux下运行.pl
文件需要线下载perl
apt-get install perl
切换到工作目录下,perl xxx.pl 就能执行了
先对目标url进行扫描,确认是 .svn 泄露后,使用 dvcs-ripper 工具中的 rip-svn.pl 脚本进行 clone.
例如:
index.html和svn目录就是clone出来的
svn/pristine/
进入.svn文件夹
pristine存放的时原始的文件,可能包含备份的文件。
ps:在备份文件里寻找需要的东西一般用:grep 比如:
cat wc.db | grep flag
但可能会出现二进制文件无法输出到终端的情况。
此时;
cat wc.db | grep -a flag
即可;
svn源码泄露暂时能有的操作就这么多。
Git下载地址,有些地址下载的功能比较单一,无法适用后两种情况,用这个就好
https://github.com/BugScanTeam/GitHack
执行命令即可
https://github.com/BugScanTeam/GitHack
Git源码泄露不止涉及到当前git版本时需要查看历史记录
git log
git reset
git diff
git log 会出现先前的几个版本信息,注意要切换到源码泄露文件夹里~,/dist/xxx.
每个版本有对应的id标识,用git diff +id号
查看版本差别
当正在dev分支上开发某个项目,这时项目中出现一个bug,需要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容保存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚保存的内容。
简单来说,stash 用于保存 git 工作状态到 git 栈,在需要的时候再恢复。
git stash
备份当前工作区的内容,保存到git 栈中,从最近的一次commit中读取相关内容
git stash pop
从git栈中获取到最近一次stash进去的内容,恢复工作区的内容。。获取之后,会删除栈中对应的stash。
由于可能会stash多次,git使用栈管理,我们可以使用git stash list查看所有的stash
git stash clear
清空git栈
这种很少出现了,出现了价值不是很大,因为出现这种错误网站本来就没什么价值:)
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
整理了一点
/robots.txt /index.php~ /index.php.bak /www.zip /wwwroot.zip
/htdocs.zip /.rar /.zip /.7z /.tar.gz /.bak /.swp /.txt
当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
http://url/index.php.bak等
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
尝试URL:xxx/index.php.swp下载.swp文件代码
并使用vim打开,打开命令:vim -r index.php.swp
打开后则发现源码,进行代码审计
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
用 Python-dsstore 这个工具 (https://github.com/gehaxelt/Python-dsstore) 来完成 .DS_Store 文件的解析:
wget http://xxx.com/.DS_Store -qO samples/.DS_Store.ctfxxx
正常的话文件已经再samples文件夹里,ls-al查看
python main.py samples/.DS_Store.ctfxxx
ps:文件里已经有原始的.DS_Store.ctf,所以取名要另取
信息泄露在网站中出现的概率越来越低了,和开发者的安全意识和开发规范提高有很大关系,但作为安全人员,也要警惕它的出现,因为一旦出现,危害就比较大。也需要再堆栈这类更隐蔽的泄露信息中寻找可能的漏洞点。