本週主要學習教材第十一、12章,分別從Web技術的服務端和瀏覽器端來分析Web安全攻防的技術,以及最爲基礎和重要的攻擊技術與防範措施。mysql
Web應用的體系結構如圖所示,由瀏覽器做爲「瘦」客戶端主要完成數據顯示與展現內容的渲染功能;由功能強大的「胖」服務器負責完成主要業務的計算處理;二者之間經過因特網或內聯網上HTTP/HTTPS應用層協議的請求與應答進行通訊。「胖」服務器由Web服務器軟件、Web應用程序及後端數據庫構成,並經過經典的三層架構,即表示層、業務邏輯層和數據層,來進行組織與構建。
web
瀏覽器
標準的Web客戶端就是咱們所熟知的瀏覽器,如IE、Firefox、Chrome等,它們都使用HTTP/HTTPS協議、HTML語言和Web服務器進行交互,獲取Web服務器上的信息和應用服務。隨着JavaScript、Flash、RIA、Ajax等技術的發展,瀏覽器再也不僅僅限於傳統的網頁顯示渲染,具有更多的交互與執行功能。sql
Web服務器
Web服務器軟件一般被簡單地描述爲HTTP守護程序,接收Web客戶端對資源的請求,在這些請求上執行一些基本的解析處理以肯定資源的存在,,而後將它傳送給Web應用程序來執行,等Web應用程序執行完邏輯並返回響應時,Web服務器再將這個響應返回給Web客戶端,在瀏覽器上進行本地執行、渲染和展現。Web服務器所應用的技術有:ASP、ASP.NET、ISAPI服務擴展、COM等,支持語言有:PHP、Python、Perl等。shell
Web應用程序
現代Web應用的核心是處於服務器端業務邏輯層的Web應用程序。Web應用程序的多層體系結構擴展了本來簡單的結構,並把它變成了一個動態引擎,與用戶進行實時交互。其中最廣泛應用的就是3層體系結構,由表示層、業務邏輯層和數據層組成。表示層的功能是接受Web客戶端輸入並顯示結果,一般由HTML的顯示、輸入表單等標籤所構成;業務邏輯層從表示層接收輸入並在其上完成某些工做,並可能須要數據層的協做,而後將結果送回表示層,業務邏輯層是Web應用程序的核心;最後,數據層以數據庫或本地文件形式,提供非易失性的信息存儲,這些信息能夠被邏輯層請求或更新。數據庫
數據庫
數據庫是Web應用存儲數據的地方,也做爲Web應用程序多級結構中的最後一層。業務邏輯層經過一系列的數據鏈接器鏈接至後臺數據庫關係系統,對數據庫進行查詢、操做和更新。經常使用數據鏈接器包括ODBC、OLEDB、JDBC等。windows
Web應用安全威脅
後端
Web應用的信息收集
一、 手工審查Web應用程序結構與源代碼。收集目標Web應用程序有以下各類不一樣類型信息:靜態和動態生成的頁面、目錄結構、輔助性文件、輸入表單、查詢參數字符串。
二、 自動下載與鏡像Web站點頁面。
三、 使用Google Hacking技術審查與探測Web應用程序。SiteDigger是能自動進行Google Hacking搜索的免費軟件。
四、 Web應用程序安全評估與漏洞探測。Web應用安全輔助分析工具包括以下三種重要類型:瀏覽器插件、免費工具集、商業Web應用安全評估系統和漏洞掃描器。瀏覽器
攻擊Web服務器軟件
Web服務器平臺中的安全漏洞:數據驅動的遠程代碼執行安全漏洞、服務器功能擴展模塊漏洞、樣本文件安全漏洞、源代碼泄漏、資源解析攻擊。安全
攻擊web程序
在2004年發佈的《WASC Web安全威脅分類v1.0》將Web應用程序安全威脅從攻擊技術角度分爲以下6類:針對認證機制的攻擊、受權機制的攻擊、客戶端攻擊、命令執行攻擊、信息暴露、邏輯攻擊。服務器
攻擊Web數據內容
針對敏感數據內容的攻擊威脅,具體包括:安全敏感數據泄漏、網站內容遭受篡改以及不良信息內容上傳。
Web應用安全防範措施
一、 Web站點網絡傳輸安全設防措施:使用HTTPS來保障Web站點傳輸時的保密性、完整性與身份真實性;經過加密的鏈接通道來管理Web站點;對關鍵的Web服務器,設置靜態綁定MAC-IP映射。
二、 Web站點操做系統及服務安全設防措施:對Web站點的操做系統與服務器軟件進行及時的補丁更新、Web站點服務器的操做系統及各類開放服務進行遠程安全漏洞掃描、採用提高系統與服務安全性的通常性設防措施。
三、 Web應用程序安全設防措施
四、 Web站點數據安全設防措施:提升網站內容維護人員的數據安全意識、對維護網站的數據安全實施平常監測和防禦。
SQL注入是Web應用程序數據層存在的輸入驗證不完善型安全漏洞實施的一類代碼注入攻擊技術。
SQL注入攻擊原理是向Web應用程序提供的用戶輸入接口輸入一段精心構造的SQL查詢命令,攻擊和利用不完善的輸入驗證機制,使得注入代碼得以執行完成非預期的攻擊操做行爲。
SQL注入攻擊步驟:發現SQL注入點、判斷後臺數據庫類型、後臺數據庫中管理員用戶口令字猜解、上傳ASP後門、獲得默認用戶權限、利用數據庫擴展存儲過程執行shell命令。
SQL注入攻擊工具:wposion、wieliekoek.pl、SPItoolkit、HDSI等。
防範措施:類型安全的參數編碼機制、外部用戶輸入必須進行完備的安全檢查、將動態SQL語句替換爲存儲過程,預編譯SQL或ADO命令對象、增強SQL數據庫服務器的配置和連接。
XSS攻擊技術原理:與代碼注入相似,XSS攻擊的根源一樣是Web應用程序對用戶輸入內容的安全驗證與過濾不夠完善。
XSS攻擊類型:持久型、非持久型。
測試和利用XSS漏洞步驟:測試XSS漏洞、顯示用戶會話cookie、竊取用戶會話cookie、利用cookie信息假冒其餘用戶發表和修改帖子、編寫實現XSS蠕蟲。
XSS攻擊防範措施:服務器端:輸入驗證、輸出淨化、消除危險的輸入點;客戶端:提高瀏覽器的安全設置。
web瀏覽的安全問題和威脅
一、 瀏覽器軟件安全困境三要素:複雜性、可擴展性、連通性。
二、 瀏覽安全威脅位置:網絡協議、瀏覽端系統平臺、瀏覽器軟件以及插件程序的滲透攻擊威脅、社會工程學。
網頁木馬的核心:瀏覽器滲透攻擊。
網頁掛馬機制:內嵌HTML標籤、惡意Script腳本、內嵌對象連接、ARP欺騙掛馬。
網頁木馬的檢測和分析技術:基於特徵碼匹配的傳統檢測方法、基於統計與機器學習的靜態分析方法、基於動態行爲結果斷定的檢測方法、基於模擬瀏覽器環境的動態分析檢測方法、網頁木馬檢測分析技術綜合對比。
BBQSql
BBQSQL是一個Python編寫的盲注工具,當檢測可疑的注入漏洞時會頗有用。同時BBQSQL是一個半自動工具,容許客戶自定義參數。
DBPwAudit
數據庫用戶名密碼枚舉工具
使用參考:
破解SQLServer數據庫 #./dbpwaudit –s IP –d master(數據庫名) -D mssql(數據庫類型) -U username(字典) -P password(字典)
破解MySql數據庫 #./dbpwaudit.sh –s IP –d mysql(數據庫名稱) -D MySQL(數據庫類型) -U username(字典) -P password(字典)
HexorBase
圖形化的密碼破解與鏈接工具(數據庫),開源
Jsql Injection
JSQL是一款輕量級安全測試工具,能夠檢測SQL注入漏洞。Java寫的工具,它跨平臺(Windows,Linux,Mac OS X,Sloaris)、開源且免費。
MDBTools
具體環境具體使用。
Oracle Scanner
Oscanner是一個用Java開發的Oracle評估工具。它是基於插件的結構,當前有兩個插件能夠作:Sid列舉、口令測試、列舉Oracle版本、列舉帳號角色、列舉帳號特權、列舉帳號哈希、列舉審計信息、列舉口令策略、列舉數據庫連接。
SIDGusser
針對Oracle的SID進行暴力枚舉的工具。SID爲Oracle實例名,Oracle鏈接字符串,經過實例名+用戶+密碼鏈接。
SqlDICT
用戶名密碼枚舉工具,Windows下使用,經過Wine模擬運行
tnscmd10g
向Oracle數據庫注入命令,不經常使用
Sqlsus
Sqlsus是一個開放源代碼的MySQL注入和接管工具,sqlsus使用perl編寫,基於命令行界面。
生成配置文件:sqlsus -g test.conf
Sqlninja
Sqlninjaj是一款專門針對SQL Sever的sql注入工具,側重於得到一個shell。
Sqlmap
開源的滲透測試工具
SQLMAP主要用於自動化地偵測和實施SQL注入攻擊以及滲透數據庫服務器。其配有強大的偵測引擎,適用於高級滲透測試用戶,不只能夠得到不一樣數據庫的指紋信息,還能夠從數據庫中提取數據,此外還能處理潛在的文件系統以及經過帶外數據鏈接執行系統命令等。
Web應用代理用於分析數據包、修改數據包重放、暴力攻擊。
Burp Suite
Burp Suite是用於攻擊web應用程序的集成平臺。Burp Suite代理,經過默認端口8080上運行,使用這個代理能夠截獲並修改從客戶端到web應用程序的數據包。
OwaspZAP
OWASP Zed Attack Proxy Project攻擊代理,是一款查找網頁應用程序漏洞的綜合類滲透測試工具。它包含了攔截代理、自動處理、被動處理、暴力破解、端口掃描以及蜘蛛搜索等功能。OWASP ZAP爲會話類調試工具,調試功能對網站不會發起大量請求,對服務器影響較小。
Paros
對Web應用程序的漏洞進行評估的代理程序,一個基於JAVA的Web代理程序。
Proxystrike
與Paros相似
Vega代理功能
Vega是一個開放源代碼的web應用程序安全測試平臺,Vega可以幫助你驗證SQL注入、跨站腳本、敏感信息泄露和其餘一些安全漏洞。Vega使用Java編寫,有GUI,能夠在Linux、OS X和windows下運行。Vega相似於Paros Proxy,Fiddler,Skipfish和ZAproxy。
Webscarab
Webscarab一款代理軟件,包括HTTP代理,網絡爬行、網絡蜘蛛,會話ID分析,自動腳本接口,模糊測試工具,WEB格式的編碼/解碼,WEB服務描述語言和SOAP解析器等功能模塊。WebScarab基於GNU協議,使用Java編寫,是WebGoat中所使用的工具之一。
配置端口
監聽、爬蟲與掃描
Fuzz工具用於漏洞挖掘過程當中的模糊測試。
Bed.pl
-Fuzz_ipv6
THC出品的針對IPV6協議的模糊測試工具
Ohrwurm
ohrwurm是一個很迷你RTP fuzz工具
Powerfuzzer
Powerfuzzer是一個有圖形化界面的fuzz工具,做爲一個web請求的fuzz工具。
Wfuzz
針對WEB應用的模糊測試工具,能夠進行web應用暴力猜解,也支持對網站目錄、登陸信息、應用資源文件等的暴力猜解,還能夠進行get及post參數的猜解,sql注入,xss漏洞的測試等。
XSSer
主要是對一個頁面或一個點進行XSS測試,判斷是否有XSS漏洞。
雖然學習了許多知識點,可是沒有在實際場景中應用,看完以後記憶也不深入,應該加深對計算機網絡等知識的學習,有了基礎才能更好地理解本門課程,這是往後本身須要改進的地方。
一、學習教材第十一、12章
二、學習視頻16-20,部分實踐