PHP代码审计Tricks
文章目录 反序列化调用不到类函数无参数RCE链中的函数参数对应不上参考链接 反序列化调用不到类希望调用ws.php中CLI\Age 2020-10-15 22:09:19 Author: hosch3n.github.io(查看原文) 阅读量:82 收藏

文章目录

反序列化调用不到类

希望调用ws.phpCLI\Agent类的析构函数,但是传入new CLI\Agent()的序列化字符串后并未触发die标记,通过动态调试发现该框架此时会去寻找lib/cli/agent.php(但实际上是Agent类与WS类一起写在了ws.php中)

解决方法是生成序列化字符串时,通过数组array(new CLI\WS(), new CLI\Agent())将两个类对象按顺序一同传入。这样虽然autoload包含agent.php同样会失败,但能够包含到ws.php也就能成功反序列化里面的Agent类。

  • 也看到了通过new \CLI\WS(new \CLI\Agent())的形式解决的

函数无参数RCE

1
2
3
4
5




var_dump(end(getallheaders()));

链中的函数参数对应不上

通过PHP编写的一些自定义函数,如果一些非关键参数缺失或者多余其实影响不大。但是PHP的内置函数可能是因为由C实现的原因,兼容性就没那么高。

参考链接

PHP Parametric Function RCE


文章来源: https://hosch3n.github.io/2020/10/15/PHP%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1Tricks/
如有侵权请联系:admin#unsafe.sh