1. 程式人生 > >2017-2018-2 20179216 《網絡攻防與實踐》第五周總結

2017-2018-2 20179216 《網絡攻防與實踐》第五周總結

通過 advance 會話 輕量級 兩個 構造 點擊 審計 添加

教材內容總結


1. Web應用程序體系結構
Web應用程序是一種使用瀏覽器在互聯網或企業內部網上進行訪問操作的應用軟件形態。Web應用體系有瀏覽器作為客戶端完成數據顯示和展示內容的渲染;由功能強大的服務器完成主要業務的計算和處理,兩者之間通過因特網或內聯網上HTTP/HTTPS應用層協議的請求與應答進行通信。服務器端由Web服務器軟件、Web應用程序與後端數據庫構成,並通過經典三層架構:表示層、業務邏輯層、數據層來進行組織與構建。

  • 瀏覽器
    使用HTTP/HTTPS協議,HTML語言和web服務器進行交互,獲取web服務器上的信息和應用服務。
  • Web服務器
    web服務器軟件通常被描述為HTTP守護程序,接收Web客戶端對資源的請求,,在這些請求上執行一些基本的解析處理以確定資源的存在,然後將它傳送給web應用程序來執行,待web應用程序執行完邏輯並返回響應時,web服務器在將這個響應返回給web客戶端,在瀏覽器上進行本地執行、渲染和展示。
  • web應用程序
    處於服務端的業務邏輯是web應用的核心。
  • 數據庫
    是web應用存儲數據的地方,數據層也作為web應用程序多級結構中的最後一層。

2. Web應用安全威脅

  • 瀏覽器安全困境三要素:復雜性、可擴展性、連通性。
  • 瀏覽器安全威脅位置有:網絡協議、瀏覽器端系統平臺、插件、社會工程學。
  • 拒絕服務攻擊
    拒絕服務攻擊就是想盡辦法讓你的服務器無法正常提供服務,具體手段包括:消耗包括網絡帶寬、存儲空間、CPU 時間等資源;破壞或者更改配置信息;物理破壞或者改變網絡部件;利用服務程序中的處理錯誤使服務失效。

  • Web瀏覽器的滲透攻擊威脅 網頁木馬
    (1)網頁木馬存在的技術基礎:Web瀏覽端安全漏洞。
    (2)網頁木馬的本質核心——瀏覽器滲透攻擊。
    (3)網頁掛馬機制,最主要的有如下四類策略:內嵌HTML標簽、惡意Script腳本、內嵌對象連接、ARP欺騙掛馬。
    (4)網頁木馬的檢測與分析方法:基於特征碼匹配的傳統檢測方法、基於統計與機器學習的靜態分析方法、基於動態行為結果判定的檢測分析方法、基於模擬瀏覽器環境的動態分析檢測方法、網頁木馬檢測分析技術綜合對比。

  • 網頁掛馬機制
    (1)內嵌HTML標簽
    (2)惡意Script腳本
    (3)內嵌對象鏈接
    (4)ARP欺騙掛馬

  • 系統層安全威脅
    (1)web站點的宿主操作系統存在的遠程滲透攻擊和本地滲透攻擊威脅。
    (2)web服務器軟件安全威脅
    (3)web服務器軟件如IIS,Apache作為一種典型的網絡服務,攻擊者可以它們的漏洞對web服務器實施滲透攻擊或者獲取敏感信息。
    (4)web應用程序安全與威脅

3. SQL註入

  • SQL註入攻擊原理
    利用web應用程序數據層存在的輸入驗證不完善型安全漏洞實施的一類代碼註入攻擊技術。是由於用戶輸入沒有被正確的過濾以消除SQL語言中的字符串轉義字符。原理是向web應用程序提供的用戶輸入接口輸入一段驚心構造的SQL查詢命令,攻擊和利用不完善的輸入驗證機制,使得輸入代碼得以執行完成非預期的攻擊操作行為。

  • SQL註入攻擊步驟
    (1)發現SQL註入點
    (2)判斷後臺數據庫類型
    (3)後臺數據庫中管理員用戶口令字猜解
    (4)上傳ASP後門,得到默認賬戶權限
    (5)本地權限提升
    (6)利用數據庫擴展存儲過程執行Shell命令

  • SQL 註入攻擊工具
    (1)Wposion 能在動態web文檔中找出SQL註入漏洞
    (2)wieliekoek.pl 以網站鏡像工具生成的輸入為輸出,對表單頁面註入字符串修改
    (3)SPIKE Proxy 對待註入的字符串進行定制
    (4)SPI Toolkit工具包

