web應用的體系結構:
三層就是表示層,業務邏輯層,數據層。從瀏覽器到web服務器的傳輸是經過HTTP協議實現的,即超文本傳輸協議,默認使用TCP80端口,HTTP協議使用統一資源標識符,對範圍從靜態文本頁面到動態視頻流的各類資源進行統必定義,而後採用一種簡單的請求響應模式,來獲取資源。
針對web應用體系結構及其安全威脅的層次模型,下面給出了其中每一個組件所面臨的典型安全威脅和攻擊類型:
1.針對瀏覽器和終端用戶的web瀏覽安全威脅,具體包括以瀏覽器滲透攻擊爲核心的網頁木馬,網站釣魚等。
2.針對傳輸網絡的網絡協議安全威脅。像針對HTTP明文傳輸協議的敏感信息監聽,在網絡層。傳輸層和應用層都存在的假冒身份攻擊,以及拒絕服務攻擊等。
3.系統層安全威脅。web站點的宿主操做系統存在的遠程滲透攻擊和本地滲透攻擊威脅。
4.web服務器軟件安全威脅。web服務器軟件如:IIS,Apache做爲一種典型的網絡服務,也不可避免的存在安全漏洞與弱點,攻擊者能夠利用這些漏洞對web服務器實施滲透攻擊或者獲取敏感信息。
5web應用程序安全與威脅。程序員在使用ASP,PHP等腳本編程語言實現web應用程序時,因爲缺少安全意識或是有着不良的編程習慣,最終致使web應用程序出現安全漏洞,從而被攻擊者滲透利用,包括SQL注入攻擊,XSS跨站腳本攻擊等。
6.web數據安全威脅。web站點中在web應用程序後臺存儲的關鍵數據內容,以及web客戶輸入的數據內容,存在着倍竊取,篡改及輸入不良信息等威脅。
常見的web應用程序的幾種主流攻擊技術
一:SQL注入攻擊
代碼注入是針對web應用程序的主流攻擊技術之一,代碼注入攻擊經過利用web應用程序的輸入驗證不完善漏洞,使得web應用程序執行由攻擊者所注入的惡意指令和代碼,形成敏感信息泄露,權限提高或對系統的未受權訪問等危害後果。其原理是利用web應用程序數據層存在的輸入驗證信息不完善型安全漏洞實施的一類代碼注入攻擊。其步驟就是:
1.發現SQL注入點
2.判斷後臺的數據庫類型
3.後臺數據庫中管理員用戶口令字猜解
二:XSS跨站腳本攻擊
XSS攻擊的根源一樣是web應用程序對用戶輸入內容的安全驗證與過濾不夠完善,在許多流行的web論壇,博客,留言本以及其餘容許用戶交互的web應用程序中,用戶提交內容中能夠包含HTML,JAVAScript及其餘腳本代碼,而一旦web應用程序沒有對這些輸入的合法性進行有效的檢查與過濾,就極可能讓這些惡意代碼邏輯包含在服務器動態產生或更新的網頁中。XSS攻擊分爲兩種,即持久性XSS漏洞和非持久性XSS攻擊。
持久性XSS漏洞是危害最爲嚴重的XSS漏洞,它一般出如今一些能夠將用戶輸入持久性的保存在web服務器端,也被稱做存儲性XSS漏洞。
非持久性XSS漏洞則是最爲廣泛的類型,針對這一非持久性XSS漏洞的具體攻擊類型包括以下幾個步驟:
(1)攻擊者構造出一個包含惡意腳本的bank.com登陸請求連接,並經過Email/HTTP等方式將該攻擊連接發送給其餘的bank.com網站用戶
(2)受害用戶點擊攻擊連接後,將會把惡意連接中包含的惡意腳本當作用戶名參數提交給bank.com的登陸處理網頁。
(3)因爲bank.com登陸處理頁面存在XSS漏洞,將會在反饋的歡迎頁面中包含惡意客戶端腳本。
(4)攻擊者的惡意客戶端腳本在受害用戶瀏覽器中執行,一般會驅動瀏覽器向攻擊者發送會話領牌,如會話ID,Cookie等信息。
(5)攻擊者得到用戶會話令牌後,就能夠劫持用戶會話,或者僞造用戶登陸bank.com,並可實施進一步攻擊。python
(一)kali漏洞分析之數據庫評估
1.BBQsql.BBQsql 是一個由python編寫的盲注工具,當檢測可疑的注入漏洞時會頗有用,同時BBQSql是一個半自動工具,容許客戶自定義參數。
2.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(字典) '
3.HexorBase
圖形化的密碼破解與鏈接工具,開源
4.Jsql Injection
jSQL是一款輕量級安全測試工具,能夠檢測SQL注入漏洞,它跨平臺,開源且免費,將存在注入漏洞的URL貼進來便可進行相應的漏洞利用,圖形化界面。最好是肯定有漏洞的URL再使用這個,比較激烈。
5.MDBTools
包括MDB-Export,MDB-Dump,MDB-parsecsv,MDB-sql,MDB-tables等子工具,具體環境具體使用,主要是針對MDBA數據庫的。
6.oracle Scanner
oscanner 是一個用Java開發的oracle評估工具,它是基於插件的結構,當前由兩個插件能夠作:
sid列舉
口令測試
列舉oracle版本
列舉帳號角色
列舉帳號特權
列舉帳號哈希
列舉審計信息
列舉口令策略
列舉數據庫連接
7.SIDGuessr
一樣是針對oracle的SID進行暴力枚舉的工具,SID爲oracle實例化,oracle連接字符串,經過實例化+用戶+密碼鏈接
8.sqlsus
sqlsus是一個開放源代碼的mySQL注入和接管工具,sqlsus使用Perl編寫,基於命令行界面,sqlsus能夠獲取數據庫結構,注入你本身的SQL語句,從服務器下載文件,爬行web站點可寫目錄,上傳和控制後門,克隆數據等,最好用的兩點就是注入獲取數據速度很是快,另一個最大的特色就是自動搜索可寫目錄。
首先要先生成一個配置文件:‘# sqlsus test.conf’
再編輯配置文件:
修改our $url_start ="";寫入地址
啓動而且測試
sqlsus test.conf
獲取數據庫數據
查看所有數據庫名字
‘sqlsus>get databases’
9.Sqlninja
在sql注入方面一直尊sqlmap爲神器,可是sqlninja也有本身的特色。
sqlninja是一款Perl編寫的一個專門針對microsoft SQL server的SQL注入工具,和市面上其餘的注入工具不一樣,sqlninja沒有將精力用在跑數據庫上,而是側重於得到一個shell,其優勢以下:
一個專門針對microsoft SQL server的SQL注入工具;可遠程找到SQL服務器的標識和特徵(版本,用戶執行的查詢,用戶特權,身份驗證模式等)。「sa」口令的強力攻擊,若是找到口令後,就將特權提高到「sa」.若是原始的xp_cmdshell將禁用後,就建立一個定製的xp_cmdshell.使用純粹的ASCII GET/POST請求來上載netcat.exe程序,所以並不須要FTP連接。爲了找到目標網絡的防火牆所容許的端口,能夠實施針對目標SQL,服務器的TCP/UDP 端口掃描。逃避技術,這是爲了使注入式代碼「模糊」不清,而且混淆基於簽名的IPS和應用層防火牆。採用「盲目執行」攻擊模式,在其餘模式失效時,能夠用於發佈命令並執行診斷。在sqlninja生成的SQL代碼上,執行的是自動化的URL編碼,這使得用戶能夠更精細的控制漏洞利用的字符串。若是獲得的權限爲sa,能夠結合msf進一步對目標主機進行滲透。
10.Sqlmap
SQLMAP是一個開源的滲透測試工具,它主要用於自動化的偵測和實施SQL注入以及滲透數據庫服務器,SQLMAP配有強大的偵測引擎,適用於高級滲透測試用戶,不只能夠得到不一樣數據庫的指紋信息,還能夠從數據庫中提取數據,此外還可以處理潛在的文件系統以及經過帶外數據鏈接執行系統命令等。
常見使用命令以下:
'#>sqlmap.py -u "注入地址" -v 1 --dbs //列舉數據庫'
'#>sqlmap.py -u "注入地址" -v 1 --current-db //當前數據庫'
'#>sqlmap.py -u "注入地址" -v 1 --table -D "數據庫" //列舉數據庫的表名'
(二)web應用代理
經過代理工具分析數據包或者修改數據包重放,暴力攻擊等在web安全測試中常常用到。這裏主要以Burpsuite爲例。
Burpsuite是用於攻擊web應用程序的集成平臺,Burpsuite帶有一個代理,經過默認端口8080上運行,使用這個代理,咱們能夠截獲並修改從客戶端到web應用程序的數據包。burpsuit是一個web應用程序集成攻擊平臺,它包含了一系列burp工具,這些工具之間有大量接口能夠相互通訊,這樣設計的目的是爲了促進和提升整個攻擊的效率。平臺中全部工具共享同一robust框架,以便統一處理HTTP請求,持久性,認證,上游代理,日誌記錄,報警和可擴展性。BurpSuite容許攻擊者結合手工和自動技術去枚舉,分析,攻擊web應用程序。這些不一樣的burp工具經過協同工做,有效的分享信息,支持以某種工具中的信息爲基礎共另外一種工具使用的方式發起攻擊。它包含了以下幾塊:
Proxy提供了一個直觀,友好的用戶界面,他的代理服務器包含很是詳細地攔截規則,並能準確分析HTTP消息的結構與內容。
Spide爬行工具能夠用來抓取目標網站,以顯示網站的內容,基本結構,和其餘功能。
Scanner web應用程序的安全漏洞進行自動發現工具,它被設計用於滲透測試,並密切與您現有的技術和方法,以適應執行手動和半自動化的web應用程序滲透測試。
Repeater 可以讓您手動從新發送單個HTTP請求。
Intruder是burp套件的優點,他提供一組特別有用的功能,它能夠自動實施各類定製攻擊,包括資源枚舉,數據提取,模糊測試等常見漏洞等,在各類有效的掃描工具中,它可以以最細化,最簡單的方式訪問它生產的請求與響應,容許組合利用我的智能與該工具的控制優勢。
Sequencer對會話令牌,會話標識符或其餘出於安全緣由須要隨機產生的鍵值的可預測性進行分析。
Decoder轉化成規範的形式編碼數據,或轉化成各類形式編碼和散列的原始數據。它可以智能識別多種編碼格式,使用啓發式技術。
comparer是一個簡單的工具,執行比較數據之間的任何兩個項目。在攻擊一個web應用程序的狀況下,這一要求一般會出現當你想快速識別兩個應用程序的響應之間的差別之間,或兩個應用程序請求。
(三)模糊測試工具集
1.Bed.pl
Bed是一個純文本協議的Fuzz工具,可以檢查常見的漏洞,如緩衝區溢出,格式串漏洞,整數溢出等。
2.Fuzz_ipv6
也是針對IPV6協議的模糊測試工具
3.Wfuzz
針對WEB應用的模糊測試工具,能夠進行web應用暴力猜解,也支持對網站目錄,登陸信息,應用資源文件等的暴力猜解,還能夠進行get及post參數的猜解,sql注入,xss漏洞的測試等。該工具全部功能都依賴於字典。
參數中FUZZ至關於一個變量,用字典中的字段來替換它來完成猜解。
4.Xsser
主要是針對一個點或是一個頁面檢查是否是有Xsser漏洞。
Xsser的參數介紹以下:
xsser [OPTIONS][-u|-i|-d]
指定待檢測目標,至少要指定一下選項的其中一項,以設置待檢測目標URL。
-u URL 待檢測的目標URL
1 -i READFILE 從文件讀取目標URL
-d DORK 將搜索引擎返回的搜索結果做爲目標URL
mysql