這篇文章主要為大家展示了“代碼審計(jì)之fortify工具怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“代碼審計(jì)之fortify工具怎么用”這篇文章吧。
在通城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,通城網(wǎng)站建設(shè)費(fèi)用合理。
1.去下載裝安裝cms
官網(wǎng)地址自行猜測(cè),自行下載。主講思路過(guò)程,任意一套系統(tǒng)都可。
2.安裝過(guò)程簡(jiǎn)單分析是否有漏洞
不做安裝分析,很多都程序都會(huì)刪掉安裝包,有興趣的可以搞一下,這里略過(guò)。
3.安裝完成后,訪問(wèn)首頁(yè),分析路由
i.index.php
定義了NoDb常量,,,mark下,現(xiàn)在還不知道有啥用
加載了全局配置文件config.php
定義了路由的方法
ii.config.php
定義了些許的常量
包含了func.php文件(系統(tǒng)基本所有函數(shù)、加數(shù)據(jù)的操作類)
根據(jù)NoDb常量的值,取決了要不要初始化數(shù)據(jù)庫(kù)。(mark 上述疑問(wèn)解答)
最后一個(gè)函數(shù)_stripslashes,是否要去除轉(zhuǎn)義,如下圖:
判斷是否支持,開(kāi)啟了自動(dòng)轉(zhuǎn)義。如果開(kāi)啟了就全局去除分斜杠,還原數(shù)據(jù)。
iii.index.php文件最后一行代碼match_route();
讀取數(shù)據(jù)庫(kù),并進(jìn)行了緩存操作。
緩存記錄
初始化模板
加載模板
模板解析
完成首頁(yè)顯示,完成這個(gè)流程分析,對(duì)這個(gè)cms有了大概的了解
4.下面借助工具fortify快速人工審計(jì)
xss
這里有說(shuō)存在,簡(jiǎn)單一看,沒(méi)有過(guò)濾機(jī)制,那么具體分析數(shù)據(jù)來(lái)源是否準(zhǔn)確無(wú)誤,
這個(gè)位置是輸入框,數(shù)據(jù)來(lái)源人工填寫(xiě),它的目的地為數(shù)據(jù)庫(kù)存儲(chǔ),那現(xiàn)在關(guān)鍵位置是數(shù)據(jù)庫(kù)存儲(chǔ)的過(guò)程是否有做安全性過(guò)濾。
這里有個(gè)函數(shù)dbstr,數(shù)據(jù)庫(kù)字符串函數(shù)的處理,那么看函數(shù)的定義
分析得知,數(shù)據(jù)做了單引號(hào)的過(guò)濾,和反斜線的轉(zhuǎn)義,沒(méi)有過(guò)濾尖括號(hào),那我們隨意構(gòu)建payload:,效果圖下圖:
源代碼:
File Inclusion
這里提示有文件包含,查看代碼邏輯需要兩個(gè)參數(shù),do、nohtml、do的參數(shù)值做分隔處理,第一個(gè)參數(shù)值為路徑,第二個(gè)參數(shù)值為文件名。后面還有個(gè)驗(yàn)證函數(shù),代碼如下:
使用了正則做了驗(yàn)證,允許輸入的值數(shù)字和字母并且長(zhǎng)度也做了限定,包括后綴也做了限定,那么存不存在包含,顯然可以是可以包含的,但是包含的范圍比較小,為什么?自己想一下。如果能突破這個(gè)限定,那肯定更牛叉。
后臺(tái)自帶文件管理系統(tǒng)
按照cnvd的評(píng)判標(biāo)準(zhǔn),這個(gè)系統(tǒng)只要拿些后臺(tái),就是一個(gè)高危的評(píng)級(jí)。因?yàn)閟hell如此簡(jiǎn)單。
5. 難點(diǎn)分析
前臺(tái)沒(méi)有什么交互的模塊,所有著手于后臺(tái),那么從上面的分析來(lái)看,這個(gè)框架,只要突破了后臺(tái)賬號(hào)密碼,那么shell唾手可得?,F(xiàn)在分析登錄的過(guò)程。
沒(méi)有做驗(yàn)證碼的做驗(yàn)證,是否可以爆破下弱口令。
到此,這些過(guò)程說(shuō)明,登錄做了限制,15分鐘內(nèi),只能發(fā)送20次的登錄請(qǐng)求,那我們分析緩存文件的生成規(guī)則:
也就是說(shuō),IP如果可以換。那么是不是就可以做到15分鐘20次的登錄限制,當(dāng)然你要有相當(dāng)多的ip代理池。支撐你的所有請(qǐng)求。接著往下看:
到這里程序里面的驗(yàn)證數(shù)據(jù)庫(kù)的SQL語(yǔ)句沒(méi)有SQL注入。這里還有第三方的登錄,看過(guò)程:
數(shù)據(jù)庫(kù)默認(rèn)是空,即code的get傳值為空,就可以在MySQL獲取數(shù)據(jù)并登錄成功,什么字符串在單引號(hào)里面,相當(dāng)于是空值。
以上是“代碼審計(jì)之fortify工具怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!