Do you know .swp file? 非正常关闭vi编辑器时会生成一个.swp文件
访问.index.php.swp下载下来, vim-r.index.php.swp
还原即可 源码
要求post一个 greeting
参数,经过areyouok函数正则过滤后如果返回false,就进入下一个if,如果 greeting
参数包含 MerryChristmas
则打印flag。 我们这里可以利用strpos函数的一个trick,传入一个数组,会返回 NULL
, NULL
不强等于false,即可绕过。
这道题是上一道题的预期解法,因为被非预期了所以又加了这道题。 源码
可以看到加了一个if判断是否为数组的条件,所以上一道题的思路不能再用了。 这里需要用到正则回溯,可以参考p牛的文章:PHP利用PCRE回溯次数限制绕过某些安全限制 意思就是说php使用的正则引擎是NFA(非确定性有限状态自动机)。PHP为了防止正则表达式的拒绝服务攻击(reDOS),给pcre设定了一个回溯次数上限 pcre.backtrack_limit
,默认为100万。当正则回溯超过这个上限时,就会返回false。
因此我们只要post100万个字符,让它回溯大于100万次,函数就会返回false,从而绕过if判断。
给了一个花哨的网页
以为是js的问题,一直在看js后来才知道这考的是snow html隐写。 解密网址:http://fog.misty.com/perry/ccs/snow/snow/snow.html 根据提示密钥为题目名字
解密即可