24.《黑客攻防技術(shù)寶典 Web實(shí)戰(zhàn)篇》筆記

一、Web應(yīng)用程序安全與風(fēng)險
不完善的身份難措施(62%)、不完善的訪問控制措施(71%)、SQL注入(32%)、跨站點(diǎn)腳本(94%)、信息泄露(78%)、跨站點(diǎn)請求偽造(92%)
小結(jié):多數(shù)應(yīng)用程序都面臨一個核心安全問題,即用戶可提交任意輸入。用戶與應(yīng)用程序交互的每一個方面都可能是惡意的,而且在未能證明其并無惡意之間應(yīng)該被認(rèn)定為是惡意的。如果這個問題處理不當(dāng),應(yīng)用程序就有可能受到各種形式的攻擊。

二、核心防御機(jī)制
1.處理用戶訪問:身份驗(yàn)證、會話管理、訪問控制
2.處理用戶輸入:輸入的多樣性、輸入處理方法(拒絕已知的不良輸入、接受已知的正常輸入、凈化、安全數(shù)據(jù)處理、語法檢查)、邊界確認(rèn)(每一個單獨(dú)的組件或功能單元將其輸入當(dāng)做來自潛在惡意來源的輸入對待)、多步確認(rèn)與規(guī)范化
3.處理攻擊者:處理錯誤、維護(hù)審計(jì)日志、向管理員發(fā)出警報(bào)、應(yīng)對攻擊
4.管理應(yīng)用程序
5.小結(jié)
盡管存在巨大差異,但幾乎所有的Web應(yīng)用程序都以運(yùn)營和形式采用相同的核心安全機(jī)制。這些機(jī)制是應(yīng)用程序應(yīng)對惡意用戶所采取的主要防御措施,因而應(yīng)用程序的受攻擊面大部分也由它們構(gòu)成。我們在本書后面介紹的漏洞也主要源于這些核心機(jī)制中存在的缺陷。
在這些機(jī)制中,處理用戶訪問和用戶輸入的機(jī)制是最重要的機(jī)制。當(dāng)針對應(yīng)用程序發(fā)動攻擊時,它們將成為主要攻擊對象。利用這些機(jī)制中存在的缺陷通??梢酝耆テ普麄€應(yīng)用程序,使攻擊者能夠訪問其他用戶的數(shù)據(jù)、執(zhí)行未授權(quán)操作以及注入任意代碼和命令。

三、Web應(yīng)用程序技術(shù)
1.HTTP
HTTP請求、HTTP響應(yīng)、HTTP方法、URL、REST、HTTP消息頭、cookie、狀態(tài)碼、HTTPS、HTTP代理、HTTP身份驗(yàn)證
2.Web功能
服務(wù)端功能(Java平臺、PHP、Ruby On Rails、SQL、XML、Web服務(wù))、客戶端功能(HTML、超鏈接、表單、CSS、JavaScript、VBScript、文檔對象模型、Ajax、JSON、同源策略、HTML5、Web 2.0、瀏覽器擴(kuò)展技術(shù))、狀態(tài)與會話
3.編碼方案
URL編碼、Unicode編碼、HTML編碼、Base64編碼、十六進(jìn)制編碼、遠(yuǎn)程序列化框架

四、解析應(yīng)用程序
1.枚舉內(nèi)容與功能
Web抓取、用戶指定的抓取、發(fā)現(xiàn)隱藏的內(nèi)容、應(yīng)用程序頁面與功能路徑、發(fā)現(xiàn)隱藏的參數(shù)
2.分析應(yīng)用程序
確定用戶輸入入口點(diǎn)、確定服務(wù)端技術(shù)、確定服務(wù)端功能、解析受攻擊面
3.小結(jié)
在幾乎所有的Web應(yīng)用程序攻擊中,在采用手動技巧的同時,適當(dāng)采用受控的自動化技巧是最有效的攻擊手段。幾乎不存在任何完全自動化的工具,能夠?qū)?yīng)用程序進(jìn)行安全、徹底的解析。要解析應(yīng)用程序,滲透測試員需要自己動手并利用相關(guān)經(jīng)驗(yàn)。本章討論的核心技術(shù)包括以下幾類:手動瀏覽和用戶指定的抓取,枚舉應(yīng)用程序的可見內(nèi)容與主要功能;使用蠻力結(jié)合人為干預(yù)和去睡覺發(fā)現(xiàn)盡可能多的隱藏內(nèi)容;對應(yīng)用程序進(jìn)行智能分析,確定其關(guān)鍵功能、行為、安全機(jī)制與技術(shù);評估應(yīng)用程序的受攻擊面,確定最易受到攻擊的功能和行為,對其執(zhí)行更有針對性的探查,以發(fā)現(xiàn)可供利用的漏洞。

