【基础篇】PHP源代码审计

2020-05-19 13:38:49 admin 37

本文由重生信息安全:主体编写,如有不当,还望斧正。

关于工具:

Rips 是使用PHP语言开发的一个审计工具,所以只要大家有可以运行PHP的环境就可以轻松实现PHP的代码审计,如果大家感兴趣可以自行了解官网http://rips-scanner.sourceforge.net/

关于下载:

环境我这里用的PHPstduy,下载RIPS后将其解压放入PHPstduy的根目录下即可使用 ,浏览器访问localhost/rips即可访问主界面。

首先访问我们所搭建好的审计环境:
87778-jnshlourh.png

从下图我们可以知道,该审计可支持的漏洞,也就是常说的正则表达式:
01160-ke7sv4vf5o8.png

当然也可以自己对其进行编写正则表达式:
我们复制需要审计的路径:
05471-p1r3qztt93.png

输入到路径处,点击开始扫描即可:

32298-1ucvk8fsxilh.png

我们来看下结果:
05472-dd2sg63u9z.png

我们可以看到 其中包含文件包含 远程脚本攻击 等等。。。
通过参数定义,我们跳转到指定可能存在的行数:
44035-meo5gk5ljmg.png

有人说:不会复现怎么办?
现在简单的来说下复现原理:
21919-5k0tt74k80c.png

我们可以看见上图:包含了一个文件路径,文件名称,代码参数,以及判断

1:验证本地文件是否可外部访问
2:通过审计结果去对应测试
3:编写 payload 语句,判断参数是否可控

当然还有其他的方式:

根据以上提示:该处是文件包含漏洞:

我们置语句:

main.php?files=Main.php?files=[]

注意看源代码的,发起请求的请求方式

23232-3umg5u4n0q1.png

需要注意以下几点:

1:在对完成审计的结果复现时,一定要从源文件查看整条语句:比如下图

31020-teypgk9kbj.png

提示存在问题的行数:转代码看此处的功能点(简称 分段式功能点)

92047-rckawnt483.png

2:在对其进行基本验证的时候,也许你会发现该文件从外部是不可访问的,我们就可以进行代码追踪到上一个文件:比如开始定义:
37434-l6xlfs21tu.png

列相关payload语句:

Index.php?files=[main.php]_/files=/Index.php/main.php[files]$_post[files]=/

具体操作可以完全根据实际情况来。。。


电话咨询
在线留言
QQ客服