溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

代碼審計(jì)之fortify工具怎么用

發(fā)布時(shí)間:2021-12-27 14:40:11 來源:億速云 閱讀:615 作者:小新 欄目:網(wǎng)絡(luò)管理

這篇文章主要為大家展示了“代碼審計(jì)之fortify工具怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“代碼審計(jì)之fortify工具怎么用”這篇文章吧。

1.去下載裝安裝cms    

官網(wǎng)地址自行猜測,自行下載。主講思路過程,任意一套系統(tǒng)都可。

2.安裝過程簡單分析是否有漏洞

不做安裝分析,很多都程序都會(huì)刪掉安裝包,有興趣的可以搞一下,這里略過。

3.安裝完成后,訪問首頁,分析路由

i.index.php

代碼審計(jì)之fortify工具怎么用

定義了NoDb常量,,,mark下,現(xiàn)在還不知道有啥用

加載了全局配置文件config.php

定義了路由的方法

ii.config.php

代碼審計(jì)之fortify工具怎么用

定義了些許的常量

包含了func.php文件(系統(tǒng)基本所有函數(shù)、加數(shù)據(jù)的操作類)

代碼審計(jì)之fortify工具怎么用

根據(jù)NoDb常量的值,取決了要不要初始化數(shù)據(jù)庫。(mark 上述疑問解答)

最后一個(gè)函數(shù)_stripslashes,是否要去除轉(zhuǎn)義,如下圖:

代碼審計(jì)之fortify工具怎么用

判斷是否支持,開啟了自動(dòng)轉(zhuǎn)義。如果開啟了就全局去除分斜杠,還原數(shù)據(jù)。

代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用

iii.index.php文件最后一行代碼match_route();

代碼審計(jì)之fortify工具怎么用

讀取數(shù)據(jù)庫,并進(jìn)行了緩存操作。

代碼審計(jì)之fortify工具怎么用

緩存記錄

代碼審計(jì)之fortify工具怎么用

初始化模板

代碼審計(jì)之fortify工具怎么用

加載模板

代碼審計(jì)之fortify工具怎么用

模板解析

代碼審計(jì)之fortify工具怎么用

完成首頁顯示,完成這個(gè)流程分析,對這個(gè)cms有了大概的了解

4.下面借助工具fortify快速人工審計(jì)

xss

代碼審計(jì)之fortify工具怎么用

這里有說存在,簡單一看,沒有過濾機(jī)制,那么具體分析數(shù)據(jù)來源是否準(zhǔn)確無誤,

代碼審計(jì)之fortify工具怎么用

這個(gè)位置是輸入框,數(shù)據(jù)來源人工填寫,它的目的地為數(shù)據(jù)庫存儲(chǔ),那現(xiàn)在關(guān)鍵位置是數(shù)據(jù)庫存儲(chǔ)的過程是否有做安全性過濾。

代碼審計(jì)之fortify工具怎么用

這里有個(gè)函數(shù)dbstr,數(shù)據(jù)庫字符串函數(shù)的處理,那么看函數(shù)的定義

代碼審計(jì)之fortify工具怎么用

分析得知,數(shù)據(jù)做了單引號的過濾,和反斜線的轉(zhuǎn)義,沒有過濾尖括號,那我們隨意構(gòu)建payload:<script>alert(1)</script>,效果圖下圖:

代碼審計(jì)之fortify工具怎么用

源代碼:

代碼審計(jì)之fortify工具怎么用

File Inclusion

代碼審計(jì)之fortify工具怎么用

這里提示有文件包含,查看代碼邏輯需要兩個(gè)參數(shù),do、nohtml、do的參數(shù)值做分隔處理,第一個(gè)參數(shù)值為路徑,第二個(gè)參數(shù)值為文件名。后面還有個(gè)驗(yàn)證函數(shù),代碼如下:

代碼審計(jì)之fortify工具怎么用

使用了正則做了驗(yàn)證,允許輸入的值數(shù)字和字母并且長度也做了限定,包括后綴也做了限定,那么存不存在包含,顯然可以是可以包含的,但是包含的范圍比較小,為什么?自己想一下。如果能突破這個(gè)限定,那肯定更牛叉。

后臺(tái)自帶文件管理系統(tǒng)

按照cnvd的評判標(biāo)準(zhǔn),這個(gè)系統(tǒng)只要拿些后臺(tái),就是一個(gè)高危的評級。因?yàn)閟hell如此簡單。

代碼審計(jì)之fortify工具怎么用

5. 難點(diǎn)分析

前臺(tái)沒有什么交互的模塊,所有著手于后臺(tái),那么從上面的分析來看,這個(gè)框架,只要突破了后臺(tái)賬號密碼,那么shell唾手可得?,F(xiàn)在分析登錄的過程。

代碼審計(jì)之fortify工具怎么用

沒有做驗(yàn)證碼的做驗(yàn)證,是否可以爆破下弱口令。

代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用

到此,這些過程說明,登錄做了限制,15分鐘內(nèi),只能發(fā)送20次的登錄請求,那我們分析緩存文件的生成規(guī)則:

代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用

代碼審計(jì)之fortify工具怎么用

也就是說,IP如果可以換。那么是不是就可以做到15分鐘20次的登錄限制,當(dāng)然你要有相當(dāng)多的ip代理池。支撐你的所有請求。接著往下看:

代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用

到這里程序里面的驗(yàn)證數(shù)據(jù)庫的SQL語句沒有SQL注入。這里還有第三方的登錄,看過程:

代碼審計(jì)之fortify工具怎么用代碼審計(jì)之fortify工具怎么用

數(shù)據(jù)庫默認(rèn)是空,即code的get傳值為空,就可以在MySQL獲取數(shù)據(jù)并登錄成功,什么字符串在單引號里面,相當(dāng)于是空值。

以上是“代碼審計(jì)之fortify工具怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI