实验环境:
Kali Linux
实验工具:
GitHack(https://github.com/lijiejie/GitHack)
dirsearch(https://github.com/maurosoria/dirsearch)
实验步骤:
1、使用Firefox打开给定的网址(111.198.29.45:34650),页面如下:
尝试点击了各种能够点击的地方,发现about中有点意思,截图如下:
可以知道这个网站是由Git,PHP,BootStrap写的,因此我们猜测可能会发生Git源码leak…
2、在这里我们首先使用GitHub上的一个工具dirsearch来扫描这个网站的目录,结果如下:
从中我们可以看到,果然网站中存在.git文件,因此我们可以使用Githack工具来将网站中的源码下载到本地,并进行分析,代码如下:
这样,我们就将网站的源码下载到本地了,下面进行代码审计。
3、我们看到源码中有一个flag.php文件,将其打开之后,发现什么都没有:
我们只好按部就班的看index.php,内容如下:
从中我们发现网页重通过get请求获得一个page参数,而且在处理的过程中并没有对page进行关键字符过滤,因此我们可以考虑构造恰当的page的值,从而使其闭合strpos()函数,从而执行system命令。
4、在这里我们可以构造如下的page:
由此我们可以得到page的值为:
'.system("cat ./templates/flag.php").'
我们注入进行访问并查看源代码如下:
由此我们得到了flag