五、避開客戶端控件
1.通過客戶端傳送數(shù)據(jù)
隱藏表單字段、HHTP cookie、URL參數(shù)、Referer消息頭、模糊數(shù)據(jù)、ASP.NET ViewState
2.收集用戶數(shù)據(jù):HTML表單
長度限制、基于腳本的確認(rèn)、禁用的元素
3.收集用戶數(shù)據(jù):瀏覽器擴(kuò)展
覺的瀏覽器擴(kuò)展技術(shù)、攻擊瀏覽器擴(kuò)展的方法、攔截瀏覽器擴(kuò)展的流量、反編譯瀏覽器擴(kuò)展、附加調(diào)試器、本地客戶端組件
4.安全處理客戶端數(shù)據(jù)
通過客戶端傳送數(shù)據(jù)、確認(rèn)客戶端生成的數(shù)據(jù)、日志與警報(bào)
5.小結(jié)
如果確定任何通過客戶端傳送的數(shù)據(jù),革確認(rèn)客戶端正在執(zhí)行用戶提交的輸入,應(yīng)該測試服務(wù)器如何應(yīng)對避開那些控件的意外數(shù)據(jù)。許多時候,由于應(yīng)用程序認(rèn)為客戶端執(zhí)行的防御能夠?yàn)槠涮峁┍Wo(hù),因而面臨重大威脅。

六、攻擊驗(yàn)證機(jī)制
1.驗(yàn)證技術(shù)
2.驗(yàn)證機(jī)制設(shè)計(jì)缺陷
密碼保密性不強(qiáng)、蠻力攻擊登錄、詳細(xì)的失敗信息、證書傳輸易受攻擊、密碼修改功能、忘記密碼功能、“記住我”功能、用戶偽裝功能、證書確認(rèn)不完善、非唯一性用戶名、可預(yù)測的用戶名、可預(yù)測的初始密碼、證書分配不安全
3.驗(yàn)證機(jī)制執(zhí)行缺陷
故障開放登錄機(jī)制、多階段登錄機(jī)制中的缺陷、不安全的證書存儲
4.保障驗(yàn)證機(jī)制的安全
使用可靠的證書、安全處理證書、正確確認(rèn)證書、防止信息泄露、防止蠻力攻擊、防止濫用密碼修改功能、防止濫用賬戶恢復(fù)功能、日志監(jiān)控與通知
5.小結(jié)
現(xiàn)實(shí)中驗(yàn)證機(jī)制存在著大師的設(shè)計(jì)與執(zhí)行缺陷。使用系統(tǒng)化的方法嘗試各種攻擊途徑,即可對這些缺陷發(fā)起全面有效的攻擊。許多時間,攻擊目標(biāo)顯而易見,如保密性不強(qiáng)的密碼、發(fā)現(xiàn)用戶名的方法和蠻力攻擊漏洞。另一方面,有些缺陷隱藏得很深,需要對復(fù)雜的登錄過程進(jìn)行仔細(xì)的分析才能發(fā)現(xiàn)可供利用以“敲開應(yīng)用程序大門”的細(xì)微邏輯缺陷。
“四處查探”是攻擊驗(yàn)證功能最常用的方法。除主登錄表單外,可能還包括注冊新賬戶、修改密碼、記住密碼、恢復(fù)遺忘的密碼與偽裝其他用戶等功能。以上每一種功能都可能成為潛在缺陷的主要來源,在一項(xiàng)功能中特意避免的問題往往又會在其他功能中重新出現(xiàn)。花費(fèi)一些時間仔細(xì)檢查的所能發(fā)現(xiàn)的每一個受攻擊面,應(yīng)用程序驗(yàn)證機(jī)制的安全性將會得到顯著增強(qiáng)。

