[SWPUCTF 2022 新生赛]web序列化相关题目

文章讲述了在SWPUCTF2022新生赛中,参赛者利用PHP的destruct函数和序列化功能,构造恶意对象实现命令注入,同时通过理解Robots协议和robots.txt来绕过限制。
摘要由CSDN通过智能技术生成

[SWPUCTF 2022 新生赛]1z_unserialize

destruct 函数在对象销毁时会自动调用,而且其中的代码会在函数调用时执行。unserialize($_POST[‘nss’]);执行完成后,这个通过 unserialize 重新创建的对象没有被任何变量引用,因此它将会被标记为不再需要,并最终会被 PHP 垃圾回收机制销毁。在对象被销毁的时候,destruct 会被自动调用。

所以我们可以通过构造一个恶意的序列化对象,将自定义的函数传递给 $lt 属性,然后将要执行的代码(或者指向一个恶意代码文件的路径)传递给 $lly 属性。当对象被序列化后再被反序列化时,destruct 方法会被自动调用,从而执行指定的恶意操作。 

只要传参把a变成system();a变成system();this->lly变成ls或者cat就是一个简单的命令注入了

  nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:9:"cat /flag";}

[SWPUCTF 2022 新生赛]ez_ez_unserialize

 

 

观察代码里面有一个wakeup函数当序列化字符串中表示对象属性个数的值大于实际属性个数时,就会跳过wakeup方法,将fllllllag.php序列化再将序列化的中的成员数大于实际成员数,即可绕过。

x=O:1:“X”:1000:{s:1:“x”;s:13:“fllllllag.php”;}

SWPUCTF 2021 新生赛]ez_unserialize

?打开题目居然是这样?什么鬼?看一下页面源代码

 

发现disallow,说明应该和robots有关。
Robots 协议(也称为爬虫协议、机器人协议等)的全称是 “网络爬虫排除标准”(Robots Exclusion Protocol),网站通过 Robots 协议告诉搜索引擎哪些页面可抓,哪些页面不能抓。
disallow就是爬虫不能搜索的所以我们去看看robots.txt 

发现了这个按这个应该就是题目了,访问一下

复制源码,把不需要的部分注释掉,再补充序列化的代码,将admin和passwd的值改为触发if条件的值,即可得到payload

  

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值