前言
着实惭愧,这题一年前还做过,今天再做,得,忘得一干二净。
写好的脚本一打开,payload都是原封不动了,尴尬。
题解
截个图,写个关键字,方便日后检索:[猫图|猫头|猫猫]
这题主要三个考点:1.备份文件泄漏;2.SQL盲注;3.文件上传
1.备份文件泄漏
扫下目录,有robots.txt
提示是*.php.bak
扫到是/image.php.bak
2.SQL盲注
$id=addslashes($id);
str_replace(array("\\0","%00","\\'","'"),"",$id);
像这种单引号+转义单引号都被过滤,然后又有过滤其他字符情况下。可以考虑套娃转义。
比如\0
被输入到字符串中,addslashes()
添加反斜杠变成\\0
,又会被str_replace()
转义成\
,这样就构造成\'
,就能把单引号转义了。
注意,在输入的时候还得把\0
转义,所以是?id=\\0
这样看太抽象,我还琢磨了好久,扔到navicat一下就明白了。
然后测试一波payload,搞清楚盲注逻辑,套到脚本里跑,拿到admin的密码(无需解md5。这题不知道为什么跑起来真的慢
3.文件上传
漏洞在文件名处,会将文件名写入到log.php里,又因为检测php字符串,所以一句话木马用短标签
<?=@eval($_POST['cmd']);?>