攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup
题目介绍
题目考点
- PHP代码审计
- git源码泄露
Writeup
-
进入题目,点击一番,发现可能出现git源码泄露
-
url输入 http://220.249.52.134:56659/.git/ 发现果然有git源码泄露
-
使用 GitHacker 获取源码
-
看到有flag.php, 尝试打开查看,里面啥也没
-
打开index.php代码审计
-
了解assert()函数的使用:
总结一句话就是:assert()函数会将读入的代码当做PHP代码来执行
因此,我们可以进行注入,注入的思路:方式一:
首先对strpos函数进行闭合,构造一下,page=’)
-
可以把后面
', '..') === false
的给注释掉,构造page=').phpinfo();//
,可以得到回显
方式二:
- 不注释也行,直接插入,构造
page='.phpinfo().'
-
既然可以执行函数,那么使用system()函数
system()函数用法:
由于源码直接下载有,所以直接构造得到flag的payload:
?page=').system("cat templates/flag.php");//
或者
?page='.system("cat templates/flag.php").'两者都需查看源码!!