@
本系列側重方法論,各工具只是實現目標的載體。
命令與工具只做簡單介紹,其使用另見《安全工具錄》。
本文以 kali-linux-2023.2-vmware-amd64 為例。
靜態 WEB
動態 WEB
明文傳輸
無狀態
重要的 Header
狀態碼
AJAX(Asynchronous JavaScript and XML),用於在 Web 頁面中進行非同步資料交換。它允許在不重新整理整個頁面的情況下與伺服器進行資料互動,更新部分頁面內容。
現在 Web 開發傾向使用更先進的技術,如 SPA(單頁面應用)框架(React、Vue 和 Angular)。
AJAX 的安全問題:
AJAX 對滲透測試的挑戰:
WEB Service,這裡指各種 API,面向服務的架構(service oriented architecture),便於不同系統整合共用資料和功能。
兩種型別的 WEB Service:
WEB Service 安全考慮:
HTTrack(HTTrack Website Copier)用於將整個網站以及其內容下載到本地,以便在離線情況下瀏覽。
可以直接使用命令 httrack
進行互動式操作。
Nikto,Perl 語言開發的開源 web 安全掃描器。
部分命令:
檢視外掛:
nikto -list-plugins
掃描網站:
nikto -host <目標>
掃描主機埠:
nikto -host <目標> -port <埠> [-ssl]
配合 nmap 使用:
nmap -p <埠> <target> -oG - | nikto -host -
Nikto 支援互動。掃描過程中按相應按鍵可以顯示不同的資訊。
例如,按【v】可顯示掃描的詳細資訊。
Skipfish 是由谷歌建立的 Web 安全掃描程式。
部分命令:
掃描網站:
skipfish -o <專案名> <url>
掃描指定網站目錄:
skipfish -o <專案名> -I <子目錄> <url>
skipfish -o test -I /dvwa/ http://192.168.8.104/dvwa/
Arachni 是開源的 Web 安全測試工具。
Windows 端執行 Arachni:
kali 並沒有自帶 Arachni,可以到 github 下載。Arachni 支援 Windows。
官網:https://ecsypno.com/pages/arachni-web-application-security-scanner-framework
專案&下載:https://github.com/Arachni/arachni
根據官網資訊,Arachni 將被 Codename SCNR 取代。
「The Arachni Web Application Security Scanner Framework is passing its torch to Codename SCNR, so please be sure to try it and plan your migration soon.」
參考文章:arachni的安裝和使用
OWASP ZAP(OWASP Zed Attack Proxy),免費開源跨平臺的 web application 整合滲透測試和漏洞工具。
與 BurpSuite 相似,但功能與排版較複雜。
標準掃描工作流程:
參考文章:
網路安全工具篇之OWASP_ZAP
Web安全—Web漏掃工具OWASP-ZAP安裝與使用
BurpSuite,統一的整合工具,可以發現並利用現代 Web 安全漏洞,Web 安全工具中的瑞士軍刀。
參考文章:
BurpSuite安裝及常用功能介紹
BurpSuite全套使用教學(超實用超詳細介紹)
AWVS(Acunetix Web Vulnerability Scanner),用於檢測和掃描 Web 應用程式中潛在的漏洞和安全風險。
參考文章:
AWVS安裝與使用(最新版2022.12.27更新)
AppScan(Watchfire AppScan),用於檢測和修復 Web 應用程式中的安全漏洞和風險。
官網:https://www.hcl-software.com/appscan
參考文章:
漏掃工具Appscan使用簡介
SQLmap(SQL Injection and Database Takeover Tool),開源的自動化 SQL 注入工具,用於檢測和利用 SQL 注入漏洞。
五種漏洞檢測技術:
參考文章:
sqlmap使用教學大全命令大全(圖文)
【工具使用】SqlMap
XSSer,用於測試和利用跨站指令碼(XSS)漏洞的工具。
參考文章:
XSS滲透與防禦——(三)XSSER語法
BeEF(Browser Exploitation Framework),用於探測、利用 Web 瀏覽器中的漏洞和弱點。
參考文章:
XSS滲透測試工具beef如何安裝使用?
BEEF的簡介與使用
Weevely,基於 python 編寫的 webshell 管理利用工具。
參考文章:
weevely工具使用
OpenSSL,用於實現 SSL(安全通訊協定)和 TLS(傳輸層安全)協定,以及進行加解密、數位憑證管理和其他加密相關的操作。
範例:
識別目標伺服器支援的 cipher suite:
openssl s_client -connect www.baidu.com:443
參考文章:
openssl安裝與使用
SSLscan,用於評估和測試 SSL/TLS 設定,自動識別設定錯誤、過期協定、過時 cipher suite 等。
範例:
識別目標伺服器支援的 cipher suite:
sslscan --tlsall www.taobao.com
參考文章:
sslscan工具在密評中的使用
SSLyze ,用於分析和評估伺服器端的 SSL/TLS 設定和安全性。
官方檔案:
https://nabla-c0d3.github.io/sslyze/documentation/index.html
SSLsplit,用於中間人攻擊(Man-in-the-Middle,MitM)和分析 SSL/TLS 通訊。
官網:https://www.roe.ch/SSLsplit
MitMproxy(Man-in-the-Middle Proxy),開源的中間人代理工具,用於擷取、檢查、修改和記錄網路通訊流量。
參考文章:
Kali Linux 基於HTTPS的中間人攻擊
IPtables,是一個 Linux 上的工具,它是 Linux 核心提供的防火牆功能的使用者空間介面,用於保護計算機。可用於設定、管理和控制網路封包的過濾和轉發規則。
參考文章:
iptables基礎知識詳解
技術型漏洞的本質:
漏洞挖掘原則:
這一部分與 WEB 安全相關。詳情參見《WEB安全基礎》。
預設設定漏洞
身份認證漏洞
命令執行漏洞
API 介面漏洞
越權漏洞
目錄遍歷漏洞(Directory traversal)
檔案包含漏洞(File include)
檔案上傳漏洞
SQL 注入
XSS 漏洞(Cross-Site Scripting)
CSRF 漏洞(Cross-Site Request Forgery)
從信任的角度區分 XSS 與 CSRF:
- XSS:利用使用者對站點的信任
- CSRF:利用站點對已經身份認證使用者的信任
SSL(Secure Socket Layer)和 TLS(Transport Layer Security)用於在網路通訊中提供加密和資料完整性。
SSL/TLS 被用於很多場景的傳輸通道加密。
HTTPS 攻擊方法:
TLS/SSL、HTTPS、HTTP over SSL 通俗上表示同意含義。
工具使用:
除了 OpenSSL、SSLscan、SSLyze 幾個工具,Nmap 也有相應指令碼用來攻擊。
nmap --script=ssl-enum-ciphers.nse www.baidu.com
中間人攻擊(Man-in-the-Middle Attack,MitM),攻擊者在通訊的兩端之間插入自己的惡意節點來竊取、篡改或監聽傳輸的資料。
中間人攻擊的前提(滿足其中一個即可):
參考文章:
HTTPS攻擊原理與防禦
拒絕服務攻擊有很多種,這裡只介紹 SSL/TLS 拒絕服務攻擊。
SSL/TLS 拒絕服務攻擊,主要原理是利用 SSL/TLS 握手過程中的資源消耗來耗盡伺服器的資源,導致伺服器無法響應其他合法使用者的請求。
常見的攻擊方式:
SSL/TLS 握手暴力攻擊
攻擊者通過大量的惡意 SSL/TLS 握手請求消耗伺服器的計算和記憶體資源。
SSL/TLS 版本協商攻擊
攻擊者通過傳送惡意的 SSL/TLS 版本協商請求來混淆伺服器,迫使其進行大量額外的計算和資源分配。
SSL/TLS 握手放大攻擊
攻擊者偽造大量的虛假握手請求,使伺服器產生大量響應資料。
SSL/TLS 對談重放攻擊
攻擊者截獲合法使用者的 SSL/TLS 通訊,然後將通訊內容重新傳送給伺服器。
減輕攻擊影響的措施:
參考文章:
SSL_TLS 攻擊原理解析
別後相思人似月,雲間水上到層城。
——《明月夜留別》(唐)李冶