PHP自动化代码审计技术

参考

动态自动化

PHP中的动态自动化一般是通过PHP扩展,在底层完成对敏感函数的HOOK,在敏感函数调用时进行回溯的方法来进行代码审计的,之所以称为动态也有需要依赖于用户操作的原因。这种方式的使用难度相较于静态自动化会高一点,但是准确性能够大大提高,几个常见的工具有:

https://github.com/laruence/taint
https://pecl.php.net/package/taint
https://www.php.net/manual/en/book.taint.php

https://github.com/fate0/prvd
https://github.com/fate0/xmark
https://github.com/FeeiCN/Cobra

静态自动化

静态自动化其实是指通过对代码进行静态语义分析等步骤,最后输出安全隐患的自动化工具,当然也有工具是通过正则匹配的方式来进行安全风险的发现。这一类常见的一个例子便是RIPS,目前公开了源码的版本可以在github上找到。

除了RIPS外,还有一些开源了的工具,以及帮助我们进行语义分析的第三方库:

Seay辅助审计
rips
https://github.com/LoRexxar/Kunlun-M
https://github.com/OneSourceCat/phpvulhunter
https://github.com/nikic/PHP-Parser
https://www.php.net/manual/zh/book.taint.php
https://github.com/designsecurity/progpilot

https://paper.seebug.org/1339/

Last updated

Was this helpful?