代碼審計
代碼審計就是檢查所寫的代碼中是否有漏洞,檢查程序的源代碼是否有權限從而被黑客攻擊,同時也檢查了書寫的代碼是否規范。通過自動化的審查和人工審查的方式,逐行檢查源代碼,發現源代碼中安全缺陷所造成的漏洞,并提供解決方案和建議。
rips工具介紹
RIPS工具是一款專注于PHP代碼的靜態代碼分析工具,用于自動化檢測源代碼的安全漏洞,能檢測多種常見的漏洞,如:sql注入,跨站腳本(XSS),文件包含,遠程代碼執行漏洞(RCE)等。
這個工具提供簡介的頁面以及其自動化的分析靜態代碼,測試人可以很直觀的分析工具分析出得結果,極大的減少了安全測試代碼的時長,但是工具分析出來的結果還是得人工進一步測試是否真的有漏洞。
rips工具的搭建
從官網下載軟件
http://rips-scanner.sourceforge.net/
進入網址翻到網頁最下
點擊here
點擊download就可以了,下載好直接解壓出來,下面說一下解壓出來的文件要放到哪里才可以正常運行。
這個工具不需要配置,但是這個工具前提是由一個網站環境,這里我用phpstudy這個工具搭建。
直接下載好這個工具會有一個WWW文件夾,把下載解壓的RIPS文件夾拖到WWW文件夾。
可以看到我們把文件夾已經拖進去了,這樣我們的RIPS就算安裝好了。
然后啟動phpstudy。
打開瀏覽器輸入:localhost/rips-0.55
注意:
這里WWW文件夾中工具是什么名字就輸入對應的名字,不然會顯示網址錯誤。
比如:
我的WWW文件夾下是rips-0.55
我這里就得在網址上輸入:localhost/rips-0.55
工具功能
先看最上方的工具欄
subdirs:如勾選上這個選項,會掃描所有子目錄,否則只掃描一級目錄,缺省為勾選。
verbosity level:選擇掃描結果的詳細程度,一般用1。
vuln type:選擇要搜索的漏洞種類,不選擇則全部掃描。
code style:選擇結果的顯示風格。
/regex/:通過正則表達式過濾后的結果。
path/file: 要搜索的源代碼所在的絕對路徑。
scan: 掃描按鈕。
工具漢化
https://github.com/J0o1ey/rips-Chinese
這是一個大佬翻譯的rips軟件,安裝是一樣的官方版本一樣的操作,直接拖到WWW文件夾下就可以了。
這里注意文件名不要和官方版的一樣,可以修改一下,在網址上輸入修改后的文件名就可以進來了。
工具演示
sql注入漏洞檢測
電腦上順便配置一個sqli-labs靶場,然后測試一下。
在工具輸入路徑的地方輸入我們下載好的靶場的對應關卡的絕對路徑,也可以直接掃描整個關卡,但可能會比較慢,所以這里選一關測試一下。
其他的就不修改了,直接掃描
掃描后出現結果,這里為了顯示直接點,用漢化版的看一下。
掃描出有sql注入漏洞,我們來看一下給出的代碼段。
發現代碼段這里,對用戶的輸入沒有限制,并且直接輸入后就調用到sql搜索上,造成sql注入漏洞。
這里也可以靜態分析到這個是sql注入得用")閉合的。
那么下面寫上payload:
?id=1") order by 3--+
判斷表格有幾列
?id=-1") union select 1,2,3--+
判斷顯示位,來判斷表格的那幾列是在網頁顯示的
?id=-1") union select 1,database(),version()--+
聯合查詢,爆出數據庫名與數據庫版本
?id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
爆對應數據庫下的表名
?id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+
爆字段名
?id=-1") union select 1,2,group_concat(username ,id , password) from users--+
爆出敏感字段的信息
文件包含
這是分析了pikachu靶場的文件包含的源代碼,輸出的結果說有2個文件包含漏洞,這里看一下本地文件包含漏洞。
看rips分析的不安全代碼,這里對我們的輸入沒有任何檢測,并且輸入的文件路徑會直接用include函數執行,從而造成文件包含的漏洞。
點擊左下角的問號,會彈出工具給我們的分析,其中有這個漏洞是如何產生的,舉例poc利用,以及修復方法。
下面我們測試一下這個漏洞是否存在。
隨便點擊下拉框的一個點擊
可以發現會對應的彈出信息,觀察網址,可以看到通過get函數傳參了,是一個filename參數。
修改其參數觀察。
改成file2可以發現換了一個信息輸出,分析下拉框一共有5個,試一下file6.php。
輸出了賬號和密碼,說明有文件包含漏洞,再輸入file7.php看看。
報錯了,但是也說明了根目錄的一些信息,說明是Windows系統,win系統下一定會有C:\Windows\win.ini這個文件,通過觀察報錯的回顯,我們可以看到現在所在的路徑,那么我們通過這2個信息,寫上文件C:\Windows\win.ini文件的路徑。
…/…/…/…/…/…/windows/win.ini
輸出了對應的信息,證實了有這個漏洞。
分析一個文件夾的源代碼
警告選擇持續就行。
顯示了整個文件夾中源代碼的漏洞。