PHP代码审计工具RIPS

0x00 代码审计工具RIPS

在安全工作中,代码审计是很重要的一项技能。在面对大规模的代码时,
使用自动化工具辅助人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。

博主在代码审计过程中选择使用RIPS,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞如XSS ,sql注入,敏感信息泄漏,文件包含等常见漏洞;也可以采用正则方式扫描代码发现漏洞;还能够采用自定义的语法扫描代码发现问题。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。当然,最后去校验结果必须是我们自己去做的。

0x01 安装与配置

rips官网:http://rips-scanner.sourceforge.net/
我们下载最新版本的rips之后,将压缩包解压后放在本地网站根目录下,通过浏览器(最好是firefox,因为rips宣称只支持firefox)访问即可使用。

0x02 主界面介绍

  • subdirs:如果勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选。
  • verbosity level:选择扫描结果的详细程度,缺省为1(建议就使用1)。
  • vuln type:选择需要扫描的漏洞类型。支持命令注入、代码执行、SQL注入等十余种漏洞类型,缺省为全部扫描。
  • code style:选择扫描结果的显示风格(支持9种语法高亮)。
  • /regex/:使用正则表达式过滤结果。
  • path/file: 要扫描的目录。
  • scan: 开始扫描。

主界面就这些功能按键,我们接下来尝试一下。

0x03 实践

在路径处输入我搭建的各种渗透测试环境的网页根目录,然后点击scan,稍等一会就会出现全部结果,并以图表的方式弹出一个总结的结果页面。

我们可以发现,198个文件就报告了163个疑似漏洞的代码。

然后我们看这些报告

点击每一个代码块左上角的书页小图标,就会展开这个代码的详情。

点击每一个代码块左上角的红色小图标,可以生成漏洞的利用代码。

将生成的php代码放在php文件里面传入参数就可以运行

点击每一个代码块左上角的问号小图标,就会展开这个漏洞的详情、原理。

同样,问号中还有漏洞的解决方案和更安全的范例代码书写方法。

总是将期望的字符串嵌入到引号中,并在将其嵌入查询之前使用PHP构建函数将字符串转义。

始终嵌入不带引号的预期整数,并在将数据嵌入查询之前将数据转换为整数。

转义数据但嵌入不带引号并不安全。

0x04 总结

方便使用的工具十分重要,但同时工具也只是帮我们更快速的筛选一遍有可能出现问题的地方,然后我们需要做的就是自己去审计,将真正有隐患的地方寻找出来并提出解决方案。

fork me on github