前记
瞅瞅进阶区的,继续总结。
1.NaNNaNNaNNaN-Batman
打开题目并下载附件
有乱码但看到<script>
等标签的,后缀名改为html
查看
毫无头绪,查看wp发现
整理下弹框内容发现
直接将下面代码复制到控制台执行
1 | var t=["fl","s_a","i","e}"]; |
得到flag
2.PHP2
打开题目链接
你可以浏览这个网站吗?No,I can’t.
查看源码什么都没有,后面加上index.php。。。没用,加上index.phps(phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替)
了解下urldecode()函数
然后分析代码,get传入的id经过urldecode()函数解码,如果解码结果为admin,输出“Access granted!”和Key值(即flag)。经过两次urlencode()函数解码,所以
1 | payload:http://111.198.29.45:45494/index.php?id=a%2564min |
得到flag
3.unserialize3
题目提示unserialize即反序列化,PHP魔法函数中存在wakeup()方法,unserialize()会检查是否存在一个wakeup方法。如果存在,则会先调用 __wakeup方法,预先准备对象数据。
于是构造1
payload:O:4:"xctf":1:{s:4:"flag";s:3:"111";}
发现回显结果为:1
bad requests
这里是因为wakeup()的影响,所以要绕过wakeup,当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行
故构造
1 | payload:http://111.198.29.45:57697/?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";} |
即可得出flag
后记
ok,so much for today.