商業級別Fortify白盒神器介紹與使用分析

轉自:http://www.freebuf.com/sectool/95683.htmljavascript

什麼是fortify它又能幹些什麼?

答:fottify全名叫:Fortify SCA ,是HP的產品 ,是一個靜態的、白盒的軟件源代碼安全測試工具。它經過內置的五大主要分析引擎:數據流、語義、結構、控制流、配置流等對應用軟件的源代碼進行靜態的分析,分析的過程當中與它特有的軟件安全漏洞規則集進行全面地匹配、查找,從而將源代碼中存在的安全漏洞掃描出來,並給予整理報告。php

它支持掃描多少種語言?

答:FortifySCA支持的21語言,分別是:     html

1. asp.net     
2. VB.Net     
3. c#.Net     
4. ASP     
5. VBscript     
6. VS6     
7.java     
8.JSP     
9.javascript     
10. HTML     
11. XML     
12. C/C++     
13.PHP     
14.T-SQL     
15.PL/SQL     
16. Action script      
17. Object-C (iphone-2012/5)     
18. ColdFusion5.0 - 選購     
19. python -選購     
20. COBOL - 選購     
21.SAP-ABAP -選購

他是免費的嗎?

答:不是,是收費的。固然網上也沒有破解的。貌似他一個月收費10萬。java

如何使用?

安裝fortify以後,打開python

1.png

界面:mysql

Image.png

選擇高級掃描sql

Image.png

他問要不要更新? 我就選擇No,由於這是我私人的,我是在2015年7月份購買的試用期爲1個月。怕更新了就用不了了。若是你購買了能夠選擇YES。數據庫

選擇以後出現以下界面c#

Image.png

瀏覽意思是:掃描以後保存的結果保存在哪一個路徑。安全

而後點擊下一步。

Image.png

參數說明:

enable clean :把上一次的掃描結果清楚,除非換一個build ID,否則中間文件可能對下一次掃描產生影響。
enable translation: 轉換,把源碼代碼轉換成nst文件
-64: 是掃描64位的模式,sca默認掃描是32位模式。
-Xmx4000m:4000M大概是4G,制定內存數-Xmx4G :也能夠用G定義這個參數建議加
-encoding: 定製編碼,UTF-8比較全,工具解析代碼的時候指定字符集轉換的比較好,建議加,若是中文註釋不加會是亂碼。
-diable-source-:rendering:不加載與漏洞無關的代碼到審計平臺上,不建議加,這樣代碼顯示不全。

而後點擊下一步

Image.png

它說:這是一個J2EE Web應用

選擇No    (由於你掃的是PHP)

而後scan(開始掃描)

Image.png

Always run in background 意思:老是在後臺運行

run in background 意思:後臺運行

cancel 意思 : 取消

Details 意思:細節

掃完以後:

I$@Q`AUNPD}~4YZ$T}RGJ$V.png

none 表明其餘 1個
A1 注入 7個 
A3 xss 37個
A4 不安全的直接對象引用 35個
A6 敏感數據暴露 4個
A10 未驗證的重定向和轉發 2個

若是發現是英文的,想改爲以下方法中文:

Image.png

如下是官網提供的分析圖:

Image.png

分析漏洞:

none漏洞:

NE%G$Q7(V(OWCK}SG8LP3MD.png

這是一個可變變量,按照中國人說法簡稱:「變量覆蓋」。

講一下這個漏洞的原理:

可變變量

$first ="hello"; $hello ="world"; echo $first." ".$$first;

結果是 hello world

$$first就是$hello,由於$first的值是hello

———————————可是在foreach 就不同了—————————————————–

<?php $a = 'sss'; foreach ($_GET as $key => $value) {      //若是在foreach那就不同了      echo $$key;  //將$$區分開 而後$key 等於鍵 而後開始合併 好比打開http://www.com.com/demo.php?a=值 就變成了$a  由於$key的鍵是a 因此就變成了$a      $$key = $value;//$a = 值  替換變量      } echo '<hr '>'; echo $a; ?>

Image.png

{]9T}6N7VN]M$5MRHC2T6~N.png

A1 注入漏洞:

]WS{P]@%K%~33)]6X]_(94Q.png

發現$c變量是由客戶端進行GET請求控制的。

safe_replace函數過濾以下字符:

function safe_replace($string) { $string = str_replace('%20','',$string); $string = str_replace('%27','',$string); $string = str_replace('%2527','',$string); $string = str_replace('*','',$string); $string = str_replace('"','"',$string); $string = str_replace("'",'',$string); $string = str_replace('"','',$string); $string = str_replace(';','',$string); $string = str_replace('<','<',$string); $string = str_replace('>','>',$string); $string = str_replace("{",'',$string); $string = str_replace('}','',$string); $string = str_replace('\\','',$string); return $string; }

include $c.".php";  可是後面有個.php是拼接的。

可是若是php版本小於5.3.40能夠採用空字節也就是%00的二進制視做字符串的結束,按照其餘說法的話也就是截斷。。。。。

K)L(HC`1_UPCWPPZH_IDK]U.png

33TSUWKR(W1{KV5$7)RMYKA.png

A3 xss 漏洞

$field_sql="update ".DB_PRE."member set {$field_sql} where userid={$last_id}"; $query=$this->mysql->query($field_sql);

~NAEKD]S_[TYWFJ1K]N@]5K.png

寫入數據庫的時候沒有任何限制或者輸出的時候沒有作任何的過濾就直接輸出致使形成了XSS。(我就不一一解釋了)

W[QZG7AU1S%CAJ8TCRDFLLE.png

A4 不安全的直接對象引用漏洞

AQ(5Q9UM78QECELLH6H%ES4.png

文件上傳次數未作策略,可致使攻擊。

U9FJP_3`A5[4}G$`VFT)II6.png

A6 敏感數據暴露漏洞:

R8H_JLQ8J5LS)L2EEJ)HV$W.png

A10 未驗證的重定向和轉發漏洞:

這裏我就不去定位看誰使用這個函數了,懂點PHP的人相信都懂。。

`B5$1_I{[5C`_)13MUE}@ZV.png

整個過程基本已經結束了,可是有點我想提醒你們,在設置內存的時候若是你不設置內存他會自動幫你設置,好比你的電腦內存是8G 他就自動設置爲8G 而後就會佔用你8G內存,而後搞得你電腦卡卡卡卡卡卡卡的。下次掃以前記得要設置你的內存,若是你電腦是8G內存 設置7G就行了,還剩下1G就能夠玩4399小小遊戲了。 ~_~ 

相關文章
相關標籤/搜索