代码审计利器-RIPS实践

什么是RIPS?
RIPS是最流行的静态代码分析工具,可自动检测PHP应用程序中的漏洞。 通过对所有源代码文件进行标记化和解析,RIPS能够将PHP源代码转换为程序模型,并检测在程序流程中可能被用户输入(受恶意用户影响)污染的敏感接收器(可能易受攻击的功能)。 除了发现漏洞的结构化输出外,RIPS还提供了一个集成的代码审计框架。

目前最新版本为0.55
作为审计工具,自然需要有源码供其审计,这里以dvwa为例,两者已经压缩包都已经提供(dvwa搭建注意事项参考:https://zhuanlan.zhihu.com/p/34970507)

现在开始实验:
将rips解压后的文件夹移动到网站根目录下
在这里插入图片描述
浏览器访问localhost/rips-0.55即可访问主界面
在这里插入图片描述
最上方是所有功能按钮菜单
在这里插入图片描述
由上到下,由左到右依次是:
要扫描的源码路径
扫描级别 扫描类型
代码样式 正则表达式
使用非常简单,这里我们以扫描dvwa为例进行讲解

在第一个框中输入dvwa源码的绝对路径
在这里插入图片描述
右边的subdirs勾选表示递归扫描子文件夹
扫描级别选择只扫描用户指定的
在这里插入图片描述
扫描类型处可以选择全部扫描也可以选择只扫描某种类型,此处以扫描文件包含漏洞为例
在这里插入图片描述
点击右侧的scan即开始扫描
此时为弹出警示,意思是说要扫描的文件太多了,确定扫描吗?
点击continue即可
在这里插入图片描述
可以看到扫描过程也是比较快的
在这里插入图片描述
扫描之后注意到右侧有四个按钮
在这里插入图片描述
点击files显示被扫描的文件
在这里插入图片描述
点击user input显示的是用户输入点
在这里插入图片描述
functions显示被扫描的函数
在这里插入图片描述
stats会出来一个报表
在这里插入图片描述
包含详细的扫描信息,我们只需关注扫描出一个文件包含漏洞
将报表关掉后,在主界面可以看到代码
在这里插入图片描述
从代码中可以看出,page参数没有任何过滤措施,攻击者可以尝试控制page参数
回顾一下什么是文件包含?
服务器包含文件时,不管文件后缀是否是php,都会尝试当做php文件执行,如果文件内容确为php,则会正常执行并返回结果,如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行

我们注意到左侧有四个小按钮
在这里插入图片描述
第一个按钮可以查看代码,定位到出现漏洞的地方
在这里插入图片描述
可以看到此处是由Include()这个特性函数引起的
第二个按钮用于缩略
在这里插入图片描述
第三个按钮可以查看帮助(这也是最有用的)
在这里插入图片描述
在帮助说明中会解释什么是文件包含漏洞,漏洞是如何产生的,漏洞的样例代码
在这里插入图片描述
还会给出poc
在这里插入图片描述
如果是代码的开发者自行审计的话,还可以参照给出的patch进行修复
在这里插入图片描述

既然找到了漏洞,我们就定位到dvwa,打开相应的文件
在这里插入图片描述
根据RIPS给的poc来验证是否真的存在文件包含漏洞
poc中给的是读取linux下的/etc/passwd,我们使用的windows,所以可以尝试读取hosts文件,poc如下:
?page=file:///C:\Windows\System32\drivers\etc\hosts
执行结果如图,果然读到了hosts文件
在这里插入图片描述

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值