? ? 鄭重聲明:?本文所有安全知識與技術,僅用于探討、研究及學習,嚴禁用于違反國家法律法規的非法活動。對于因不當使用相關內容造成的任何損失或法律責任,本人不承擔任何責任。 如需轉載,請注明出處且不得用于商業盈利。?
? ? 💥👉點贊?? 關注🔔 收藏?? 評論💬💥?
? ? 更多文章戳👉Whoami!-CSDN博客🚀
𖤐?現在,我們漸入佳境了,保持耐心,繼續前行?!?
𖤐 𝓝𝓸𝔀 𝔀𝓮'𝓻𝓮 𝓱𝓲𝓽𝓽𝓲𝓷𝓰 𝓸𝓾𝓻 𝓼𝓽𝓻𝓲𝓭𝓮, 𝓴𝓮𝓮𝓹 𝓹𝓪𝓽𝓲𝓮𝓷𝓽 𝓪𝓷𝓭 𝓴𝓮𝓮𝓹 𝓶𝓸𝓿𝓲𝓷𝓰 𝓯𝓸𝓻𝔀𝓪𝓻𝓭! ?
→ 信息收集
→ 漏洞檢測
→ 初始立足點?常見WEB應用攻擊?-----我們在這兒~?🔥🔥🔥
→?權限提升?
→ 橫向移動
→ 報告/分析
→ 教訓/修復??
目錄
1 常見WEB應用攻擊
1.1 目錄遍歷漏洞
1.1.1 絕對路徑 vs 相對路徑
1.1.2 目錄遍歷攻擊原理
1.1.3 Linux目錄遍歷漏洞的識別與利用
1.1.4?Windows目錄遍歷攻擊要點
1.1.4.1 Windows與Linux的差異
1.1.4.2 攻擊流程與技術要點
1. 漏洞探測與確認
2. 常見敏感信息路徑
3.Windows路徑分隔符的利用策略
4. 挑戰與難點
1.1.4.3 防御與測試建議
1.1.5?利用URL編碼繞過目錄遍歷過濾機制
1.1.5.1 繞過原理
1.1.5.2?編碼變換
1.1.5.3?實踐技巧與進階繞過
1.1.5.4?防御視角
💥創作不易💥求一波暴擊👉點贊?? 關注🔔 收藏?? 評論💬
1 常見WEB應用攻擊
Web開發是當前IT領域需求最高的技能之一,然而多種安全漏洞在各類Web應用程序中反復出現。無論使用何種技術棧,這些常見漏洞都可能存在于已部署的應用程序中。主要攻擊類型包括:
-
📁 目錄遍歷?- 通過操縱文件路徑訪問未授權資源
-
📄 文件包含漏洞?- 包含惡意文件執行代碼
-
?? 文件上傳攻擊漏洞?- 上傳惡意文件獲取系統訪問權
-
? 命令注入?- 在輸入中注入系統命令執行
1.1 目錄遍歷漏洞
1.1.1 絕對路徑 vs 相對路徑
絕對路徑:
特性 | 說明 |
---|---|
完整路徑 | 指定包括所有子目錄在內的完整文件系統路徑 |
全局引用 | 可以從文件系統的任何位置引用絕對路徑 |
起始標識 | 以斜杠(/)開頭,指定從根文件系統開始 |
示例演示:
# 查看當前目錄
pwd
# 輸出: /home/kali# 列出根目錄下的所有文件和目錄
ls /
# 輸出包含: etc, home, usr, var等# 使用絕對路徑訪問/etc/passwd
cat /etc/passwd
相對路徑:
特性 | 說明 |
---|---|
相對當前位置 | 路徑相對于當前工作目錄 |
使用特殊符號 | 使用../ 返回上級目錄 |
靈活組合 | 可組合多個../ 訪問不同層級 |
示例演示:
# 列出上級目錄(/home)的內容
ls ../# 列出根目錄的內容(通過兩級上級目錄)
ls ../../# 使用相對路徑訪問/etc/passwd
cat ../../etc/passwd
1.1.2 目錄遍歷攻擊原理
目錄遍歷(Directory Traversal)是一種常見的Web安全漏洞,攻擊者通過構造特殊的路徑參數,訪問Web根目錄以外的敏感文件。當Web應用程序未對用戶輸入(特別是包含../
的路徑)進行充分過濾或消毒時,此類攻擊便可能發生。
關鍵機制:
-
Web服務器通常將特定常見的目錄(如Linux系統中的
/var/www/html
)設置為Web根目錄。 -
正常訪問:
http://example.com/file.html
?→ 服務器解析為/var/www/html/file.html
。 -
存在漏洞時:攻擊者可通過無限次使用
../
回溯至根目錄,再結合常見Web路徑猜測,訪問如:SSH私鑰、配置文件等敏感資源。
路徑遍歷技巧
-
使用多個
../
:通過添加大量../
確保到達根目錄../../../../../../etc/passwd
-
編碼特殊字符:使用URL編碼繞過簡單過濾,在發送http請求的時候進行URL編碼,
%2e%2e%2f = ../ %2e%2e/ = ../ ..%2f = ../
防御措施:
-
輸入驗證:嚴格驗證用戶提供的路徑參數
-
規范化檢查:檢查路徑是否包含
../
等特殊序列 -
權限限制:Web服務器進程以最小權限運行
-
白名單機制:只允許訪問特定目錄下的文件
1.1.3 Linux目錄遍歷漏洞的識別與利用
由于篇幅所限,本內容見下一篇:"4-2〔O?S?C?P? ? 研記〕? WEB應用攻擊?目錄遍歷漏洞-B"。
1.1.4?Windows目錄遍歷攻擊要點
1.1.4.1 Windows與Linux的差異
特性 | Linux 系統 | Windows 系統 |
---|---|---|
測試文件 | /etc/passwd | C:\Windows\System32\drivers\etc\hosts |
路徑分隔符 | 正斜杠 (/ ) | 反斜杠 (\ ),URL中需注意編碼 |
提權路徑 | 清晰(獲取私鑰→SSH登錄) | 困難,缺乏直接等效方法 |
信息收集 | 相對標準 | 高度依賴對系統和應用的深入研究 |
1.1.4.2 攻擊流程與技術要點
1. 漏洞探測與確認
-
首選測試文件:用
C:\Windows\System32\drivers\etc\hosts
作為證明漏洞存在的標志文件。 -
路徑遍歷符號:Windows 使用?
..\
來回溯目錄層級。 -
分隔符嘗試:由于 Web 應用程序解析方式的差異,必須同時嘗試正斜杠 (
../
) 和反斜杠 (..\
)?或其各種編碼形式(如?..%5c
),以最大化成功幾率。
2. 常見敏感信息路徑
在Windows上成功利用目錄遍歷漏洞的核心在于精準定位包含敏感信息的文件。這需要攻擊者具備豐富的知識儲備。
信息類型 | 關鍵文件路徑 | 價值 |
---|---|---|
IIS 服務器配置 | C:\inetpub\wwwroot\web.config | 可能包含數據庫連接字符串、API 密鑰、身份驗證憑據等。 |
應用程序配置文件 | 依賴具體應用(如?appsettings.json ,?config.ini ) | 同上,是獲取應用層面敏感信息的主要來源。 |
IIS 訪問日志 | C:\inetpub\logs\LogFiles\W3SVC1\*.log | 包含敏感請求數據、管理后臺地址、甚至是明文傳輸的憑證。可用于進一步攻擊。 |
操作系統文件 | C:\Windows\System32\config\SAM | 存儲用戶密碼哈希,但通常被系統鎖定,無法通過 Web 讀取。 |
其他用戶數據 | C:\Users\[用戶名]\Desktop\passwords.txt ?(示例) | 依賴管理員疏忽,或存在任意敏感文件。 |
3.Windows路徑分隔符的利用策略
①路徑分隔符差異
Windows和Web在路徑表示上存在根本性差異,這是Windows目錄遍歷攻擊的特殊之處:
環境 | 標準路徑分隔符 | URL中的表現 |
---|---|---|
Windows 文件系統 | 反斜杠 (\ ) | 需要經過編碼或轉換 |
Web (RFC 1738) | 正斜杠 (/ ) | 原生支持 |
這種差異導致了許多Web應用程序的輸入過濾邏輯可能存在缺陷,為我們提供了繞過機會。
②經典方法(直接使用反斜杠)
在攻擊Windows目標時,不應只依賴一種分隔符,而應嘗試多種組合:
示例:
http://example.com?file=..\..\..\Windows\System32\drivers\etc\hosts
-
風險:應用程序可能直接過濾了反斜杠字符。
③URL編碼繞過(推薦嘗試)
示例:
http://example.com?file=..%5c..%5c..%5cWindows%5cSystem32%5chosts
-
%5c
?是反斜杠?\
?的URL編碼形式 -
優勢:可能繞過簡單的字符串過濾邏輯
④混合分隔符攻擊(高效繞過)
示例:
http://example.com?file=..//..//..//..//windows\\system32\\config\\file.txt
-
原理:混合使用?
../
?和?..\
,或者混合使用正斜杠和反斜杠 -
優勢:
-
可能繞過不完全的過濾機制,由于?
//
?只是路徑分隔符的另一種表示方式,許多 Web 服務器會忽略它。 -
不同的路徑規范化處理方式可能會意外地使這種混合路徑生效
-
⑤雙重編碼進階繞過
示例:
http://example.com?file=..%255c..%255cwindows%255csystem32%255chosts
-
%255c
?是?%5c
?的二次編碼(%
?→?%25
),即最終代表?\
-
用于繞過那些進行了多次解碼操作的過濾機制
4. 挑戰與難點
-
無法列目錄:目錄遍歷通常只能讀取已知路徑的文件,無法像本地shell一樣列出目錄內容來探索,這使得尋找敏感文件變得困難。
-
權限限制:Web 服務器進程(如 IIS 應用程序池標識)權限較低,許多關鍵系統文件(如?
SAM
)無法訪問。 -
間接利用:在 Windows 上獲取系統訪問權限比 Linux?更困難。成功往往依賴于找到配置文件中的密碼、日志中的敏感信息,或與其他漏洞(如文件上傳)結合使用,而非直接獲得遠程 shell。
1.1.4.3 防御與測試建議
-
防御方:
-
實施嚴格的輸入驗證,過濾所有?
../
、..\
?及其各種編碼形式。 -
將 Web 服務器進程的權限配置為最小權限原則。
-
定期審計服務器上的文件權限,確保敏感配置文件不被 Web 用戶讀取。
-
-
攻擊方/測試方:
-
信息收集是關鍵:首先識別 Web 服務器、開發框架、第三方組件,從而推測可能的配置文件路徑。
-
研究文檔:查閱 Microsoft IIS 文檔、常見框架(如?ASP.NET,?WordPress)的文檔,了解其默認配置和日志路徑。
-
雙重嘗試:在 Payload 中同時使用正斜杠和反斜杠進行測試。
-
重點目標:優先嘗試讀取?
web.config
?和 IIS 日志文件,這最可能快速獲得回報的路徑。
-
1.1.5?利用URL編碼繞過目錄遍歷過濾機制
1.1.5.1 繞過原理
? ? ? 當常規的目錄遍歷序列(如../
)被Web應用程序、服務器或防火墻過濾時,URL編碼(百分比編碼)?提供了一種有效的繞過手段。其核心原理在于:
-
過濾機制缺陷:安全防護層通常只檢測明文字符(如
../
),而可能忽略它們的編碼表示(如%2e%2e/
)。 -
解碼時機差異:編碼后的請求在通過過濾器后,會被Web服務器或應用程序本身解碼并解釋為有效指令。
1.1.5.2?編碼變換
通過對關鍵字符進行編碼,可以繞過簡單的字符串過濾:
明文字符 | URL編碼 | 作用 |
---|---|---|
. ?(點) | %2e | 替代目錄遍歷中的點號 |
/ ?(斜杠) | %2f | 替代路徑分隔符 |
\ ?(反斜杠) | %5c | 在Windows目標中替代路徑分隔符 |
示例Payload:
-
明文:
../../../etc/passwd
-
編碼后:
%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd
1.1.5.3?實踐技巧與進階繞過
-
工具使用:使用
curl
等命令行工具可以方便地發送編碼后的請求,避免瀏覽器自動解碼的問題。 -
混合編碼:有時僅對部分字符編碼(如只編碼點號
.%2e
)或混合使用編碼與明文字符(如..%2f
)就能成功繞過。 -
雙重編碼:對于更嚴格的過濾器,可以嘗試對已經編碼的字符串進行二次編碼(例如,將
%2e
再次編碼為%252e
),以繞過簡單的解碼檢測邏輯。 -
上下文考量:編碼的有效性取決于目標服務器/應用如何處理輸入。Apache、IIS、Nginx等對請求的解析和解碼方式存在差異,需要根據目標環境調整Payload。
1.1.5.4?防御視角
-
安全開發:應在驗證輸入之前對輸入進行標準化(解碼),確保檢測邏輯覆蓋所有可能的字符表示形式。
-
縱深防御:部署WAF(Web應用防火墻)時,應配置其不僅檢測明文字符,也要能識別常見的編碼變體。
💥創作不易💥求一波暴擊👉點贊?? 關注🔔 收藏?? 評論💬
您的支持是我創作最大的動力!