一、RIPS简介
RIPS是一款PHP开发的开源的PHP代码审计工具,由国外的安全研究者Johannes Dahse开发,目前开源的最新版本是0.55。
程序小巧玲珑,仅有不到500kb,其中的PHP语法分析非常精准,可以实现跨文件变量和函数追踪,误报率较低。并有拥有简单易懂的用户界面,因此被许多安全研究人员钟爱,因此RIPS可谓是PHP代码审计之利器。
RIPS项目的官网为http://rips-scanner.sourceforge.net/
和 https://www.ripstech.com/
大家如果有兴趣可以自行了解
目前RIPS的免费开源版本已停止了程序更新,但官方目前给出了下个版本的说明
简而言之就是官方想对程序的扫描精度,功能上进行了更进一步地拓展和升级,但神秘的作者也并没有告知我们下个版本的推送日期,所以我这次带来的是个人汉化版的RIPS—0.55版本。
个人汉化后的如图所示
emmm~!看了以后是不是非常心动了?心动不如行动,快点来下载和使用吧
部分地方汉化不全,还请各位大佬们海涵~
下载地址见文末
二、RIPS安装环境
RIPS是基于PHP进行编写的,那么成功地运行RIPS便一定需要PHP环境的支持,在此我比较推荐使用PHPStudy这款程序来进行本地PHP环境安全
PHPstudy下载链接:http://phpstudy.php.cn/
安装后界面如图所示:
下载RIPS后将其解压放入PHPstduy的根目录下即可使用(无需进行任何数据库配置)
如图为RIPS安装成功后的界面
三、RIPS使用方法
在程序的顶部"源码的绝对路径"文本框中输入你想要扫描的项目的绝对路径(如F://person/phpstduy/WWW/dedecms)
然后根据个人的需求来选择扫描漏洞的范围,是否扫描根目录等,最后点击扫描即可。
扫描后即可查看扫描报告
四、RIPS审计实例
我们先以笔者多年前刚刚学PHP时写的垃圾程序开一下刀(拿老裤写的,你懂得)
扫描后结果如图
可以看到存在XSS、文件读取、PHP代码执行、HTTP header注入等漏洞,我们选择XSS和文件读取漏洞来测试一下RIPS审计的准确性。
①XSS漏洞处代码如下
echo "-><a href=\"{$_SERVER['PHP_SELF']}?path=" . _encode ($f['..']) . "\">上级目录 </a> ";
$f = _opendir (_decode ($_GET['path'])); // elseif($_GET == null) else ,
$f = _opendir ('xiaojie'); // elseif($_GET == null),
$f = _opendir ('xiaojie'); // if($_GET == '..'),
可以看到该程序对f这个变量未进行过滤,直接将其输出,因此很可能存在XSS漏洞结合RIPS的漏洞说明可以知道XSS漏洞的成因及POC
我们来测试一下
如图,我们成功地弹窗了。证明RIPS对该程序的XSS审计是很准确的。
②任意文件读取处代码如下
echo echo "-><a href=\"{$_SERVER['PHP_SELF']}?path=" . _encode ($f['..']) . "\">上级目录 </a> ";
$f = _opendir (_decode ($_GET['path'])); // elseif($_GET == null) else ,
$f = _opendir ('xiaojie'); // elseif($_GET == null),
$f = _opendir ('xiaojie'); // if($_GET == '..'),
同样的,该程序未对data变量进行任何验证,直接使用file_get_contents读取文件内容
我们来读取一个host文件测试一下
如图,我们成功读取到了host文件的内容
五、总结
本篇文章介绍了国外安全研究人员开发的PHP代码审计神器——RIPS,并且提供了笔者的汉化版本,相信大家可以借助这款工具更好地进行代码审计,挖到更多CMS的漏洞。
有技术交流或渗透测试培训需求的朋友欢迎联系QQ/VX-547006660,需要代码审计、渗透测试、红蓝对抗网络安全相关业务可以看置顶博文
2000人网络安全交流群,欢迎大佬们来玩
群号820783253
六、下载
https://github.com/J0o1ey/rips-Chinese