本文由重生信息安全:主体编写,如有不当,还望斧正。
关于工具:Rips 是使用PHP语言开发的一个审计工具,所以只要大家有可以运行PHP的环境就可以轻松实现PHP的代码审计,如果大家感兴趣可以自行了解官网http://rips-scanner.sourceforge.net/关于下载:环境我这里用的PHPstduy,下载RIPS后将其解压放入PHPstduy的根目录下即可使用 ,浏览器访问localhost/rips即可访问主界面。
首先访问我们所搭建好的审计环境:
从下图我们可以知道,该审计可支持的漏洞,也就是常说的正则表达式:
当然也可以自己对其进行编写正则表达式:
我们复制需要审计的路径:
输入到路径处,点击开始扫描即可:
我们来看下结果:
我们可以看到 其中包含文件包含 远程脚本攻击 等等。。。
通过参数定义,我们跳转到指定可能存在的行数:
有人说:不会复现怎么办?
现在简单的来说下复现原理:
我们可以看见上图:包含了一个文件路径,文件名称,代码参数,以及判断
1:验证本地文件是否可外部访问
2:通过审计结果去对应测试
3:编写 payload 语句,判断参数是否可控
当然还有其他的方式:
根据以上提示:该处是文件包含漏洞:
我们置语句:
main.php?files=Main.php?files=[]
注意看源代码的,发起请求的请求方式
需要注意以下几点:
1:在对完成审计的结果复现时,一定要从源文件查看整条语句:比如下图
提示存在问题的行数:转代码看此处的功能点(简称 分段式功能点)
2:在对其进行基本验证的时候,也许你会发现该文件从外部是不可访问的,我们就可以进行代码追踪到上一个文件:比如开始定义:
列相关payload语句:
Index.php?files=[main.php]_/files=/Index.php/main.php[files]$_post[files]=/
具体操作可以完全根据实际情况来。。。