CISCN 2021 题目复现

前言

ciscn大概是自己学习网安以来参加的第一个比较正式的比赛吧,发现自己比想象的还菜,一个没做出来。。。还好赛后可以照着大佬们的wp复现,记录一下自己复现过程中的一些问题和收获(想复现的话建议直接跳转到文章结尾看羽师傅的文章)。(这只是菜鸡的一些学习记录,欢迎指出错误,大佬请略过)

upload(buu复现)

1,用这个绕过getimagesize函数,第一次知道。

#define width 1
#define height 1

2,unicode配结合mb_strtolower()函数绕过,但不知道为啥,本地总是返回false,换了好几个PHP版本都没用,不知道为啥,但远程行。


var_dump(mb_strtolower('İ')==='i');
?>

3,https://github.com/huntergregal/PNG-IDAT-Payload-Generator/ 羽师傅给出的绕过二次渲染的脚本,这里我陷住了好长时间,之前我从网上找的png图片马payload是 。

先在本地测试了一下,传个eval发现执行不了命令,assert也用不了,搜了搜,具体原因是 eval是语言构造器而不是函数,不能这样用。assert在php7版本以后默认不能执行代码,恰好我本地php版本是php7.3,换成5.2版本后成功执行命令。也有人说php7.1和7.2版本assert可以执行,但我在phpstudy本地测试都没成功,倒是7.0可以成功。另外,freebuf那篇文章说php7移除了

你可能感兴趣的:(ctf入门杂记,安全,web)