SQL註入實驗


相關知識

  • SQL語言
    SQL(Structured Query Language,結構化查詢語言):是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系數據庫系統;同時也是數據庫腳本文件的擴展名。

  • SQL註入
    SQL註入:SQL註入能使攻擊者繞過認證機制,完全控制遠程服務器上的數據庫。SQL是結構化查詢語言的簡稱,它是訪問數據庫的事實標準。目前,大多數Web應用都使用SQL數據庫來存放應用程序的數據。幾乎所有的Web應用在後臺都使用某種SQL數據庫。跟大多數語言一樣,SQL語法允許數據庫命令和用戶數據混雜在一起的。如果開發人員不細心的話,用戶數據就有可能被解釋成命令,這樣的話,遠程用戶就不僅能向Web應用輸入數據,而且還可以在數據庫上執行任意命令了。

  • SQL註入危害
    1、非法讀取、篡改、添加、刪除數據庫中的數據。
    2、盜取用戶的各類敏感信息,獲取利益。
    3、通過修改數據庫來修改網頁上的內容。
    4、私自添加或刪除賬號。
    5、註入木馬等等。

  • SQL註入攻擊防範措施
  1. 使用類型安全的參數編碼機制
  2. 凡是來自外部的用戶輸入,必須進行完備檢查
  3. 將動態SQL語句替換為存儲過程、預編譯SQL或ADO命令對象
  4. 加強SQL數據庫服務器的配置與連接

環境搭建

  • 啟動mysql:sudo mysqld_safe
    技術分享圖片

  • 啟動apache服務器:sudo service apache2 start
    技術分享圖片

  • 配置DNS:sudo vim /etc/hosts
    上述的URL僅僅在鏡像內部可以訪問,因為修改了/etc/hosts文件使http://www.sqllabmysqlphpbb.com指向本機IP127.0.0.1。如果需要在其他機器訪問,應該修改hosts文件,使URL映射到phpBB2所在機器的IP。
    技術分享圖片

  • 配置網站文件:sudo vim /etc/apache2/conf.d/lab.conf
    輸入以下內容
    技術分享圖片

關閉對抗措施

PHP提供了自動對抗SQL註入的機制,被稱為magic quote,我們需要關閉它:sudo vim /etc/php5/apache2/php.ini

  • 找到/etc/php5/apache2/php.ini
  • 找到magic_quotes_gpc = On這一行
  • 改為magic_quotes_gpc = Off
  • 重啟Apache:”sudo service apache2 restart”

技術分享圖片
技術分享圖片

登錄phpbb

  • 登陸www.sqllabmysqlphpbb.com網站,需要用戶名和密碼
    技術分享圖片

對select的攻擊

訪問www.sqllabmysqlphpbb.com時,我們知道用戶而不知道到密碼的時候,采用下面方式登錄

  • 查看登錄驗證文件:sudo vim /var/www/SQL/Collabtive/include/class.user.php
  • 修改SQL語句,如下所示
    技術分享圖片
  • 修改之後重啟Apache,到密碼不管填什麽密碼都可以登錄成功。

對update的攻擊

當用戶想要在phpBB2中修改他們的資料時,可以點擊Profile,然後填寫表單修改。用戶發送修改請求後,會執行include/usercp_register.php中的一條UPDATE SQL語句。在這條語句中同樣有一個SQL註入漏洞,可以用它來達到以下目標:在不知道其他人密碼的情況下修改其資料。
技術分享圖片

技術分享圖片

XSS攻擊實驗