七、攻擊會話管理
1.狀態(tài)要求
2.會話令牌生成過程中的薄弱環(huán)節(jié)
令牌有一定的含義、令牌可預(yù)測、加密令牌
3.會話令牌處理中的薄弱環(huán)節(jié)
在網(wǎng)絡(luò)上泄露令牌、在日志中泄露令牌、令牌—會話映射易受攻擊、會話終止易受攻擊、客戶端暴露在令牌劫持風(fēng)險之中、寬泛的cookie范圍
4.保障會話管理的安全
生成強(qiáng)大的令牌、在整個生命周期保障令牌的安全、日志監(jiān)控與警報(bào)
5.小結(jié)
攻擊者在攻擊應(yīng)用程序時,會話管理機(jī)制中存在的諸多漏洞為他們提供了大量的攻擊目標(biāo)。鑒于其在多個請求中確定相同用戶身份過程中所發(fā)揮的重要作用,不完善的會話管理功能通常會成為攻擊者“進(jìn)入應(yīng)用程序王國的鑰匙”。對攻擊者來說,進(jìn)入其他用戶的會話當(dāng)然不錯,但劫持管理員的會話會更好,因?yàn)檫@樣他往往能夠攻破整個應(yīng)用程序。
現(xiàn)實(shí)世界的會話管理功能中往往存在各種各樣的缺陷。當(dāng)應(yīng)用程序采用定制機(jī)制時,其中可能會存在薄弱環(huán)節(jié),并有無數(shù)種攻擊方法可供攻擊者利用。耐心與堅(jiān)持不懈是我們從中汲取到的最重要的教訓(xùn)。許多會話管理機(jī)制初看起來似乎安全可靠,但仔細(xì)分析后卻發(fā)現(xiàn)它們并不合格。解譯應(yīng)用程序如何生成看似隨機(jī)的令牌序列,這個過程既費(fèi)時又費(fèi)力。但由于這樣做通??色@得巨大的回報(bào),因?yàn)橹档脼橹ㄙM(fèi)時間和精力。

八、攻擊訪問控制
1.常見漏洞
完全不受保護(hù)的功能、基于標(biāo)識符的功能、多階段功能、靜態(tài)文件、平臺配置錯誤
2.攻擊訪問控制:使用不同用戶帳戶進(jìn)行測試、測試多階段過程、通過有限訪問權(quán)限進(jìn)行測試、測試“直接訪問方法”、測試對靜態(tài)資源的控制、測試對HTTP方法實(shí)施的限制
3.保障訪問控制的安全

九、攻擊數(shù)據(jù)存儲區(qū)
1.注入解釋語言
2.注入SQL
利用一個基本的漏洞、注入不同的語句類型、查明SQL注入漏洞、“指紋”識別數(shù)據(jù)庫、UNION操作符、提取有用的數(shù)據(jù)、使用UNION提取數(shù)據(jù)、避開過濾、二階SQL注入、高級利用、SQL注入之外—擴(kuò)大數(shù)據(jù)庫攻擊范圍、使用SQL注入工具、SQL語法與錯誤參考、防止SQL注入
3.注入NoSQL
4.注入XPath
破壞應(yīng)用程序邏輯、謹(jǐn)慎XPath注入、盲目XPath注入、查找XPath注入漏洞、防止XPath注入
5.注入LDAP
利用LDAP注入、查找LDAP注入漏洞、防止LDAP注入

十、測試后端組件
1.注入OS命令
通過Perl注入、通過ASP注入、通過動態(tài)執(zhí)行注入、查找OS命令注入漏洞、查找動態(tài)執(zhí)行漏洞、防止OS命令注入、防止腳本注入漏洞
2.操作文件路徑
路徑遍歷漏洞、文件包含漏洞
3.注入XML解釋器
注入XML外部實(shí)體、注入SOAP、查找并利用SOAP注入、防止SOAP注入
4.注入后端HTTP請求
服務(wù)端HTTP重定向、HTTP參數(shù)注入
5.注入email
操縱email飄著、SMTP命令注入、查找SMTP注入漏洞、防止SMTP注入

十一、攻擊應(yīng)用程序邏輯
1.邏輯缺陷的本質(zhì)
2.現(xiàn)實(shí)中的邏輯缺陷
征求提示、欺騙密碼修改功能、直接傳輸、修改保險單、入侵銀行、規(guī)避交易限制、獲得大幅折扣、避開輸入確認(rèn)、利用調(diào)試消息、與登錄機(jī)制競賽
3.避免邏輯缺陷

十二、攻擊其他用戶
1.XSS的分類
反射型XSS漏洞、保存型XSS漏洞、基于DOM的XSS漏洞
2.進(jìn)行中的XSS攻擊
真實(shí)XSS攻擊、XSS攻擊有效載荷、XSS攻擊的傳送機(jī)制
3.查找并利用XSS漏洞
查找并利用反射型XSS漏洞、查找并利用保存型XSSinmi、查找并利用DOM型漏洞
4.防止XSS攻擊
防止反射型與保存型XSS漏洞、防止基于SOM的XSS漏洞

