polarCTF 第一天

发布时间 2024-01-06 08:43:14作者: adotdot

1.swp
里面应该有.swp文件,首先了解什么是swp文件。

所以访问.index.php.swp
得到下列代码,对代码进行解析:

先检测输入的值是否为数组,然后判断里面有无sys nb(strpos是用来匹配其中是否含有sys nb),最终返回flag
preg_match()绕过方法
数组绕过,即传入的参数为数组,此题不适用
利用PCRE回溯次数限制绕过:让回溯次数超过最大限制就可以使preg_match()函数返回false,从而绕过限制,中文的回溯次数在100万次就会崩溃,这个回溯保护使PHP为了防止关于正则表达式的DDOS
换行符绕过:.不会匹配换行符,所以使用%0a就可以绕过,此题不适应
所以绕过方法:
import requests data = {"xdmtql": "sys nb" + "aaaaa" * 1000000} res = requests.post('http://1e93f026-5ac5-4357-b77e-8cc6b9ca576f.www.polarctf.com:8090', data=data, allow_redirects=False) print(res.content)