我听说了OWASP, 在那里,我找到了PHP脚本扫描器的参考,名为RIPS.
我应该每天使用它来测试我的WordPress插件和主题吗
是的,是的,RIPS 是一个很好的工具,可以同时做到这两个方面。
您可以使用它来检查WordPress主题和插件或任何其他WordPress主题和插件的质量。
RIPS是一种静态代码分析工具,用于自动检测PHP应用程序中的漏洞。通过对所有源代码文件进行标记和解析,RIPS能够将PHP源代码转换为程序模型,并检测程序流期间可能受到用户输入(受恶意用户影响)污染的敏感接收器(潜在易受攻击的函数)。除了发现的漏洞的结构化输出之外,RIPS还提供了一个集成的代码审计框架,用于进一步的手动分析。
下面是它的工作原理。
$h = fopen( $_GET[\'file\'], \'w\' );
fwrite( $h, $_GET[\'data\'] );
您不能信任来自请求的数据。echo file_get_contents( \'files/\' . $_GET[\'file\'] );
您不能信任来自请求的数据。类似于include:include( \'includes/\' . $_GET[\'file\'] );
echo ( \'Hello \' . $_GET[\'name\'] );
当有人创建这样的请求时:/url?name=<script>alert(1)</script>
您需要对请求数据进行编码,因为在这种情况下,如果请求数据是原始的,您就不能信任它。header( \'Location: \' . $_GET[\'url\'] );
因为PHP允许您使用header()
您无法信任该请求,因为有人可能会添加Set-Cookie:
或内部类似。RIPS会帮你检查这个。setcookie()
setcookie( \'PHPSESSID\', $_GET[\'sessid\'] );
就像在这里/url?sessid=1f3870be274f6c49b3e31a0c6728957f\'
好消息是RIPS可以理解这一点,并会更新您的信息。eval( \'\\$color = \\\' . $_GET[\'color\'] . \'\\\';\' );
您不应该信任请求数据。\'poc\' => \'/index.php?color=\\\';phpinfo();//\',
或者对它的一个修改叫做reflection injectioncall_user_func( $_GET[\'func\'] );
就像在这里:/url?func=phpinfo\'
类似于exec()
exec( \'./crypto -mode \' . $_GET[\'mode\'] );
RIPS会让您知道这些可能的问题。mysql_query( \'SELECT * FROM users WHERE id = \' . $_GET[\'id\'] );
如果我们添加/url?id=1 OR 1=1-- -\',
撕裂会让你觉得自己像这里的老安全极客。我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。