第1節 教材學習內容總結
1.Web應用程序安全攻防
web應用體系結構及其安全威脅mysql
web應用體系結構
「瘦」客戶端:瀏覽器,完成數據顯示與展現內容的渲染功能;linux
「胖」服務器:web服務器軟件、web應用程序、後端數據庫。web
經過經典三層架構:表示層、業務邏輯層和數據層來組織和構建。sql
> 傳輸協議HTTP/HTTPS:shell
1)超文本傳輸協議HTTP無狀態、ASCII碼明文傳輸、運行於衆所周知的TCP80端口。特色:簡單、流行、易受攻擊。
2)加密傳輸的HTTPS協議,使用SSL/TLS隧道技術,採用多種認證協議實現對用戶身份的人認證與控制。
> WEB應用安全威脅
1)針對瀏覽器和終端用戶的WEB瀏覽安全威脅:以瀏覽器滲透攻擊爲核心的網頁木馬、網站釣魚。
2)針對傳輸網絡的網絡協議安全威脅:針對HTTP明文傳輸的敏感信息監聽、假冒身份攻擊、拒絕服務攻擊等。
3)系統層安全威脅:遠程滲透攻擊和本地滲透攻擊溫威脅。
4)WEB服務器軟件安全威脅:利用漏洞實施滲透攻擊、獲取敏感信息。
5)WEB數據安全威脅:竊取、篡改、輸入不良信息。
1.2 Web應用程序安全攻防技術概述數據庫
> 信息收集內容包括:windows
服務器域名
ip地址和虛擬ip地址
web服務器端口與其餘開放服務
web站點類型和版本
web應用程序類型和版本
web服務器和web應用程序中存在的安全漏洞信息
> 方式包括:
手工審查web應用程序結構與源代碼
自動下載與鏡像web站點頁面:lynx、wget、teleportpro、offline explorer等web站點鏡像軟件。
使用google hacking技術審查與探測web應用程序
web應用程序安全評估與漏洞探測:瀏覽器插件、免費工具集、商業web應用安全評估系統和漏洞掃描器。
Web服務器平臺安全漏洞:後端
數據驅動的遠程代碼執行安全漏洞
服務器功能拓展模塊漏洞
樣本文件安全漏洞
源代碼泄露
資源解析攻擊
Web應用程序安全威脅從攻擊者技術角度分爲以下六類:瀏覽器
針對認證機制攻擊
受權機制攻擊
客戶端攻擊
命令執行攻擊
信息暴露
邏輯攻擊
最流行的的兩類Web應用程序安全漏洞及攻擊技術:SQL注入和XSS跨站腳本。安全
攻擊Web數據內容:安全敏感數據泄露、網站內容遭到篡改以及不良信息內容上傳威脅。
1.3 SQL注入
利用web應用程序的輸入驗證不完善漏洞,使得web應用程序執行由攻擊者所注入的惡意指令和代碼,形成敏感信息泄露、權限提高或對系統的未受權訪問等危害後果。
> SQL注入攻擊步驟:
發現SQL注入點
判斷後臺數據庫類型
後臺數據庫中管理員用戶口令字猜解
上傳ASP後門,獲得默認帳戶權限
本地權限提高
利用數據庫擴展存儲過程執行Shell命令
> SQL注入攻擊工具:
>
Wposion 能在動態web文檔中找出SQL注入漏洞
wieliekoek.pl 以網站鏡像工具生成的輸入爲輸出,對錶單頁面注入字符串修改
SPIKE Proxy 對待注入的字符串進行定製
SPI Toolkit工具包
本節還舉了兩個攻擊示例。
SQL注入攻擊防範:
使用類型安全的參數編碼機制
完備檢查來自外部的用戶輸入
將動態SQL語句替換爲存儲過程、預編譯SQL或ADO命令對象
增強SQL數據庫服務器的配置與鏈接
第2節 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配有強大的偵測引擎,適用於高級滲透測試用戶,不只能夠得到不一樣數據庫的指紋信息,哈能夠從數據庫中提取數據,此外還可以處理潛在的文件系統以及經過帶外數據鏈接執行系統命令等。