第1節 教材學習內容總結
本週學習了教材第11、十二章的內容。php
1.Web應用程序安全攻防
1.1 web應用體系結構及其安全威脅
- web應用體系結構
「瘦」客戶端:瀏覽器,完成數據顯示與展現內容的渲染功能;html
「胖」服務器:web服務器軟件、web應用程序、後端數據庫。mysql
經過經典三層架構:表示層、業務邏輯層和數據層來組織和構建。linux
傳輸協議HTTP/HTTPS:web
1)超文本傳輸協議HTTP無狀態、ASCII碼明文傳輸、運行於衆所周知的TCP80端口。特色:簡單、流行、易受攻擊。 2)加密傳輸的HTTPS協議,使用ssl/tls隧道技術,採用多種認證協議實現對用戶身份的人認證與控制。
web應用安全威脅sql
1)針對瀏覽器和終端用戶的web瀏覽安全威脅:以瀏覽器滲透攻擊爲核心的網頁木馬、網站釣魚。 2)針對傳輸網絡的網絡協議安全威脅:針對HTTP明文傳輸的敏感信息監聽、假冒身份攻擊、拒絕服務攻擊等。 3)系統層安全威脅:遠程滲透攻擊和本地滲透攻擊溫威脅。 4)web服務器軟件安全威脅:利用漏洞實施滲透攻擊、獲取敏感信息。 5)web數據安全威脅:竊取、篡改、輸入不良信息。1.2 Web應用程序安全攻防技術概述
信息收集內容包括:shell
服務器域名 ip地址和虛擬ip地址 web服務器端口與其餘開放服務 web站點類型和版本 web應用程序類型和版本 web服務器和web應用程序中存在的安全漏洞信息方式包括:數據庫
手工審查web應用程序結構與源代碼 自動下載與鏡像web站點頁面:lynx、wget、teleportpro、offline explorer等web站點鏡像軟件。 使用google hacking技術審查與探測web應用程序 web應用程序安全評估與漏洞探測:瀏覽器插件、免費工具集、商業web應用安全評估系統和漏洞掃描器。Web服務器平臺安全漏洞:apache
數據驅動的遠程代碼執行安全漏洞 服務器功能拓展模塊漏洞 樣本文件安全漏洞 源代碼泄露 資源解析攻擊Web應用程序安全威脅從攻擊者技術角度分爲以下六類:windows
針對認證機制攻擊 受權機制攻擊 客戶端攻擊 命令執行攻擊 信息暴露 邏輯攻擊最流行的的兩類Web應用程序安全漏洞及攻擊技術:SQL注入和XSS跨站腳本。
攻擊Web數據內容:安全敏感數據泄露、網站內容遭到篡改以及不良信息內容上傳威脅。
Web應用安全防範措施:
1)web站點網絡傳輸安全防範措施
使用HTTPS 使用加密鏈接通道、對關鍵Web服務器設置靜態綁定MAC-IP映射。2)Web站點操做系統及服務安全設防措施
及時的補丁更新 進行遠程安全漏洞掃描 關閉不使用的服務 設置強口令字 部署防火牆 數據備份3)Web應用程序安全設防措施
使用靜態HTML 使用具備良好安全聲譽及穩定技術支持力量的Web應用軟件包 除非必要才使用自主或者外包Web應用程序 使用Web服務器軟件提供的日誌功能。4)Web站點數據安全設防措施
提升維護人員數據安全意識 對維護網站數據安全實施平常監測和防禦1.3 SQL注入
本節講了什麼是SQL注入、種類以及原理(課本舉了兩個例子進行說明):
利用web應用程序的輸入驗證不完善漏洞,使得web應用程序執行由攻擊者所注入的惡意指令和代碼,形成敏感信息泄露、權限提高或對系統的未受權訪問等危害後果。
SQL注入攻擊步驟:
發現SQL注入點 判斷後臺數據庫類型 後臺數據庫中管理員用戶口令字猜解 上傳ASP後門,獲得默認帳戶權限 本地權限提高 利用數據庫擴展存儲過程執行Shell命令SQL注入攻擊工具:
Wposion 能在動態web文檔中找出SQL注入漏洞 wieliekoek.pl 以網站鏡像工具生成的輸入爲輸出,對錶單頁面注入字符串修改 SPIKE Proxy 對待注入的字符串進行定製 SPI Toolkit工具包本節還舉了兩個攻擊示例。
SQL注入攻擊防範:
使用類型安全的參數編碼機制 完備檢查來自外部的用戶輸入 將動態SQL語句替換爲存儲過程、預編譯SQL或ADO命令對象 增強SQL數據庫服務器的配置與鏈接1.4 XSS跨站腳本攻擊
與代碼注入攻擊不一樣的是,XSS跨站腳本攻擊的最終目標不是提供服務的web應用程序,而是使用web應用程序的用戶。
- XSS攻擊技術原理
是Web應用程序對用戶數輸入內容的安全驗證與過濾不完善。
- 攻擊方式
繞過客戶端安全策略訪問敏感信息,竊取或修改會話Cookie、進行客戶端滲透攻擊獲取訪問權。
- XSS攻擊類型
持久性XSS漏洞和非持久性XSS漏洞,利用這兩類漏洞的攻擊也稱爲持久性XSS攻擊和非持久性XSS攻擊。
攻擊實例:測試XSS漏洞、顯示用戶的會話cookie、竊取用戶的會話cookie、利用cookie信息假冒其餘用戶發表與修改帖子、編寫實現XSS蠕蟲。
- XSS攻擊防範措施
服務器端:輸入驗證、輸出淨化、消除危險的輸入點。
客戶端:提高瀏覽器的安全設置,如關閉cookie或者設置cookie只讀等,也能夠採用非主流的安全瀏覽器。
2.Web瀏覽器安全攻防
2.1 web瀏覽器安全威脅
Web瀏覽器軟件安全困境三要素:複雜性、可擴展性、連通性。
Web安全威脅位置
傳輸網絡的網絡協議安全威脅 Web瀏覽端系統平臺的安全威脅 Web瀏覽器軟件及插件程序的滲透攻擊威脅 互聯網用戶社會工程學攻擊威脅2.2 Web瀏覽端滲透攻擊威脅——網頁木馬
- 本質核心:利用腳本語言實現對web瀏覽端軟件安全漏洞的滲透攻擊,從而向客戶端主機中植入惡意程序。
防範:提高操做系統與瀏覽端平臺軟件的安全性。
2.3 網絡釣魚(phishing)
網絡釣魚是社會工程學在互聯網中普遍實施的一種典型攻擊方式。
原理:經過大量發送聲稱來自於銀行或其餘知名機構的欺騙性垃圾郵件,意圖引誘收信人給出我的敏感信息。
廣泛技術流程:
攻擊者掃描網段,尋找存有漏洞的服務器; 服務器被攻陷,並被安裝一個rootkit或口令保護的後門工具; 攻擊者從加密的後門工具得到對服務器的訪問權,並下載已經構建完畢的釣魚網站內容,進行一些網站搭建配置與測試工做,使得釣魚網站上線運行; 攻擊者下載羣發電子郵件工具,並大規模散發垃圾郵件; 網頁瀏覽的流量開始到達釣魚網站,受害者訪問並給出我的敏感信息,攻擊者經過後臺腳本收集這些信息。防範:加強安全意識、提升警戒性。
第2節 教材學習中的問題和解決過程
1.實踐:SEED SQL注入
- 運行 Apache Server:鏡像已經安裝,只需運行命令sudo service apache2 start
- phpBB2 web 應用:鏡像已經安裝,經過 http://www.sqllabmysqlphpbb.com 訪問。
- 關閉對抗措施
PHP 提供了自動對抗 SQL 注入的機制,被稱爲 magic quote,咱們須要關閉它。
找到/etc/php5/apache2/php.ini 找到 magic_quotes_gpc = On 這一行改成 magic_quotes_gpc = Off 重啓 Apache: 」sudo service apache2 restart」
2.實踐:SEED XSS攻擊
- 測試漏洞
登陸到論壇後發佈一個帖子,帖子中包含如下內容:<script>alert(/xss/);</script>
- 在消息窗口中顯示會話Cookie
第3節 課堂測試
以SEED爲攻擊機,以Linux Metasploitable/Windows Metasploitable作靶機完成TCP/IP協議攻擊。任選兩個攻擊:ARP緩存欺騙攻擊,SYN Flood攻擊。
攻擊一:ARP緩存欺騙攻擊
攻擊二:SYN Flood攻擊
第4節 kali視頻(16-20)學習
16.漏洞分析之數據庫評估(一)
- BBQSql
BBQSql是一個Python編寫的盲注工具(blind SQL in jection framework),當檢測可疑的注入漏洞時會頗有用。同時BBQSql是一個半自動工具,容許客戶自定義參數。
- DBPwAudit(數據庫用戶名密碼枚舉工具)
使用參考:
破解SQLServer數據庫#./dbpwaudit -s IP -d master(數據庫名) -D mssql(數據庫類型) -U username(字典) -P password(字典)破解MySql數據庫
#./dbpwaudit -s IP -d mysql(數據庫名稱) -D MySQL(數據庫類型) -U username(字典) -P password(字典)
- HexorBase
圖形化的密碼破解與鏈接工具,開源。
- jsql
jSQL是一款輕量級安全測試工具,能夠檢測SQL注入漏洞。它跨平臺(windows,linux,Mac OS X,Solaris)、開源且免費。將存在注入漏洞的URL貼進來便可進行相應的漏洞利用。
- MDBTools
包括MDB-Export(Export data in an MDB database table to CVS format),以及MDB-Dump,mdb-prasecvs,mdb-sql,mdb-table等子工具,具體環境具體使用。
- Oracle Scanner
Oscanner是一個用Java開發的oracle評估工具。它是基於插件的結構,當前由兩個插件能夠實現的功能有:
Sid列舉 口令測試 列舉Oracle版本 列舉帳號角色 列舉帳號特權 列舉帳號哈希 列舉審計信息 列舉口令策略 列舉數據庫連接
- SIDGuesser
是針對Oracle的SID進行暴力枚舉的工具。SID爲Oracle實例名,Oracle鏈接字符串,經過實例名+用戶+密碼鏈接。
- SqlDICT:用戶名密碼枚舉工具,經過Wine運行
17.漏洞分析之數據庫評估(二)
- tnscmd10g
容許咱們向Oracle數據庫中注入命令
- Sqlsus
sqlsus是一個開放源代碼的MySQL注入和接管工具,sqlsus使用perl編寫,基於命令行界面。sqlsus能夠獲取數據庫結構,注入你本身的SQL語句,從服務器下載文件,爬行web站點可寫目錄,上傳和控制後門,克隆數據庫等等。最好用的兩點就是注射獲取數據速度很是快,另外一個最大的特色就是自動搜索可寫目錄。生成配置文件 編輯配置文件 修改 our $url_start = "":寫入地址 啓動而且測試`sqlsus test.conf` 獲取數據庫數據 查看所有數據庫名字 sqlsus > get database
- Sqlninja
在sql注入方面一直尊sqlmap爲神奇,但sqlninja也有本身的特色。Sqlninja是一款perl編寫的一個專門針對Microsoft SQL.Server的sql注入工具,它側重於得到一個shell。
sqlninja的優勢以下:
1)一個專門針對Microsoft SQL.Server的sql注入工具 2)可找到遠程SQL服務器的標誌和特徵(版本、用戶執行的查詢、用戶特權、xp-cmdshell的可用性、身份驗證模式等) 3)「sa」口令的強力攻擊 4)若是找到口令後,就將特權提高爲「sa」 5)若是原始的xp——cmdshell被禁用後,就建立一個定製的xp_shell 6)使用純粹的ASCII GET/POST請求來上載netcat.exe程序(以及其餘任何可執行的程序),所以並不須要FTP鏈接。 7)爲了找到目標網絡的防火牆所容許的端口,能夠實施針對目標SQL服務器的TCP/UDP端口掃描。 8)逃避技術,這是爲了使注入式代碼「模糊」不清,而且混淆/繞過基於簽名的IPS和應用層防火牆。 9)採用「盲目執行」攻擊模式,在其餘模式失效時,能夠用於發佈命令並執行診斷。 10)在sqlninja生成的SQL代碼上,執行的是自動化的URL編碼,這使得用戶能夠更精細地控制漏洞利用的字符串。 11)若是獲得權限爲sa,能夠結合msf進一步對目標主機進行滲透。sqlninja的參數不多
-m 指定攻擊模式,有如下幾個
1)t/test 測試鏈接是不是注入點 2)f/fingerprint 指紋識別,判斷用戶,數據庫,xp_cmdshell是否能用等等 3)b/bruteforce 暴力破解sa密碼,能夠-w指定字典,也能夠不適用字典,這樣sqlninja就會本身窮舉 4)e/escalation 提權用,必須用-p指定sa的password,成功就會把當前數據庫用戶加入到sa組裏面 5)x/resurrectxp 嘗試恢復xp_cmdshell 6)u/upload 使用get和post上傳二進制文件,-p能夠指定sa的password,-g表示只生成上傳文件,但並不上傳 7)s/dirshell 獲取目標主機的shell 8)k/backscan 查看開放的目標端口 9)r/revshell 反彈會一個shell,和dirshell相反 10)d/dnstunnel 指定使用dns做爲傳輸通道,可用-p能夠指定sa的password,爲何有這個模式,由於可能服務器鏈接icmp都禁止。一樣,想要使用這個模式得先用upload模式上傳dnstun.exe 11)i/icmpshell 當dirshell和revshell都失敗的狀況下,能夠用這個模式把shell藏在icmp裏,可是先要上傳icmpsh.exe 12)-f<file> 指定配置文件,sqlninja沒有相似sqlmap的「-u」參數,注入網址是寫在配置文件裏的,默認是sqlninja.conf
- Sqlmap
Sqlmap是一個開源的滲透測試工具,它主要用於自動化地偵測和實施SQL注入攻擊以及滲透數據庫服務器。Sqlmap配有強大的偵測引擎,適用於高級滲透測試用戶,不只能夠得到不一樣數據庫的指紋信息,哈能夠從數據庫中提取數據,此外還可以處理潛在的文件系統以及經過帶外數據鏈接執行系統命令等。
18.漏洞分析之WEB應用代理
經過web應用代理工具分析數據包,或修改數據包重放、暴力攻擊等在WEB安全測試中常常用到。
web應用代理工具備:burpsuite、owasp-zap、paros、vega、webscarab、proxystrike
- Burp Suite
Burp Suite是用於攻擊web應用程序的集成平臺。Burp Suite帶有一個代理,經過默認端口8080運行,使用這個代理,能夠截獲並修改從客戶端到web應用程序的數據包。
能夠對包進行一系列的修改和利用,burpsuite還有許多功能模塊,使用參見 2017-2018-2 20179204《網絡攻防實踐》安全工具研究。
- OwaspZAP
OWASP Zed Attack Proxy Project攻擊代理(簡稱ZAP),是一款查找網頁應用程序漏洞的綜合類滲透測試工具。它包含了「攔截代理、自動處理、被動處理、暴力破解、端口掃描以及蜘蛛搜索」等功能。OwaspZAP爲會話類調試工具,調試功能對網站不會發起大量請求,對服務器影響較小。
視頻當中沒有過多介紹,詳細使用能夠參考簡書的這篇文章 OWASP_ZAP。
OWASP_ZAP 默認監聽的是 8080 端口,而且在啓動 ZAP 的時候便會自動開始監聽。如此,只需設置瀏覽器代理,ZAP 便會自動爬取全部數據。
ZAP 最簡單的使用方式即是在首頁直接輸入目標 Target 而後點擊「攻擊」便會開始主動掃描了。
- Paros
paros proxy,這是一個對web應用程序的漏洞進行評估的代理程序,即一個基於Java的web代理程序,能夠評估web應用程序的漏洞。它支持動態的編輯/查看HTTP/HTTPS,從而改變cookies和表單字段等項目。
它包括一個web通訊記錄程序,web圈套程序(spider),hash計算機,還有一個能夠測試常見的web應用程序攻擊的掃描器。該工具檢查漏洞形式包括:SQL注入、跨站點腳本攻擊、目錄遍歷等。
- proxystrike
- Vega代理功能
Vega是一個開放源代碼的web應用程序安全測試平臺,Vega可以幫助你驗證SQL注入、跨站腳本(XSS)、敏感信息泄露和其餘一些安全漏洞。Vega使用Java編寫,有GUI。
- Webscarab
Webscarab一款代理軟件,包括HTTP代理,網絡爬行、網絡蜘蛛、會話ID分析,自動腳本接口,模糊測試工具,WEB格式的編碼/解碼,WEB服務描述語言和SOAP解析器等功能模塊。Webscarab基於GNU協議,使用Java編寫,是WebGoat中所使用的工具之一。
19.漏洞分析之burpsuite
BurpSuite是一個web應用程序集成攻擊平臺,它包含了一系列burp工具,這些工具之間有大量接口能夠互相通訊,這樣設計的目的是爲了促進和提升整個攻擊的效率。平臺中全部工具共享同一robust框架,以便贊成處理HTTP請求,持久性,認證,上游代理,日誌記錄,報警和可擴展性。
BurpSuite容許攻擊者結合手工和自動技術去枚舉、分析、攻擊web應用程序。這些不一樣的burp工具經過協同工做,有效的分享信息,支持以某種工具中的信息爲基礎供另外一種工具使用的方式發起攻擊。
Porxy提供一個直觀、友好的用戶界面,他的代理服務器包含很是詳細的攔截規則,並能準確分析HTTP消息的結構與內容。
Spider爬行蜘蛛工具,能夠用來抓取目標網站,以現實網站的內容,基本結構和其餘功能。
步驟:
1)配置端口 2)爬蟲與掃描 3)測試暴力破解表單帳戶密碼實踐詳見 2017-2018-2 20179204《網絡攻防實踐》安全工具研究。
20.漏洞分析之fuzz工具
Fuzz是模糊測試工具。
- Bed.pl
Bed(Bruteforce Exploit Detector)是一個純文本協議的Fuzz工具,可以哦檢查常見的漏洞,如緩衝區溢出,格式串漏洞,總體溢出等。
- Fuzz_ipv6
THC出品的針對IPV6協議的模糊測試工具。
- Ohrwurm
- PowerFuzzer
- Wfuzz
針對web應用的模糊測試工具,能夠進行web應用暴力猜解,也支持對網站目錄、登陸信息、應用資源文件等的暴力猜解,還能夠進行get及post參數的猜解,sql注入,xss漏洞的測試等,該工具全部功能都依賴於字典。
- SFuzz
- XSSer
針對XSS漏洞的挖掘
xsser --gtk 圖形化界面
對一個頁面或點進行xss測試,判斷是否有XSS的漏洞。