web應用體系結構 |
web應用程序是一種使用瀏覽器在互聯網或企業內部網上進行訪問操做的應用軟件形態,也造就了B/S計算結構,提高了部署和應用的便捷性。web應用體系結構如圖所示:php
針對於上圖對關鍵組件進行介紹:python
web應用安全威脅 |
web應用信息收集 |
針對web應用的攻擊也須要首先進行信息情報的收集,主要收集:服務器域名,IP地址和虛擬IP地址,web服務器端口與其餘開放服務,web站點類型和版本,web應用程序類型及版本,web服務器及其存在的安全漏洞信息。mysql
攻擊web服務器軟件 |
web服務器的安全漏洞主要分爲如下幾類:git
攻擊web應用程序 |
針對web應用安全威脅從攻擊技術角度分爲如下6類:web
攻擊web數據內容 |
代碼注入利用web應用程序的輸入驗證不完善漏洞,使得web應用程序執行由攻擊者所注入的惡意指令和代碼。sql
代碼注入根據攻擊目標不一樣分爲:shell
SQL注入攻擊原理 |
利用web應用程序的數據層存在的輸入驗證不完善性安全漏洞實施的代碼注入攻擊技術。因爲用戶輸入沒有被正確地過濾以消除SQL語言中的轉義字符,或沒有進行嚴格的類型判斷,使得用戶能夠輸入並執行一些非預期的SQL指令代碼。數據庫
SQL注入攻擊步驟和過程 |
http://SITE/xxx.asp?some_rec=yyy
的動態網頁,當some_rec
字段爲整形參數,經過不一樣的三種字符串可判斷該動態頁面是否存在SQL注入點。
yyy
修改成yyy'
形成SQL出錯,動態頁面返回錯誤提示信息yyy
修改成yyy and 1=1
不對查詢條件形成任何影響,返回正常頁面yyy
修改成yyy and 1=2
查詢不到任何信息some_rec
爲字符型參數時,經過三種不一樣的字符串肯定是否存在SQL注入點
yyy
修改成yyy'
輸入引號不匹配形成SQL語句錯誤yyy
修改成yyy'and'1'='1'
不對查詢語句形成任何影響yyy' and '1'='2'
查詢不到任何信息,返回空白頁面或錯誤提示信息SQL注入攻擊工具 |
URL字符轉義編程
+ URL 中+號表示空格 %2B 空格 URL中的空格能夠用+號或者編碼 %20 / 分隔目錄和子目錄 %2F ? 分隔實際的URL和參數 %3F % 指定特殊字符 %25 # 表示書籤 %23 &URL 中指定的參數間的分隔符 %26 =URL 中指定參數的值 %3D
XSS跨站腳本攻擊的最終目標不是提供服務的web應用程序而是使用web應用程序的用戶。XSS的漏洞存在於web應用程序中,使得攻擊者能夠在web頁面中插入惡意代碼(HTML或JavaScript)用戶在瀏覽網頁時,瀏覽器會解析這些插入的代碼,形成獲取用戶敏感信息、客戶端滲透攻擊等危害後果。後端
XSS攻擊技術原理 |
web應用程序對用戶輸入內容的安全驗證與過濾不夠完善,用戶提交的內容能夠包括HTML、JAVAScript及其餘腳本代碼。例如在name變量填寫爲<script>alert(/xss/)</script>
,這段客戶端代碼將會被包含在留言瀏覽頁面中,其餘用戶訪問時將會執行代碼。
XSS攻擊技術分類 |
XSS攻擊實例 |
在SEED實驗環境中的PHPBB論壇程序中引入XSS安全漏洞,咱們利用以下步驟來測試與利用該漏洞。
http://www.sqllabmysqlphpbb.com
訪問,首先須要運行Apache service
<script>alert('XSS');</script>
的帖子,驗證該論壇程序存在XSS安全漏洞,修改以下代碼,不須要密碼就能夠登陸相應的帳號。將發佈帖子中的腳本換爲
攻擊者能夠進一步利用XSS漏洞進行用戶會話Cookie的竊取。攻擊者首先架設一個服務器,該服務器將全部收到的HTPP請求顯示在屏幕中,而後在論壇中發佈帖子。當其餘用戶訪問到該帖子頁面時,植入腳本會在瀏覽器中自動執行。
web瀏覽器軟件的安全威脅 |
web瀏覽器安全威脅位置
被隱蔽地掛接在一些提供真實內容的網頁上,用戶在訪問這些網頁時,網頁木馬會神不知鬼不覺地向用戶計算機中植入惡意程序,與傳統木馬程序相比,網頁木馬仍是具備較大的差別性,並體現出更高的複雜性。
網頁木馬的本質核心就是利用腳本語言實現對web瀏覽器軟件安全漏洞的滲透攻擊,從而向客戶端主機中植入惡意程序。咱們定義網頁木馬是對web瀏覽器端軟件進行客戶端滲透攻擊的一類惡意移動代碼,一般以網頁腳本語言或flash、PDF等惡意構造的web文件形式存在,經過利用web瀏覽器端軟件中存在的安全漏洞,得到客戶端計算機的控制權限以植入惡意程序。
對網頁木馬機理的理解 |
因爲網頁木馬採用客戶端滲透攻擊的形式,須要web瀏覽器端軟件訪問惡意構造的web頁面內容,纔可能觸發滲透攻擊過程。所以網頁木馬的攻擊是被動式的,須要一些技術方法誘使互聯網用戶來訪問網頁木馬頁面。
網頁掛馬機制 |
在編寫完成網頁木馬滲透攻擊代碼以後,爲了使得可以有終端用戶使他們可能存在安全漏洞的web瀏覽端軟件來訪問網頁木馬,攻擊者還須要將網頁木馬掛接到一些擁有客戶訪問流量的網站頁面上,這一過程稱爲網頁掛馬。
iframe標籤的功能是在頁面中建立一個內嵌的框架,用於包含和顯示其餘文檔頁面,當包含頁面被瀏覽器打開時,被包含的頁面也會同時被請求並顯示在內嵌框架中。<iframe src="URL to Trojan" width="0" height="0" frameborder="0"></frame>
將內嵌框架設置爲不可見,避免引發受害者的注意。
script腳本標籤經過外部引用腳本的方式來包含網頁木馬。跳轉腳本一般使用document.write動態生成包含網頁木馬鏈接的iframe內嵌標籤。
利用圖片、flesh等內嵌對象中的特定方法來完成指定頁面的加載。這種掛馬技術可以產生出一些包含木馬鏈接的圖片或flash文件,經過向一些容許用戶上傳圖片和flesh文件的網站進行上傳,從而形成這些網站特定頁面被掛馬的危害後果。
在同一以太網網段內,攻擊者經過ARP欺騙能夠進行中間人攻擊,劫持全部目標網站出入的網絡流量,並可能在目標網站的HTML反饋包中注入任意的惡意腳本,從而使其成爲將網絡訪問流量鏈接至網頁木馬的掛馬網站。
混淆機制 |
網頁木馬攻擊網絡中每每採用了大量的混淆技術,來對抗反病毒軟件的檢測,並提升反病毒工程師的分析難度,從而使得網頁木馬攻擊網絡更難被檢測和摧毀,這些混淆技術也被稱爲「免殺」
目前使用普遍的混淆方法主要有:將代碼從新排版,去除縮進、空行、換行等,同時將網頁木馬中的變量名替換爲一組合法的隨機字符串,失去自我描述能力,干擾閱讀分析;經過大小寫變換、十六進制編碼、escape編碼等方法對網頁木馬進行編碼混淆;經過通用或定製加密工具對網頁木馬進行加密等到密文,使用腳本語言中包含的解密函數對密文進行解密,再進行動態輸出或執行;利用字符串運算、數學運算或特殊函數混淆代碼;修改網頁木馬文件掩碼欺騙反病毒軟件,或對網頁木馬文件結構進行混淆,來假裝正常文件。
網頁木馬的檢測與分析技術 |
kali漏洞分析之數據庫評估 |
是一個python編寫的盲注工具,當檢測可疑的注入漏洞時會頗有用,同時是一個半自動工具,容許客戶自定義參數。
從界面上能夠看到設置不一樣的參數只要在命令行中輸入對應的參數便可
使用方式:
破解SQLSever數據庫 ./dbpwaudit -s IP -d master(數據庫名) -D mssql(數據庫類型) -U username(字典) -P password(字典) 破解MySql數據庫 ./dbpwaudit.sh -s IP -d mysql(數據庫名稱) -D MySQL(數據庫類型) -U username(字典) -P password(字典)
能夠看到在界面的最下方是bruteforce暴力枚舉破譯數據庫的用戶名和密碼
一款輕量級的安全測試工具,能夠檢測SQL注入漏洞。跨平臺開源且免費。將存在注入漏洞的URL貼進來就能夠進行響應的漏洞利用。
包括MDB-Export以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具體環境具體使用
是一個利用Java開發的Oracle評估工具。它是基於插件的結構。
sqldict 用戶名密碼破解工具
tnscmd10g 能夠向Oracle數據庫注入命令
是一個開放源代碼的SQL注入和接管工具,sqlsus使用perl編寫,基於命令行界面,能夠獲取數據庫結構,注入本身的SQL語句,從服務器下載文件,爬行web站點上的可寫目錄,上傳和後空後門等。
使用方法:先利用-g參數,生成test.conf,並編輯配置文件,以後啓動測試,獲取數據庫數據並可查看全部數據庫的名字
是一款專門針對SQL server的SQL注入工具,sqlninja側重於得到一個shell,能夠遠程SQL服務器的標誌和特徵;對管理員帳號口令的強力攻擊,一旦找到口令進行提權。還具備「逃避技術」、「盲目執行」攻擊模式等。注入網址是須要寫在配置文件中的,默認是sqlninja.conf
是一個開源的滲透測試工具,主要用於自動化偵測和實施SQL注入攻擊,以及滲透數據庫服務器。SQLmap配有強大的偵測引擎,適用於高級滲透測試用戶,不只能夠得到數據庫的指紋信息,還能夠從數據庫中提取數據,處理潛在文件系統以及經過帶外數據鏈接執行系統命令。
使用方法:snamp -u "測試是否存在SQL注入的URL" --cookie'PHPHSESSID=cookies值;securtiy=low'
將會測試當前URL是否存在SQL注入漏洞,添加其餘參數還能夠查看數據庫相關信息。
kali漏洞分析之web應用代理 |
經過web應用代理工具分析數據包,或者修改數據包重放、暴力攻擊等常常會在web安全測試中用到。
咱們首先在burpsuite的proxy的option選項,將監聽設置爲127.0.0.1 8080
端口,同時修改firefox瀏覽器的web代理爲127.0.0.1 8080
此時咱們能夠看到訪問百度時沒有直接打開百度的鏈接,在raw頁多出了一些請求
點擊forword,此時瀏覽器打開了百度
是一個開放源碼的web應用程序安全測試平臺,Vega能夠幫助測試SQL注入,XSS、敏感信息泄露和其餘安全漏洞也有代理功能,能夠利用代理功能截獲數據包。
接下來以burpsuit爲例的使用介紹 |
burpsuit是一個web應用程序集成攻擊平臺,包含了一系列burp工具,這些工具之間有大量的接口能夠相互通訊。平臺中全部工具共同享有同一個robust框架,以便統一處理HTTP請求。容許攻擊者結合手工和自動技術枚舉、分析、攻擊web應用程序。
接下來是spider的使用,首先,要將瀏覽器的代理web改成127.0.0.1 如前步驟,而後將dvwa的安全改成low
便可,訪問其餘頁面將會獲取到頁面信息。
請求到的全部頁面都會在proxy主界面的HTTP History下顯示出來
返回登陸界面,隨便輸入帳號和密碼登陸確定是失敗的,咱們能夠在HTTP history下看到最新的一條請求,以及請求的內容
利用intruder模塊,對帳號密碼進行暴力破解,將POST數據包發送給intruder模塊,同時,將add包圍username和password兩個變量,將會利用字典一次替換兩個變量,對帳號密碼進行暴力破解
repeater改包重放 將某個包發送至repeater中能夠修改包中的內容從新實現新的訪問
compare模塊能夠比較兩個包的不一樣
BAPP Store能夠專門下載一些插件實現更多的功能
kali漏洞分析之Fuzz工具 |
測試xsser工具
首先複製瀏覽器的cookie值,並在命令行輸入命令
能夠獲得結果,100%存在xss漏洞
由於這章的代碼時利用Scanpy的接口進行數據包嗅探和提取其中的內容,我檢測是不是scapy出現了錯誤,因而在命令行輸入Scapy,出現如下問題
能夠看到報錯是INFO: Can't import python ecdsa lib. Disabled certificate manipulation tools
應該是在安裝matplotlib模塊的時候沒有安裝正確,因而,我利用pip install matplotlib pyx cryptography
嘗試安裝matplotlib模塊,提示
因而我在提示目錄下刪除了原有的模塊從新安裝,此次安裝成功
以後運行代碼沒有再報錯
運行mail_sniffer.py,同時使用Telnet pop3.163.com 110 輸入用戶名和密碼登陸郵箱,將看到mail_sniffer截獲到了咱們的郵箱帳號和密碼
首先咱們觀察Windows靶機ARP緩存表中攻擊機的IP地址與MAC地址。以及其網關的IP地址。
在運行代碼時出現瞭如下的錯誤
仔細檢查代碼發現是interface接口錯誤,仔細檢查代碼發現,咱們選用的網絡接口是eth0,而不是書中的en1。:(( 這件事告訴我不能照抄代碼,須要理解代碼才能正確運行。運行結束後咱們能夠檢查靶機的網關mac地址已經變成了攻擊機的mac地址了。
因爲沒有找到人臉識別的pcap文件我對這個也不是特別瞭解,可是運行能夠正常運行
代碼已經上傳到碼雲,點擊這裏----> 個人碼雲:))