XSS攻擊步驟:
(1)攻擊者構造出一個包括惡意腳本的bank.com登錄請求鏈接,並通過Email/HTTP等方式將攻擊鏈接發送給其它bank.com的網站用戶;
(2)受害用戶點擊攻擊鏈接後,將會把惡意鏈接中包含的惡意腳本當做用戶名參數提交給bank.com的登陸處理網頁;
(3)由於bank.com登錄處理頁面存在XSS漏洞,將會在反饋的歡迎頁面中包含惡意客戶端腳本;
(4)攻擊者的惡意客戶端腳本在受害用戶瀏覽中執行,通常會驅動瀏覽器向攻擊者發送會話令牌。如會話ID、Cookie信息等;
(5)攻擊者獲得用戶會話令牌之後,就可以劫持用戶會話,或者偽造用戶登錄bank.com,並可實施進一步攻擊。

  • 測試xss漏洞
    在seed環境中的phpBB論壇上發布含有腳本“”的帖子,打開帖子後會出現下圖所示頁面,表示該論壇程序存在XSS漏洞
    技術分享圖片

  • 顯示用戶會話Cookie
    技術分享圖片

kali視頻學習(16-20)


Kali漏洞分析之數據庫評估(一)

1. BBQSql
BBQSql是一個Python編寫的盲註工具(blind SQL injection framework),當檢測可疑的註入漏洞時會很有用。同時它也是一個半自動工具,允許客戶自定義參數。
技術分享圖片

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
HexorBase是圖形化的密碼破解與連接工具,開源;連接並且控制數據庫執行一些語句。
技術分享圖片
技術分享圖片

4. JSQL Injection
是一款輕量級安全測試工具,可以檢測SQL註入漏洞,他跨平臺(windows,Linux,Mac os,Solaris),開源且免費。將存在註入漏洞的URL貼進來即可進行響應的漏洞利用。圖形化界面比較親民,但是使用效果有待改善。
技術分享圖片

5. MDBTools
包括MDB-Export以及MDB-dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具體環境具體使用。

6. Orcal Scanner
用JAVA開發的Orcale評估工具。基於插件的結構,可以列舉很多信息。

Sid列舉
口令測試
列舉Oracle版本
列舉賬號角色
列舉賬號特權
列舉賬號哈希
列舉審計信息
列舉口令策略
列舉數據庫鏈接

技術分享圖片

7. SIDGusser
針對Oracle的SID進行暴力枚舉;SID為Oracle連接字符串:實例名+用戶+密碼
技術分享圖片

8. SqIDICT(用戶名密碼枚舉工具)
通過wine運行。
技術分享圖片

Kali漏洞分析之數據庫評估(二)

1. tnscmd10g
技術分享圖片

2. Sqlsus
sqlsus是一個開放源代碼的MySQL註入和接管工具,Sqlsus使用perl編寫,基於命令行界面。Sqlsus可以獲取數據庫結構,註入自己的SQL語句,從服務器下載文件。爬行Web站點可寫目錄,上傳和控制後門,克隆數據庫等等。最好用的亮點就是註射獲取數據速度非常快,另外一個最大的特點就是自動搜索可寫目錄。

  • 獲取表:sqlsus> get tables
  • 生成配置文件:sqlsus -g test.conf
  • 編輯配置文件:vi test,conf
  • 修改our $url_start = ""
  • 啟動並測試:sqlsus test.conf
  • 獲取數據庫數據,查看全部數據庫名字:sqlsus> get databases
  • 設定數據庫:sqlsus> set databases database = "mysql"
    技術分享圖片
    可以查看生成的配置文件
    技術分享圖片

3. Sqlninja
是一款perl編寫的專門針對Microsoft SQL Server的sql註入工具。和市面上其他註入工具不同,sqlninja沒有將精力用在跑數據庫上,而是側重於獲得一個shell。
優點:

  • 專門針對Microsoft SQL Server的sql註入工具;
  • 可以找到遠程SQL服務器的標誌和特征(版本、用戶執行的查詢、身份驗證模式等);
  • sa口令的強力攻擊,找到口令後,就將特權提升到“sa”;
  • 如果原始的xp_cmdshell被禁用,就創建一個定制的xp_cmdshell。
    技術分享圖片

