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上找到。
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