4-1〔O?S?C?P? ? 研記〕? WEB應用攻擊?目錄遍歷漏洞-A

? ? 鄭重聲明:?本文所有安全知識與技術,僅用于探討、研究及學習,嚴禁用于違反國家法律法規的非法活動。對于因不當使用相關內容造成的任何損失或法律責任,本人不承擔任何責任。 如需轉載,請注明出處且不得用于商業盈利。?

? ? 💥👉點贊?? 關注🔔 收藏?? 評論💬💥?
? ? 更多文章戳👉
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/passwdC:\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?實踐技巧與進階繞過
  1. 工具使用:使用curl等命令行工具可以方便地發送編碼后的請求,避免瀏覽器自動解碼的問題。

  2. 混合編碼:有時僅對部分字符編碼(如只編碼點號.%2e)或混合使用編碼與明文字符(如..%2f)就能成功繞過。

  3. 雙重編碼:對于更嚴格的過濾器,可以嘗試對已經編碼的字符串進行二次編碼(例如,將%2e再次編碼為%252e),以繞過簡單的解碼檢測邏輯。

  4. 上下文考量:編碼的有效性取決于目標服務器/應用如何處理輸入。Apache、IIS、Nginx等對請求的解析和解碼方式存在差異,需要根據目標環境調整Payload。

1.1.5.4?防御視角
  • 安全開發:應在驗證輸入之前對輸入進行標準化(解碼),確保檢測邏輯覆蓋所有可能的字符表示形式。

  • 縱深防御:部署WAF(Web應用防火墻)時,應配置其不僅檢測明文字符,也要能識別常見的編碼變體。


💥創作不易💥求一波暴擊👉點贊?? 關注🔔 收藏?? 評論💬

您的支持是我創作最大的動力!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/923719.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/923719.shtml
英文地址,請注明出處:http://en.pswp.cn/news/923719.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux】歸檔、壓縮、用戶管理

1.歸檔tar(tape archiving program),最早是一個磁盤歸檔程序。tar命令用于文件的打包(歸檔),可以將若干😈文件或者目錄😈打包成一個文件,既利于文件管理,也方便壓縮和文件的網絡傳輸…

9.18 丑數|換根dp