4. Sqlmap
SQLMAP是一個開源的滲透測試工具,是用Python編寫。主要用於自動化的偵測和實施SQL註入攻擊以及滲透數據庫服務器。配有強大的偵測引擎,適用於高級滲透冊書用戶,不僅可以獲得不同的數據庫指紋信息,還可以從數據庫中提取數據,有很強大的抓取數據的能力。常用命令如下:
技術分享圖片

  • 列舉數據庫:sqlmap.py -u "註入地址" -v 1 --dbs
  • 當前數據庫:sqlmap.py -u "註入地址" -v 1 --current-db
    技術分享圖片

Kali漏洞分析之Web應用代理

1. Burp Suite
用於攻擊web應用程序的集成平臺,通過默認端口8080運行,它帶有一個代理,可以截獲並修改從客戶端到web應用程序的數據包。

使用Burp Suite截獲數據包

  • 設置瀏覽器代理地址為127.0.0.1,端口8080
    Edit>preferences>Advanced>Netwok>Connection>settings>Mnnualproxyconfiguration>HTTP proxy
    技術分享圖片

  • 打開burpsuite確定設置的代理地址與瀏覽器一致
    技術分享圖片

  • 當Intercept is on時,表示已經開啟攔截功能。

技術分享圖片

技術分享圖片

2. OWASP ZAP
攻擊代理,查找網頁應用程序漏洞的綜合類滲透測試工具,包含攔截代理、自動代理、被動代理、暴力破解、端口掃描及蜘蛛搜索等功能。是會話類調試工具。
技術分享圖片

3. Vega
開源的web應用程序安全測試平臺,Vega能幫助驗證SQL註入、跨站腳本(XSS)、敏感信息泄露和其他一些安全漏洞。Vega使用java編寫,有GUI,可以在多平臺下運行。Vega類似於Paros Proxy, Fiddler, Skipfish and ZAproxy。
技術分享圖片

4. Paros
paros,是一個對Web應用程序的漏洞進行評估的代理工具,即一個基於Java的Web代理程序,可以評估Web應用程序的漏洞。它支持動態地編輯/查看HTTP/HTTPS,從而改變cookies和表單字段等項目。它包括一個Web通信記錄程序,Web圈套程序(spider),hash計算器,還有一個可以測試常見的Web應用程序攻擊(如SQL註入式攻擊和跨站腳本攻擊)的掃描器。該工具檢查漏洞形式包括:SQL註入、跨站點腳本攻擊、目錄遍歷等。
技術分享圖片

5. proxystrike
Web會話安全分析工具ProxyStrike
在Web應用中,客戶端發出一次請求,服務器響應一次。這構成一個完整的會話。通過分析請求和響應的數據,可以發現Web應用存在的漏洞。Kali Linux提供一款專用工具ProxyStrike。該工具提供HTTP代理功能,可以跟蹤HTTP會話信息,並進行分析統計。同時,該工具也提供攔截功能,安全人員可以對每個會話進行分析和修改,以獲取服務器的不同響應。
該工具還通過插件模式,提供安全掃描功能。該工具默認集成SQL註入和XSS兩個插件。在捕獲會話的同時,該工具會自動進行安全檢測,以發現目標服務器存在的漏洞。安全人員也可以使用該工具對目標網站進行爬取,以搜集更多的網站資源,並同時進行安全檢測。

6. webscarab
基於GNU協議,包括HTTP代理、網絡爬行、網絡蜘蛛、會話ID分析等功能。
技術分享圖片

Kali漏洞分析之BurpSuit

Burp Suite 是用於攻擊web 應用程序的集成平臺。它包含了許多工具,並為這些工具設計了許多接口,以促進加快攻擊應用程序的過程。所有的工具都共享一個能處理並顯示HTTP 消息,持久性,認證,代理,日誌,警報的一個強大的可擴展的框架。
技術分享圖片

