视频一区二区三区自拍_千金肉奴隷1985未删减版在线观看_国产成人黄色视频在线播放_少女免费播放片高清在线观看_国产精品v欧美精品v

Web漏洞檢測及修復(fù)

Web漏洞是指以各種語言(PHP、JSP、C++等)開發(fā)的CGI/Web Service中存在的安全漏洞。
下面是漏洞的定義,檢測方法以及修復(fù)方案。

1. 注入漏洞

1.1 SQL注入漏洞

名稱:?SQL注入漏洞(SQL Injection)

描述:Web程序代碼中對于用戶提交的參數(shù)未做過濾就直接放到SQL語句中執(zhí)行,導(dǎo)致參數(shù)中的特殊字符打破了SQL語句原有邏輯,黑客可以利用該漏洞執(zhí)行任意SQL語句。

檢測方法:通過修改參數(shù)來判斷是否存在漏洞。

修復(fù)方案:
1. 針對ASP.NET的防XSS庫,Microsoft有提供統(tǒng)一的方法,具體可以參見如下鏈接:http://www.cnblogs.com/hcmfys/archive/2008/07/11/1240809.html?
2. 針對其它語言如下細分:
在代碼級對帶入SQL語句中的外部參數(shù)進行轉(zhuǎn)義或過濾:
(1)對于整數(shù),判斷變量是否符合[0-9]的值;其他限定值,也可以進行合法性校驗
(2)對于字符串,對SQL語句特殊字符進行轉(zhuǎn)義(單引號轉(zhuǎn)成兩個單引號,雙引號轉(zhuǎn)成兩個雙引號)。關(guān)于這點,PHP有類似的轉(zhuǎn)義函數(shù)mysql_escape_string和mysql_real_escape_string。?
建議:
(1)使用騰訊CMEM存儲方案;
(2)對與數(shù)據(jù)庫進行交互的用戶請求數(shù)據(jù),要先做過濾,防止SQL注入。

1.2 XSS漏洞

名稱:XSS注入漏洞(Cross-site Scripting)

描述:Web程序代碼中把用戶提交的參數(shù)未做過濾就直接輸出到頁面,參數(shù)中的特殊字符打破了HTML頁面的原有邏輯,黑客可以利用該漏洞執(zhí)行惡意HTML/JS代碼、構(gòu)造蠕蟲傳播、篡改頁面實施釣魚攻擊等。

檢測方法:通過修改參數(shù)來判斷是否存在漏洞。
比如用戶輸入內(nèi)容:’<u>a</u>”的時候,合法的顯示是: ’<u>a</u>” ,合法的顯示的源碼是:

而存在漏洞的頁面顯示卻是:’a

源碼是:

修復(fù)方案:
1. 開發(fā)者應(yīng)該嚴格按照openid和openkey的校驗規(guī)則判斷openid和openkey是否合法,且判斷其它參數(shù)的合法性,不合法不返回任何內(nèi)容。?

2. 嚴格限制URL參數(shù)輸入值的格式,不能包含不必要的特殊字符(?%0d、%0a、%0D 、%0A 等)。?

3. 針對ASP.NET的防XSS庫,Microsoft有提供統(tǒng)一的庫,具體可以參見如下鏈接
微軟官網(wǎng):http://msdn.microsoft.com/en-us/library/aa973813.aspx?