lc854 偶數之間的奇數個數 差值/2 先都變成偶數 把整個范圍包起來,反正偶數不做數class Solution {public int countOdds(int low, int high) {if(low % 2 1){--low;}if(high % 2 1){high;}return (high - low) / 2;} }lc17.10摩爾投票class Solution { public:i…

PHP通過命令行調用Ghostscript把pdf轉換成圖片集

1.使用命令行在服務器上安裝Ghostscript,網上教程很多按步驟操作就行。2.使用php執行命令行。/*** 使用Ghostscript命令行轉換PDF為圖片** param string $pdfUrl PDF文件URL* param string $folderName 存儲目錄名 (默認值:wenjianming)** return ar…

Spring Boot `@Service` 互相調用全攻略:`@Autowired` vs `@Resource`

Spring Boot Service 互相調用全攻略:Autowired vs Resource 在日常寫 Spring Boot 項目的時候,經常會遇到一個問題:多個 Service 之間需要互相調用,到底該怎么寫才優雅?用 Autowired?用 Resource&#xf…

c過渡c++應知應會(2)

c過渡c應知應會(2)1.缺省參數2.函數重載3.引用4.inline1.缺省參數 缺省參數是聲明或定義函數時為函數的參數指定一個缺省值。在調用該函數時,如果沒有指定實參,則采用該形參的缺省值,否則使用指定的實參,缺…

SSH連接排故排查

文章目錄SSH連接排故排查案例1:解決思路排故過程故障模擬SSH連接排故排查 案例1: 你是某在線教育公司的運維工程師,負責維護 3 臺應用服務器。今日上午 9 點,開發團隊反饋無法通過 SSH 連接 10.1.8.10 服務器部署代碼。該服務器…

Python爬蟲實戰——使用NetNut網頁解鎖器獲取亞馬遜電商數據的入門指南

摘要在當今數字化時代,電商數據蘊含著巨大的商業價值。亞馬遜作為全球知名的電商平臺,其上的商品信息、用戶評價等數據對于市場分析、競品研究等具有重要意義。然而,由于反爬蟲機制的存在,直接獲取亞馬遜電商數據并非易事。本文將…

汽車多核架構中內存系統故障檢測的改進算法

摘要隨著半導體行業向納米級方向發展,多核架構已成為主流趨勢。然而,這一趨勢也使得多核處理器面臨諸多挑戰,在一定程度上限制了其性能發揮。目前,汽車行業中的混合安全關鍵型系統普遍采用多核處理器。為滿足新興自動駕駛等級的需…

VastBase數據庫Crash后使用gdb收集coredump信息

VastBase數據庫Crash后使用gdb收集coredump信息🐘 數據庫版本:VastBase G100 V3.0.8檢查數據庫崩潰后生成的core文件: [vbdbadbhost vastbase]$ ll -h core* -rw------- 1 vbdba vbdba 62G Aug 20 20:02 core-vastbase-162199-2025_08_20_19_…

【LeetCode 每日一題】2749. 得到整數零需要執行的最少操作數

Problem: 2749. 得到整數零需要執行的最少操作數 文章目錄整體思路完整代碼時空復雜度時間復雜度:O(1)空間復雜度:O(1)整體思路 這段代碼旨在解決一個具有數學和位運算性質的問題:給定兩個整數 num1 和 num2,找到最小的正整數 k&…

安卓開發工程師中高級知識點 —— 系統底層安全方向

一、AIDL 通信 Android Interface Definition Language 基于 Binder 實現跨進程通信(IPC),核心是通過定義接口生成代理類,屏蔽底層 Binder 通信細節 適用于跨進程服務調用(如系統服務、多App協作)。常見于后…

動環監控系統-機房高效運維

動環監控系統(全稱為動力環境監控系統)是機房高效運維的核心工具,通過集成動力、環境、安防、IT設備等模塊,結合智能告警、AI分析、3D可視化等技術,實現機房的全方位監控與管理。動力系統監控供電設備:實時…

知微傳感Dkam系列3D相機SDK例程篇:CSharp設置相機工作模式

設置3D相機觸發模式 寫在前面 本人從事機器視覺細分的3D相機行業。編寫此系列文章主要目的有: 1、便利他人應用3D相機,本系列文章包含公司所出售相機的SDK的使用例程及詳細注釋;2、促進行業發展及交流。設置觸發模式及API說明 觸發模式說明 知…

PHP 常用函數及用法

文章目錄PHP 常用函數及用法一、字符串處理函數1. 字符串基礎操作2. 字符串查找與替換3. 字符串分割與連接4. 字符串大小寫轉換5. 字符串格式化二、數組操作函數1. 數組基礎操作2. 數組遍歷與查找3. 數組修改與排序4. 數組過濾與合并三、文件操作函數1. 文件讀寫2. 文件和目錄信…

yum命令--obsoletes與--allowerasing兩者的區別

在 YUM(Yellowdog Updater Modified)包管理工具中,–obsoletes 和 --allowerasing 是兩個與包升級 / 安裝相關的選項,它們的功能和使用場景有明顯區別: 1. --obsoletes(默認啟用)作用&#xff1…

Day24_【深度學習(3)—PyTorch使用(1)—張量的創建和類型轉換】

一、創建張量1.張量基本創建方式torch.tensor 根據指定數據創建張量 (最重要)torch.Tensor 根據形狀創建張量, 其也可用來創建指定數據的張量torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 創建指定類型的張量1.1 torch.tensor# 方式一&…

阿里云圖像編輯大模型開發部署

與阿里云一起輕松實現數智化讓算力成為公共服務:用大規模的通用計算,幫助客戶做從前不能做的事情,做從前做不到的規模。讓數據成為生產資料:用數據的實時在線,幫助客戶以數據為中心改變生產生活方式創造新的價值。圖像…

查看磁盤分區并新建一個分區,掛載分區

linux系統磁盤df -h查看文件系統的磁盤的空間占用情況,常用于快速檢查磁盤使用率:df -h-h是說把磁盤空間以G位單位,如果直接用df也是可以的,只不過單位是塊,看的不明顯du -sh /home/查看/home目錄下總共占用了多大的空…

vscode單擊暫時預覽文件 雙擊持續打開文件

直接單擊文件列表中的文件,會在編輯器中以預覽模式打開 文件標簽會顯示為斜體,表示是預覽狀態 當您單擊另一個文件或開始編輯時,預覽文件會自動關閉 在 settings.json 中添加,mac通過cmd,實現。 json {"workbench.editor.ena…

設計模式-橋接模式04

什么是橋接模式? 橋接模式就是把事物的兩個方面(兩個變化的維度)分開管理,讓它們可以分別自由變化,然后通過一個“橋”把它們連接起來。舉個生活中的例子 想象一下你在買鞋子: 鞋子有不同的款式&#xff08…