PHP代码审计神器——RIPS个人汉化版

Posted i春秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP代码审计神器——RIPS个人汉化版相关的知识,希望对你有一定的参考价值。

i春秋社区


RIPS简介

RIPS是一款php开发的开源的PHP代码审计工具,由国外的安全研究者Johannes Dahse开发,目前开源的最新版本是0.55。程序小巧玲珑,仅有不到500kb,其中的PHP语法分析非常精准,可以实现跨文件变量和函数追踪,误报率较低。并有拥有简单易懂的用户界面,因此被许多安全研究人员钟爱,因此RIPS可谓是PHP代码审计之利器。       


RIPS项目的官网为

http://rips-scanner.sourceforge.net/
和 https://www.ripstech.com/           
大家如果有兴趣可以自行了解           


目前RIPS的免费开源版本已停止了程序更新,但官方目前给出了下个版本的说明 

PHP代码审计神器——RIPS个人汉化版


简而言之就是官方想对程序的扫描精度,功能上进行了更进一步地拓展和升级,但神秘的作者也并没有告知我们下个版本的推送日期,所以我这次带来的是个人汉化版的RIPS—0.55版本。


汉化前的官方原版如图

PHP代码审计神器——RIPS个人汉化版


个人汉化后的如图所示 

PHP代码审计神器——RIPS个人汉化版
PHP代码审计神器——RIPS个人汉化版
 

RIPS安装环境

RIPS既然是基于PHP进行编写的,那么成功地运行RIPS便一定需要PHP环境的支持,在此我比较推荐使用PHPStudy这款程序来进行本地PHP环境安全

PHPstudy下载链接:http://phpstudy.php.cn/


安装后界面如图所示:

PHP代码审计神器——RIPS个人汉化版


下载RIPS后将其解压放入PHPstduy的根目录下即可使用(无需进行任何数据库配置)

PHP代码审计神器——RIPS个人汉化版


如图为RIPS安装成功后的界面

PHP代码审计神器——RIPS个人汉化版


RIPS使用方法

在程序的顶部"源码的绝对路径"文本框中输入你想要扫描的项目的绝对路径

(如F://person/phpstduy/WWW/dedecms),然后根据个人的需求来选择扫描漏洞的范围,是否扫描根目录等,最后点击扫描即可。

PHP代码审计神器——RIPS个人汉化版
PHP代码审计神器——RIPS个人汉化版


扫描后即可查看扫描报告

PHP代码审计神器——RIPS个人汉化版


RIPS审计实例

我们先以笔者2年前刚刚学PHP时写的垃圾程序开一下刀(拿老裤写的,你懂得)

PHP代码审计神器——RIPS个人汉化版
PHP代码审计神器——RIPS个人汉化版

我们是来正经八百地介绍程序的,所以手动打一下码(要这个程序可以私聊联系我--滑稽.JPG)


扫描后结果如图

PHP代码审计神器——RIPS个人汉化版


可以看到存在XSS、文件读取、PHP代码执行、HTTP header注入等漏洞,我们选择XSS和文件读取漏洞来测试一下RIPS审计的准确性。


1.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 == '..'),


可以看到该程序对f这个变量未进行过滤,直接将其输出,因此很可能存在XSS漏洞结合RIPS的漏洞说明可以知道XSS漏洞的成因及POC

PHP代码审计神器——RIPS个人汉化版


我们来测试一下

PHP代码审计神器——RIPS个人汉化版

如图,我们成功地弹窗了。证明RIPS对该程序的XSS审计是很准确的。


2.任意文件读取处代码如下

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读取文件内容,那么如果这个文件是服务器的敏感文件呢?

PHP代码审计神器——RIPS个人汉化版


我们来读取一个host文件测试一下

PHP代码审计神器——RIPS个人汉化版

如图,我们成功读取到了host文件的内容


总结

本篇文章介绍了国外安全研究人员开发的PHP代码审计神器——RIPS,相信大家可以借助这款工具更好地进行代码审计,挖到更多CMS的漏洞。

自己在这潜水很久了,也好久没写这么长的文了,虽然有点疲乏,但还是亦有余欢的。

在此祝愿各位老铁们能坚持梦想,坚持那份对于网络安全的初心,日有所长。
不放弃,不抛弃,志当存高远,愿诸君共勉。



戳阅读原文,跟作者进行深度交流吧~


以上是关于PHP代码审计神器——RIPS个人汉化版的主要内容,如果未能解决你的问题,请参考以下文章

代码审计:安全性测试方案

php代码审计基础知识

代码安全审计工具

代码审计入门

代码审核:安全性测试方案

PHP代码审计学习