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

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

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

1. 注入漏洞

1.1 SQL注入漏洞

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

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

檢測(cè)方法:通過(guò)修改參數(shù)來(lái)判斷是否存在漏洞。

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

1.2 XSS漏洞

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

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

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

而存在漏洞的頁(yè)面顯示卻是:’a

源碼是:

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

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

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

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

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

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

1.3 命令注入漏洞

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

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

檢測(cè)方法:通過(guò)修改參數(shù)來(lái)判斷是否存在漏洞。

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


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

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

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

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

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

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

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


1.5 跳轉(zhuǎn)漏洞

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

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

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

修復(fù)方案:在控制頁(yè)面轉(zhuǎn)向的地方校驗(yàn)傳入的URL是否為可信域名。
例如以下是一段校驗(yàn)是否是騰訊域名的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注入漏洞

名稱(chēng):XML注入漏洞

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

檢測(cè)方法:通過(guò)修改參數(shù)來(lái)判斷是否存在漏洞。

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

2. 信息泄露漏洞

2.1 PHPInfo()信息泄露漏洞

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

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

檢測(cè)方法:訪(fǎng)問(wèn)http://[ip]/test.php 以及http://[ip]/phpinfo.php看是否成功。

修復(fù)方案:刪除該P(yáng)HP文件。

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

名稱(chēng):測(cè)試頁(yè)面泄露在外網(wǎng)漏洞

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

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

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

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

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


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

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

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

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

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

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


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

名稱(chēng):版本管理工具文件信息泄露漏洞

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

檢測(cè)方法:訪(fǎng)問(wèn)http://[ip]/CVS/Entriesp 以及http://[ip]/.svn/entriesp看是否成功。

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


2.5 HTTP認(rèn)證泄露漏洞

名稱(chēng):HTTP認(rèn)證泄露漏洞

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

修復(fù)方案:限制IP訪(fǎng)問(wèn)該目錄。


2.6 管理后臺(tái)泄露漏洞

名稱(chēng):管理后臺(tái)泄露漏洞

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

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

2.7 泄露員工電子郵箱漏洞以及分機(jī)號(hào)碼

名稱(chēng):泄露員工電子郵箱漏洞以及分機(jī)號(hào)碼

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

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


2.8 錯(cuò)誤詳情泄露漏洞

名稱(chēng):錯(cuò)誤詳情泄露漏洞

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

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

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


3. 請(qǐng)求偽造漏洞

3.1 CSRF漏洞

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

描述:用戶(hù)以當(dāng)前身份瀏覽到flash或者開(kāi)發(fā)者網(wǎng)站時(shí),JS/flash可以迫使用戶(hù)瀏覽器向任意CGI發(fā)起請(qǐng)求,此請(qǐng)求包含用戶(hù)身份標(biāo)識(shí),CGI如無(wú)限制則會(huì)以用戶(hù)身份進(jìn)行操作。

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

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

3.2 JSON-hijackin漏洞

名稱(chēng):JSON-hijackin漏洞

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

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

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

4.1 文件上傳漏洞

名稱(chēng):文件上傳漏洞

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

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

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

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

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

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

<?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標(biāo)簽配置不當(dāng)漏洞

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

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

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

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

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

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

檢測(cè)方法:檢查embed標(biāo)簽中是否有invokes標(biāo)簽。

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

4.5 并發(fā)漏洞

名稱(chēng):并發(fā)漏洞

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

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

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

4.6 Cookie安全性漏洞

名稱(chēng):Cookie安全性漏洞

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

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

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

4.7 Frame-proxy攻擊漏洞

名稱(chēng):Frame-proxy攻擊漏洞

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

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

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

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