文件泄露&php代码审计

时间:2021-09-24 21:02:00

这道题,还是很不错的。卡在了token绕过那里,不得已看了别人的writeUp,才做出来,惭愧!
但还是想写写WriteUp做一下记录!
首先是打开题目,习惯性查看源码,发现了点蛛丝马迹

知道了,管理员的邮箱,还有编辑文件的编辑器是vim。
整道题是这样的,我们可以看到页面的HTML提示管理员邮箱是admin@simplexue.com,并且用vim编辑器。
 
通过step1.php,处理程序我们知道是step2.php,最后是submit.php负责校验。
 
vim编辑器的特点是,可能产生临时文件,对于submit.php,产生的临时文件是 .submit.php.swp。
 
我们打开 .submit.php.swp,可以看到最后判断逻辑的源代码。
 
注意到token就是0,并且还要绕过长度限制(要求长度为10)。
 
所以,输入submit.php?emailAddress=admin@simplexue.com&token=0000000000
想到vim,自然想到了文件泄露,于是尝试读取.step1.php.swp,.step2.php.swp,但依然无果。
后来也算是看了点小tips,读取.submit.php.swp(还是观察不够仔细啊!orz)
读取来源码如下图:

观察图中有两个关键点,一是token,二是emailAddress。
一开始尝试过用0e12345678作为token,由于emailAddress没做处理,想用'or '1'='1的形式绕过。
但始终无果,方才查看大神writeup,花了我2松果子。2333~~
token做了两次判断,于是构造“0000000000“(这里共有十个0)来进行绕过。
最终的url为:http://ctf5.shiyanbar.com/10/upload/submit.php?emailAddress=admin@simplexue.com&token=0000000000
得到flag截图如下:

 

评论