工具箱:

  • Proxy--是一個攔截HTTP/S的代理服務器,作為一個在瀏覽器和目標應用程序之間的中間人,允許你攔截,查看,修改在兩個方向上的原始數據流。
  • Spider--是一個應用智能感應的網絡爬蟲,它能完整的枚舉應用程序的內容和功能。
  • Scanner[僅限專業版]--是一個高級的工具,執行後,它能自動地發現web 應用程序的安全漏洞。
  • Intruder--是一個定制的高度可配置的工具,對web應用程序進行自動化攻擊,如:枚舉標識符,收集有用的數據,以及使用fuzzing 技術探測常規漏洞。
  • Repeater--是一個靠手動操作來補發單獨的HTTP 請求,並分析應用程序響應的工具。
  • Sequencer--是一個用來分析那些不可預知的應用程序會話令牌和重要數據項的隨機性的工具。
  • Decoder--是一個進行手動執行或對應用程序數據者智能解碼編碼的工具。
  • Comparer--是一個實用的工具,通常是通過一些相關的請求和響應得到兩項數據的一個可視化的"差異"。
  • Intruder是Burp套件的優勢,它提供一組特別有用的功能。它可以自動實施各種攻擊,包括:資源枚舉、數據提取、模糊測試等常見漏洞。在各種有效的掃描工具中,它能夠以最細化、最簡單的方式訪問它生產的請求與響應,允許組合利用個人智能與該工具的控制優點。

(1)首先配置監聽端口,配置瀏覽器。
技術分享圖片

(2)然後就可以查看所有請求的數據包
技術分享圖片

(3)點擊數據包,可以查看包內容
技術分享圖片

(4)右鍵單擊包,選擇“send to intruder”,即可進行攻擊
技術分享圖片

技術分享圖片

技術分享圖片

Kali漏洞分析之Fuzz工具

Fuzz是模糊測試的工具,是模糊測試時漏洞挖掘過程中的重要一步。

1. Bed.pl
Bed(Bruteforce Exploit Detector)是一個純文本協議的Fuzz工具,能夠檢查常見的漏洞,如緩沖區溢出,格式串漏洞,整數溢出等。
使用參數如下:
-s 針對FTP協議,FTP參數
-t 目標IP地址
-p 目標端口
-o timeout 發送一連串畸形數據包,嘗試使程序報錯,進行判斷。

技術分享圖片

2. Fuzz_ipv6
Fuzz_ipv6是THC出品的針對IPV6協議的模糊測試工具

3. Ohrwurm
ohrwurm 是一個小巧而簡單的RTP模糊器,它已經在少量的SIP**上測試過了,它們都沒有經受voip分析工具包的模糊測試。
技術分享圖片

4. Powerfuzzer
Powerfuzzer作為Fuzz請求的工具 ,BurpSuit等Web代理工具也具有相應Fuzz能力。
技術分享圖片

5. Wfuzz
針對Web應用的模糊測試工具,可以進行Web應用暴力猜解,也支持對網站目錄、登錄信息、應用資源文件等的暴力猜解,還可以進行get及post參數的猜解,sql註入、xss漏洞測試等。該工具所有功能依賴於字典。

  • 登錄get請求,登錄頁面口令猜解
    wfuzz -c -z file,users.txt -z file,pass.txt -hc
    頁面數目猜解
  • wfuzz -c -z range,1-10 --hc=BBB
    技術分享圖片

6. SFuzz:Simple-Fuzzer
技術分享圖片

7. XSSer
針對XSS漏洞的挖掘,xsser --gtk 圖形化界面,對一個頁面或點進行xss測試,判斷是否有XSS的漏洞。
技術分享圖片

圖形化界面:xsser --gtk
技術分享圖片

學習中遇到的問題


(1)對SQL註入實驗還有很多不明白的地方。
(2)XSS攻擊較為困難。
(3)視頻學習中,學習了Kali漏洞分析的一些軟件的使用,有些程序運行的還挺流暢,但是有些程序運行的就稍顯吃力,例如BurpSuit,感覺用起來不是很熟練。另外,由於版本問題,視頻中的有些軟件在自己的虛擬機中並沒有找到,例如Fuzz_ipv6,視頻中顯示是在Fuzzing工具集中,但從Fuzzing工具集中並沒有找到該工具。

2017-2018-2 20179216 《網絡攻防與實踐》第五周總結