十三、攻擊用戶:其他技巧
1.誘使用戶執(zhí)行操作
請求偽造、UI偽裝
2.跨域捕獲數(shù)據(jù)
通過注入HTML捕獲數(shù)據(jù)、通過注入CSS捕獲數(shù)據(jù)、JS劫持
3.同源策略深入討論
同源策略與瀏覽器擴(kuò)展、同源策略與HTML5、通過代理服務(wù)應(yīng)用程序跨域
4.其他客戶端注入攻擊
HTTP消息頭注入、cookie注入、開放式重定向漏洞、客戶端SQL注入、客戶端HTTP參數(shù)污染
5.本地隱私攻擊:持久性cookie、瀏覽歷史記錄、緩存Web內(nèi)容、自動完成、Flash本地共享對象、IE UserData、HTML5本地存儲機(jī)制、防止本地隱私攻擊
7.攻擊ActiveX控件
查找ActiveX漏洞、防止ActiveX漏洞
8.攻擊瀏覽器
記錄鍵擊、竊取瀏覽器歷史記錄與搜索查詢、枚舉當(dāng)前使用的應(yīng)用程序、端口掃描、攻擊其他網(wǎng)絡(luò)主機(jī)、利用非HTTP服務(wù)、利用瀏覽器漏洞、DNS重新綁定、瀏覽器利用框架、中間人攻擊

十四、定制攻擊自動化
1.應(yīng)用定制自動化攻擊
2.枚舉有效的標(biāo)識符
基本步驟、推測“觸點(diǎn)”、編寫攻擊腳本、JAttack
3.獲取有用的數(shù)據(jù)
4.覺漏洞模糊測試
5.整合全部功能:Burp Intruder
6.實(shí)施自動化的限制
會話處理機(jī)制、CAPTCHA控件

十五、利用信息泄露
1.利用錯誤消息
錯誤消息腳本、棧追蹤、詳盡的調(diào)試消息、服務(wù)器與數(shù)據(jù)庫消息、使用公共令牌、制造詳盡的錯誤消息
2.收集公布的信息
3.使用推論
4.防止信息泄露
使用常規(guī)錯誤沒消息、保護(hù)敏感令牌、盡量減少客戶端信息泄露

十六、攻擊本地編譯型應(yīng)用程序
1.緩沖區(qū)溢出漏洞
棧溢出、堆溢出、“一位偏移”漏洞、查找緩沖區(qū)溢出漏洞
2.整數(shù)漏洞
整數(shù)溢出、符號錯誤、查找整數(shù)漏洞
3.格式化字符串漏洞

十七、攻擊應(yīng)用程序架構(gòu)
1.分層架構(gòu)
攻擊分層架構(gòu)、保護(hù)分層架構(gòu)的安全
2.共享主機(jī)與應(yīng)用程序服務(wù)提供商
虛擬主機(jī)、共享的應(yīng)用程序服務(wù)、攻擊共享環(huán)境、保護(hù)共享環(huán)境安全

十八、攻擊Web服務(wù)器
1.Web服務(wù)器配置缺陷
默認(rèn)證書、默認(rèn)內(nèi)容、目錄列表、WebDAV方法、Web服務(wù)器作為代理服務(wù)器、虛擬主機(jī)配置缺陷、保障Web服務(wù)器配置的安全
2.易受攻擊的服務(wù)器軟件
應(yīng)用程序框架缺陷、內(nèi)存管理漏洞、編碼與規(guī)范化漏洞、查找Web服務(wù)器漏洞、保障Web服務(wù)器軟件的安全
3.Web應(yīng)用程序防火墻

十九、查找源代碼中的漏洞
1.代碼審查方法
“黑盒”測試與“白盒”測試、代碼審查方法
2.常見漏洞簽名
跨站點(diǎn)腳本、SQL注入、路徑遍歷、任意重定向、OS命令注入、后門密碼、本地代碼漏洞、源代碼注釋
3.Java平臺
確定用戶提交的數(shù)據(jù)、會話交互、潛在危險的API、配置Java環(huán)境
4.ASP.NET
確定用戶提交的數(shù)據(jù)、會話交互、潛在危險的API、配置ASP.NET環(huán)境
5.PHP
確定用戶提交的數(shù)據(jù)、會話交互、潛在危險的API、配置PHP環(huán)境
6.Perl
確定用戶提交的數(shù)據(jù)、會話交互、潛在危險的API、配置Perl環(huán)境
7.JS
確定用戶提交的數(shù)據(jù)、會話交互、潛在危險的API、配置JS環(huán)境
8.數(shù)據(jù)庫代碼組件
SQL注入、調(diào)用危險的函數(shù)
9.代碼瀏覽工具

