零、前言
有技術交流或滲透測試培訓需求的朋友歡迎聯系QQ/VX-547006660,需要代碼審計、滲透測試、紅藍對抗網絡安全相關業務可以看置頂博文
2000人網絡安全交流群,歡迎大佬們來玩
群號820783253
一、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的漏洞。