刷题笔记:[CISCN2019 总决赛 Day2 Web1]Easyweb


前言

着实惭愧,这题一年前还做过,今天再做,得,忘得一干二净。

写好的脚本一打开,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']);?>

文章作者: 巡璃
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 巡璃 !
评论
  目录