4. 具體的js方法如下:
(1)對于用戶輸入的參數(shù)值展現(xiàn)在HTML正文中或者屬性值中的情況,例如:?
展現(xiàn)在html正文中:<a >Un-trusted input</a>
展現(xiàn)在屬性值中:<input name="searchword" value="Un-trusted input">
此時需要將紅色的不可信內(nèi)容中做如下的轉(zhuǎn)碼(即將< > ‘ “ ` 轉(zhuǎn)成html實體):

(2)對于用戶輸入落在<script>的內(nèi)容中的情況,例如:

需要將紅色的不可信內(nèi)容中做如下的轉(zhuǎn)碼: [a-zA-Z0-9.-_,]以及ASC值大于0x80之外的所有字符轉(zhuǎn)化為\x**這種形式,例如:

1.3 命令注入漏洞

名稱:命令注入漏洞(Command Injection)

描述:Web程序代碼中把用戶提交的參數(shù)未做過濾就直接使用shell執(zhí)行,攻擊者可以執(zhí)行任意系統(tǒng)命令。

檢測方法:通過修改參數(shù)來判斷是否存在漏洞。

修復(fù)方案:在代碼級調(diào)用shell時,對命令行中的特殊字符進行轉(zhuǎn)義(|、&、;等),防止執(zhí)行其他非法命令。
PHP中可使用escapeshellarg、escapeshellcmd來轉(zhuǎn)義。


1.4 HTTP響應(yīng)頭注入漏洞

名稱:HTTP響應(yīng)頭注入漏洞(HTTP-Response-Splitting,HTTP_header_injection)

描述:Web程序代碼中把用戶提交的參數(shù)未做過濾就直接輸出到HTTP響應(yīng)頭中,攻擊者可以利用該漏洞來注入HTTP響應(yīng)頭,可以造成xss攻擊、欺騙用戶下載惡意可執(zhí)行文件等攻擊。
另外根據(jù)國際安全組織司acunetix統(tǒng)計,以下apache存在header injection漏洞:1.3.34/2.0.57/2.2.1。

檢測方法:通過修改參數(shù)來判斷是否存在漏洞。
比如國內(nèi)某著名網(wǎng)站曾經(jīng)出現(xiàn)過header注入漏洞,如下url:

http://www.YYYYYYYYY.com/YYYYWeb/jsp/website/agentInvoke.jsp?agentid=%0D%0AX-foo:%20bar

抓包時發(fā)現(xiàn):

修復(fù)方案:
1. 在設(shè)置HTTP響應(yīng)頭的代碼中,過濾回車換行(%0d%0a、%0D%0A)字符。?
2. 不采用有漏洞版本的apache服務(wù)器,同時對參數(shù)做合法性校驗以及長度限制,謹慎的根據(jù)用戶所傳入?yún)?shù)做http返回包的header設(shè)置。


1.5 跳轉(zhuǎn)漏洞

名稱:跳轉(zhuǎn)漏洞

描述:Web程序直接跳轉(zhuǎn)到參數(shù)中的URL,或頁面引入任意的開發(fā)者URL。

檢測方法:修改參數(shù)中的合法URL為非法URL。例如測試一下如下URL:
http://***.qq.com/cgi-bin/demo_es.cgi?backurl=http://www.***.com,看是否會跳轉(zhuǎn)到注入的http://www.***.com站點。

修復(fù)方案:在控制頁面轉(zhuǎn)向的地方校驗傳入的URL是否為可信域名。
例如以下是一段校驗是否是騰訊域名的JS函數(shù):

function VaildURL(sUrl)
{
return (/^(https?:\/\/)?[\w\-.]+\.(qq|paipai|soso|taotao)\.com($|\/|\\)/i).test(sUrl)||(/^[\w][\w\/\.\-_%]+$/i).test(sUrl)||(/^[\/\\][^\/\\]/i).test(sUrl)?? true?: false;?
}

1.6 XML注入漏洞

名稱:XML注入漏洞

描述:Web程序代碼中把用戶提交的參數(shù)未做過濾就直接輸出到XML中。

檢測方法:通過修改參數(shù)來判斷是否存在漏洞。

修復(fù)方案:在代碼級輸出時對XML特殊字符(“<”、“>”、“>]]”)進行轉(zhuǎn)義。

2. 信息泄露漏洞

2.1 PHPInfo()信息泄露漏洞

名稱:PHPInfo()信息泄露漏洞

描述:Web站點的某些測試頁面可能會使用到PHP的phpinfo()函數(shù),會輸出服務(wù)器的關(guān)鍵信息。如下圖所示:

檢測方法:訪問http://[ip]/test.php 以及http://[ip]/phpinfo.php看是否成功。

修復(fù)方案:刪除該PHP文件。

2.2 測試頁面泄露在外網(wǎng)漏洞

名稱:測試頁面泄露在外網(wǎng)漏洞

描述:一些測試頁面泄露到外網(wǎng),導(dǎo)致外界誤傳公司被黑客入侵。如下圖所示:
1.?http://parts.baby.qzoneapp.com/

2.?http://parts.baby.qzoneapp.com/test.php

3.?http://other.baby.qzoneapp.com

檢測方法:檢測頁面內(nèi)容,看是否是測試頁面。

修復(fù)方案:刪除測試頁面,例如test.cgi,phpinfo.php,info.pho, .svn/entries等。


2.3 備份文件泄露在外網(wǎng)漏洞

名稱:備份文件泄露在外網(wǎng)漏洞

描述:編輯器或者人員在編輯文件時,產(chǎn)生的臨時文件,如vim自動保存為.swp后綴、UltrlEditor自動保存.bak后綴等,這些文件會泄露源代碼或者敏感信息。如下圖所示:

泄露源代碼可以讓黑客完全了解后臺開發(fā)語言、架構(gòu)、配置信息等。下圖是國內(nèi)某著名網(wǎng)站曾經(jīng)出現(xiàn)過的源代碼泄露漏洞:

檢測方法:在cgi文件后面添加.bak、.swp、.old、~等后綴探測。

修復(fù)方案:刪除備份文件。


2.4 版本管理工具文件信息泄露漏洞

名稱:版本管理工具文件信息泄露漏洞

描述:版本管理工具SVN和CVS會在所有目錄添加特殊文件,如果這些文件同步到Web目錄后就會泄露路徑等信息。如下圖所示:

檢測方法:訪問http://[ip]/CVS/Entriesp 以及http://[ip]/.svn/entriesp看是否成功。

修復(fù)方案:刪除SVN各目錄下的.svn目錄;刪除CVS的CVS目錄。


2.5 HTTP認證泄露漏洞

名稱:HTTP認證泄露漏洞

描述:Web目錄開啟了HTTP Basic認證,但未做IP限制,導(dǎo)致攻擊者可以暴力破解賬號密碼。如下圖所示:

修復(fù)方案:限制IP訪問該目錄。


2.6 管理后臺泄露漏洞

名稱:管理后臺泄露漏洞

描述:管理后臺的賬號和密碼設(shè)計過于簡單,容易被猜測到,導(dǎo)致攻擊者可以暴力破解賬號密碼。如下圖所示:

修復(fù)方案:
1. 將管理后臺的服務(wù)綁定到內(nèi)網(wǎng)ip上,禁止開放在外網(wǎng)。
2. 如果該管理后臺必須提供給外網(wǎng)訪問,則未登錄頁面不要顯示過多內(nèi)容,防止敏感信息泄露,登錄賬號需經(jīng)過認證,且密碼設(shè)置規(guī)則盡量復(fù)雜,增加驗證碼,以防止暴力破解。

2.7 泄露員工電子郵箱漏洞以及分機號碼

名稱:泄露員工電子郵箱漏洞以及分機號碼

描述:泄露員工內(nèi)部電子郵箱以及分機號碼相當(dāng)于泄露了員工內(nèi)部ID,可以為黑客進行社會工程學(xué)攻擊提供有價值的材料,同時也為黑客暴力破解后臺服務(wù)提供重要的賬號信息。

修復(fù)方案:刪除頁面注釋等地方中出現(xiàn)騰訊員工電子郵箱以及分機號碼的地方。


2.8 錯誤詳情泄露漏洞

名稱:錯誤詳情泄露漏洞

描述:頁面含有CGI處理錯誤的代碼級別的詳細信息,例如sql語句執(zhí)行錯誤原因,php的錯誤行數(shù)等。

檢測方法:修改參數(shù)為非法參數(shù),看頁面返回的錯誤信息是否泄露了過于詳細的代碼級別的信息。

修復(fù)方案:將錯誤信息對用戶透明化,在CGI處理錯誤后可以返回友好的提示語以及返回碼。但是不可以提示用戶出錯的代碼級別的詳細原因。


3. 請求偽造漏洞

3.1 CSRF漏洞

名稱:CSRF漏洞(Cross Site Request Forgery)

描述:用戶以當(dāng)前身份瀏覽到flash或者開發(fā)者網(wǎng)站時,JS/flash可以迫使用戶瀏覽器向任意CGI發(fā)起請求,此請求包含用戶身份標識,CGI如無限制則會以用戶身份進行操作。

檢測方法:
1. 在實際的測試過程中,測試人員需要判斷操作是否為保存類操作,是否強制為POST方式傳輸參數(shù)。
判斷方式是通過抓包工具把所有的POST參數(shù)都改成GET方式提交。
需要注意的是,這種方法只可防止圖片跳轉(zhuǎn)式CSRF漏洞,如果頁面上有XSS漏洞話,CSRF無法防御。
2. 最簡單的辦法就是查閱該cgi是否帶有無法預(yù)知的參數(shù),例如隨機字符串等。?

修復(fù)方案:可使用以下任意辦法防御CSRF攻擊:
1. 在表單中添加form token(隱藏域中的隨機字符串);
2. 請求referrer驗證;
3. 關(guān)鍵請求使用驗證碼。

3.2 JSON-hijackin漏洞

名稱:JSON-hijackin漏洞

描述:CGI以JSON形式輸出數(shù)據(jù),黑客控制的開發(fā)者站點以CSRF手段強迫用戶瀏覽器請求CGI得到JSON數(shù)據(jù),黑客可以獲取敏感信息。

檢測方法:
1. 檢查返回的json數(shù)據(jù)是否包含敏感信息,例如用戶ID,session key,郵箱地址,手機號碼,好友關(guān)系鏈等。
2. 確認提交是否帶有無法預(yù)知的參數(shù),例如隨機字符串等。
修復(fù)方案:可使用以下任意辦法防御JSON-hijackin攻擊:
1. 在請求中添加form token(隱藏域中的隨機字符串);
2. 請求referrer驗證。

4. 權(quán)限控制漏洞

4.1 文件上傳漏洞

名稱:文件上傳漏洞

描述:接受文件上傳的Web程序未對文件類型和格式做合法性校驗,導(dǎo)致攻擊者可以上傳Webshell(.php、.jsp等)或者非期望格式的文件(.jpg后綴的HTML文件)

修復(fù)方案:文件上傳的CGI做到:
1. 上傳文件類型和格式校驗;
2. 上傳文件以二進制形式下載,不提供直接訪問。

4.2 crossdomain.xml配置不當(dāng)漏洞

名稱:crossdomain.xml配置不當(dāng)漏洞

描述:網(wǎng)站根目錄下的文件crossdomain.xml指明了遠程flash是否可以加載當(dāng)前網(wǎng)站的資源(圖片、網(wǎng)頁內(nèi)容、flash等)。
如果配置不當(dāng),可能帶來CSRF攻擊。如下圖所示:

檢測方法:
訪問http://[domain]/crossdomain.xml?
修復(fù)方案:對于不需要外部加載資源的網(wǎng)站,crossdomain.xml中更改allow-access-from的domain屬性為域名白名單。
修復(fù)大致樣本參考如下(備注:示例中的app10000.qzoneapp.com,app10000.imgcache.qzoneapp.com請修改為自己指定的站點):

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from secure="false" domain="*.qq.com"/>
<allow-access-from secure="false" domain="*.soso.com"/>
<allow-access-from secure="false" domain="*.paipai.com"/>
<allow-access-from secure="false" domain="*.gtimg.cn"/>
<allow-access-from secure="false" domain="*.pengyou.com"/>
<allow-access-from secure="false" domain="app10000.qzoneapp.com"/>
<allow-access-from secure="false" domain="app10000.imgcache.qzoneapp.com"/>
</cross-domain-policy>

4.3 flash標簽配置不當(dāng)漏洞

名稱:flash標簽配置不當(dāng)漏洞

描述:網(wǎng)頁在引入flash的時候,會通過object/embed標簽,在設(shè)置的時候,如果一些屬性配置不當(dāng),會帶來安全問題:
1. allowScriptAccess:是否允許flash訪問瀏覽器腳本。如果不對不信任的flash限制,默認會允許調(diào)用瀏覽器腳本,產(chǎn)生XSS漏洞。
always(默認值),總是允許;sameDomain,同域允許;never,不允許?
2. allowNetworking:是否允許flash訪問ActionScript中的網(wǎng)絡(luò)API。如果不對不信任的flash限制,會帶來flash彈窗、CSRF等問題。
all,允許所有功能,會帶來flash彈窗危害;internal,可以向外發(fā)送請求/加載網(wǎng)頁;none,無法進行任何網(wǎng)絡(luò)相關(guān)動作(業(yè)務(wù)正常功能可能無法使用)

修復(fù)方案:對于不信任flash源,allowScriptAccess設(shè)置為never,allowNetworking設(shè)置為none(業(yè)務(wù)需要可以放寬為internal)。

4.4 embed標簽配置不當(dāng)漏洞

名稱:embed標簽配置不當(dāng)漏洞

描述:網(wǎng)頁會通過embed標簽引入媒體文件(如rm、avi等視頻音頻),這些媒體文件中如有腳本指令(彈窗/跳轉(zhuǎn)),如果沒有限制就會出現(xiàn)安全問題。

檢測方法:檢查embed標簽中是否有invokes標簽。

修復(fù)方案:添加屬性invokes值為-1。

4.5 并發(fā)漏洞

名稱:并發(fā)漏洞

描述:攻擊者通過并發(fā)http/tcp請求而達到次獲獎、多次收獲、多次獲贈等非正常邏輯所能觸發(fā)的效果。
下面以簡化的例子說明在交易的Web應(yīng)用程序中潛在的并行問題,并涉及聯(lián)合儲蓄賬戶中的兩個用戶(線程)都登錄到同一賬戶試圖轉(zhuǎn)賬的情況:
賬戶A有100存款,賬戶B有100存款。用戶1和用戶2都希望從賬戶A轉(zhuǎn)10分到賬戶B.
如果是正確的交易的結(jié)果應(yīng)該是:賬戶A 80分,賬戶B 120分。
然而由于并發(fā)性的問題,可以得到下面的結(jié)果:
用戶1檢查賬戶A ( = 100 分)
用戶2檢查賬戶A ( = 100 分)
用戶2需要從賬戶A 拿取10 分( = 90 分) ,并把它放在賬戶B ( = 110 分)
用戶1需要從賬戶A 拿取10分(仍然認為含有100 個分)( = 90 分) ,并把它放到B( = 120 分)
結(jié)果:賬戶A 90 分,賬戶B 120 分。

檢測方法:發(fā)送并發(fā)http/tcp請求,查看并發(fā)前后CGI 功能是否正常。例如:并發(fā)前先統(tǒng)計好數(shù)據(jù),并發(fā)后再統(tǒng)計數(shù)據(jù),檢查2次數(shù)據(jù)是否合理。

修復(fù)方案:對數(shù)據(jù)庫操作加鎖。

4.6 Cookie安全性漏洞

名稱:Cookie安全性漏洞

描述:cookie的屬性設(shè)置不當(dāng)可能會造成其他SNS游戲的運行出錯等安全隱患。

檢測方法:抓取數(shù)據(jù)包查看cookie的domain屬性設(shè)定是否合理。

修復(fù)方案:對cookie字段的domain屬性做嚴格的設(shè)定,openkey以及openid的domain只能設(shè)置到子域,禁止設(shè)置到父域qzoneapp.com。如下圖所示:

4.7 Frame-proxy攻擊漏洞

名稱:Frame-proxy攻擊漏洞

描述:在一些老版本瀏覽器(比如IE6)下,F(xiàn)rame-proxy攻擊可以把非常駐XSS漏洞以常駐型的方式做攻擊。

修復(fù)方案:qzoneapp.com域名下的應(yīng)用不能再通過iframe嵌入qq.com域名下頁面。

原理如下圖所示,假設(shè)域名xiaoyou.qq.com底下沒有任何xss漏洞,然后xiaoyou.qq.com通過iframe嵌入了一個xxx.qzoneapp.com域名。

假設(shè)qq.com的某個子域vul.qq.com存在一個非常駐的xss漏洞,那么當(dāng)xxx.qzoneapp.com通過iframe嵌入vul.qq.com時,訪問xiaoyou.qq.com域名的用戶將受到常駐型XSS漏洞的攻擊。