1、目录遍历漏洞
(1)原理:本质是没有过滤用户输入的 ../ 相关的目录跳转符,使得攻击者通过目录跳转符来遍历服务器中的任意文件。
(2)题解:
eg:根据提示遍历网页目录信息,会在某一个文件夹中发现一个flag.txt文件
2、phpinfo泄露
(1)定义:phpinfo 是 PHP中内置的函数,用于显示 PHP 的配置信息和当前运行环境的相关信息
(2)phpinfo泄露信息
system : 提供服务器所在的操作系统的信息。
$_SERVER[‘SERVER_ADDR’]: 公网IP地址
CONTEXT_DOCUMENT_ROOT : web根目录
disable_functions: 网站禁用函数
(3)题解:
直接ctrl+f在phpinfo中找到flag
eg:
3、备份文件下载
(1)网站源码泄露
常见的网站源码备份文件名称
web,website,backup,back,www,wwwroot,temp
题解:python脚本爆破/使用dirmap工具;本质都是通过字典进行爆破;
python脚本:
发现www.zip的状态码为200
dirmap工具:
(2)bak文件泄露
定义:bak文件就是网站备份文件,访问url/index.php.bak文件下载index源码获得flag
dirmap工具:
(3)vim缓存泄露
当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露
vim一旦异常退出就会生成`.swp文件`,还有一种就是生成了index.php~文件;
都属于vim缓存泄露,注意是隐藏文件;隐藏文件要加点.
题解:题目提示flag在index.php源码中;利用dirmap目录扫描工具进行扫描;扫描到了/.index.php.swp;访问 /.index.php.swp
直接下载找到flag。
eg:
(4).DS_Store
是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
eg:
直接在linux中使用cat命令看到txt文件,然后直接访问拿到flag
4、git泄露
思路:先用dirmap(比dirserch更好用)进行目录扫描;查看目录是否有git文件;如果有就使用githak工具或者wget下载泄露的源码!,下载泄露的git源码(然后在git源码中寻找flag)
(1)log泄露
以CTFhub-git泄露-log题目为例;首先对目标进行目录扫描;发现了git泄露
输入:python2 GitHack.py http://challenge-9d92566392cb6f52.sandbox.ctfhub.com:10800/.git
进入dist/challenge-9d92566392cb6f52.sandbox.ctfhub.com_10800``dist目录就是工具githack将泄露的源码下载保存的地方
;输入git show,找到flag
git log 查看历史版本
git show 显示数值
git diff 版本对比
git reset 版本回退
(2)Stash泄露
使用dirmap对目标网站进行扫描;发现.git文件,使用githack下载.git源码
使用githack工具;输入:python2 GitHack.py http://challenge-b09e9adae5e86058.sandbox.ctfhub.com:10800/.git
进入dist/challenge-b09e9adae5e86058.sandbox.ctfhub.com_10800
输入git log,发现出现了remove flag;输入git stash list ,然后出现了txt文档;直接查看得到flag
git stash pop 恢复缓存之前的工作目录
git stash list 查看存储
(3)index泄露
使用目录扫描工具扫描一下;发现.git文件;直接使用githack;进入dist目录;输入git show直接得到flagdist目录就是工具githack将泄露的源码下载保存的地方
5、SVN泄露
1、工具安装
(1)安装dvcs-ripperhttps://github.com/kost/dvcs-ripper
2、运行
(1)输入./rip-svn.pl -u http://challenge-28cf1b40130e63b6.sandbox.ctfhub.com:10800/.svn
出现如下报错
输入apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl
(2)重新运行,成功
(3)寻找flag注:.svn/pristine目录包含文件的原始、未修改版本
进入/home/…/svn/.svn/pristine,查看bf目录内容没有找到flag
进入4a目录,查看内容找到flag
6、HG泄露
(1)还是使用上面的dvcs-ripper工具;下载hg源码,一个一个目录进,查看flag
输入./rip-hg.pl -u http://challenge-fe933d0b3e2b1c13.sandbox.ctfhub.com:10800/.hg
目录会出现.hg文件,是隐藏的;进入.hg文件寻找flag(一个一个找,找到了flag.txt;直接访问拿到flag)