二十、Web應(yīng)用程序黑客工具包
1、Web瀏覽器
IE、Firefox、Chrome
2.集成測試套件
工作原理、測試工作流程、攔截代理服務(wù)器替代工具
3.獨(dú)立漏洞掃描器
掃描器找到的漏洞、rvar器的內(nèi)存限制、掃描器面臨的技術(shù)挑戰(zhàn)、當(dāng)前產(chǎn)品、使用漏洞掃描器
4.其他工具
Wikter/Nike、Firebug、Hycha、定制腳本

二十一、Web應(yīng)用程序滲透測試方法論
1.解析應(yīng)用程序內(nèi)容
搜索可見的內(nèi)容、瀏覽公共資源、發(fā)現(xiàn)隱藏的內(nèi)容、查找默認(rèn)的內(nèi)容、枚舉標(biāo)識符指定的功能、調(diào)試參數(shù)
2.分析應(yīng)用程序
確定功能、確定數(shù)據(jù)進(jìn)入點(diǎn)、確定所使用的技術(shù)、解析受攻擊面
3.測試客戶端控件
通過客戶端傳送數(shù)據(jù)、客戶端輸入控件、測試瀏覽器擴(kuò)展組件
4.測試難機(jī)制
了解難機(jī)制、測試密碼強(qiáng)度、測試用戶名枚舉、測試密碼猜測的適應(yīng)性、測試賬戶恢復(fù)功能、測試“記住我”功能、測試偽裝功能、測試用戶名唯一性、測試證書的可預(yù)測性、檢測不安全的證書傳輸、檢測不安全的證書分配、測試不安全的存儲、測試邏輯缺陷、利用漏洞獲取未授權(quán)訪問
5.測試會話管理機(jī)制
了解會話管理機(jī)制、測試令牌的含義、測試令牌的可預(yù)測性、檢查不安全的令牌傳輸、丁是丁在日志中泄露的令牌、測試令牌—會話映射、測試會話終止、測試會話固定、檢查CSRF、檢查cookie范圍
6.測試訪問控件
了解訪問控制要求、使用多個帳戶測試、使用有限的權(quán)限測試、測試不安全的訪問控制方法
7.測試基于輸入的漏洞
模糊測試所有請求參數(shù)、測試SQL注入、測試XSS和其他響應(yīng)注入、測試OS命令注入、測試路徑遍歷、測試腳本注入、測試文件包含
8.測試特殊功能方面的輸入漏洞
測試SMTP注入、測試本地代碼漏洞、測試SOAP注入、測試LDAP注入、測試XPath注入、測試后端請求注入、測試XXE注入
9.測試邏輯缺陷
確定關(guān)鍵的受攻擊面、測試多階段過程、測試不完整的輸入、測試信任邊界、測試交易邏輯
10.測試共享主機(jī)漏洞
測試共享基礎(chǔ)架構(gòu)之間的隔離、測試使用ASP主機(jī)的應(yīng)用程序之間的隔離
11.測試Web服務(wù)器的漏洞
測試默認(rèn)證書、測試默認(rèn)內(nèi)容、測試危險的HTTP方法、測試代理功能、測試重主機(jī)配置不當(dāng)、測試Web服務(wù)器軟件漏洞、測試Web應(yīng)用程序防火墻
12.其他檢查
測試基于DOM的攻擊、測試本地隱私漏洞、測試脆弱的SSL加密算法、檢查同源策略配置
13.檢查信息泄露

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 2017-12-18-星期一 晴 北京一角 經(jīng)常聽到家長們討論,我的孩子報(bào)了這個班,我的孩子報(bào)了那個班,我要讓...
    學(xué)晶閱讀 263評論 1 1
  • 從一個太長的噩夢里醒來了,聽見真實(shí)世界的雨聲。彷佛清晨,一切都還來得及。
    memoya閱讀 168評論 0 0
  • 2017年1月8號,我坐在肯德基里唾沫橫飛地談著我的發(fā)財(cái)夢,對面兩雙艷羨的眼睛。我無比得意,得意于自己的夢想與口才...
    金環(huán)閱讀 213評論 0 1

友情鏈接更多精彩內(nèi)容