PHP代碼審計工具——rips


一、代碼審計工具介紹

代碼審計工具可以輔助我們進行白盒測試,大大提高漏洞分析和代碼挖掘的效率。

在源代碼的靜態安全審計中,使用自動化工具輔助人工漏洞挖掘,一款好的代碼審計軟件,可以顯著提高審計工作的效率。學會利用自動化代碼審計工具,是每一個代碼審計人員必備的能力。
代碼審計工具按照編程語言、審計原理、運行環境可以有多種分類。商業性的審計軟件一般都支持多種編程語言,比如VCG、Fortify SCA,缺點就是價格比較昂貴。其他常用的代碼審計工具還有findbugs、codescan、seay,但是大多都只支持Windows環境。所以針對PHP代碼審計,這里介紹一款免費並且支持linux環境的 PHP 代碼審計軟件——Rips。

二、RIPS 使用教程

RIPS是一個用 PHP 編寫的源代碼分析工具,它使用了靜態分析技術,能夠自動化地挖掘 PHP 源代碼潛在的安全漏洞。滲透測試人員可以直接容易的審閱分析結果,而不用審閱整個程序代碼。由於靜態源代碼分析的限制,漏洞是否真正存在,仍然需要代碼審閱者確認。RIPS 能夠檢測 XSS, SQL 注入, 文件泄露, Header Injection 漏洞等。

下載好Rips之后,打開瀏覽器,輸入url:localhost/rips:


Rips 主界面


可以看到,這就是rips的主界面,給人的第一印象就是比較簡單,選型並不復雜,所以也非常容易上手!
接下來我會向你一一介紹這些選項的含義。

  • subdirs:如果勾選上這個選項,會掃描所有子目錄,否則只掃描一級目錄,缺省為勾選。

  • verbosity level:選擇掃描結果的詳細程度,缺省為1(建議就使用1)。

  • vuln type:選擇需要掃描的漏洞類型。支持命令注入、代碼執行、SQL注入等十余種漏洞類型,缺省為全部掃描。

  • code style:選擇掃描結果的顯示風格(支持9種語法高亮)。

  • /regex/:使用正則表達式過濾結果。

值得注意的是:官方宣稱rips只支持在firefox中使用。

接下來在path/file中輸入掃描目錄, 點擊scan:


scan


result


可以看到,掃描結果以圖標的形式給出,非常直觀。

rips 對掃描到的課程存在漏洞的代碼,不僅會給出解釋,還會給去相應的利用代碼。比如:


結果詳情


上圖中,掃描到一個命令注入漏洞,打開詳情,可以看到它給出的解釋是Userinput reaches sensitive sink.,即用戶能夠輸入敏感信息, 造成命令注入漏洞。

點擊左邊的問號,會為你解釋什么是命令注入漏洞:


help


點擊左邊的紅色按鈕,還能生成漏洞利用代碼:, 比如,就拿這個漏洞來舉例,再bash一欄種輸入uname -a,點擊creat,再將生成的代碼保存為testcode.php:


code


code


在testcode.php保存目錄執行命令:php testcode.php localhost/codeaudit/cmdinject:


攻擊結果


可以看到成功返回服務器版本信息。

另外,help信息中還給出了漏洞的修補方案:


rips cmdinject7.png

翻譯過來就是:

將代碼限制為非常嚴格的字符集或構建允許輸入的命令的白名單。
不要試圖過濾惡意的命令,攻擊者總是能繞過。
盡量避免使用系統命令執行功能。
示例代碼:
$modes = array(“r”,“w”,“a”); if(!in_array($ _ GET [“mode”],$ modes))exit;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM