滲透測試之敏感文件目錄探測總結
目錄掃描的介紹
目錄掃描可以讓我們發現這個網站存在多少個目錄,多少個頁面,探索出網站的整體結構。通過目錄掃描我們還能掃描敏感文件,后臺文件,數據庫文件,和信息泄漏文件等等
目錄掃描有兩種方式:
?使用目錄字典進行暴力才接存在該目錄或文件返回200或者403;?使用爬蟲爬行主頁上的所有鏈接,對每個鏈接進行再次爬行,收集這個域名下的所有鏈接,然后總結出需要的信息。
常見敏感文件或目錄
通常我們所說的敏感文件、敏感目錄大概有以下幾種:
?robots.txt?crossdomain.xml?sitemap.xml?后臺目錄?網站安裝目錄?網站上傳目錄?mysql管理頁面?phpinfo?網站文本編輯器?測試文件?網站備份文件(.rar、.zip、.7z、.tar、.gz、.bak)?DS_Store文件?vim編輯器備份文件(.swp)?WEB-INF/web.xml文件
robots.txt
robots.txt是什么?
robots.txt是一個純文本文件,在這個文件中網站管理者可以聲明該網站中不想被搜索引擎訪問的部分,或者指定搜索引擎只收錄指定的內容。當一個搜索引擎(又稱搜索機器人或蜘蛛程序)訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,那么搜索機器人就沿著鏈接抓取。
robots.txt的作用?
?引導搜索引擎蜘蛛抓取指定欄目或內容?網站改版或者URL重寫優化時候屏蔽對搜索引擎的不友好的鏈接?屏蔽死鏈接、404錯誤頁?屏蔽無內容、無價值頁面?屏蔽重復頁面,如評論頁、搜索結果頁?引導蜘蛛抓取網站地圖
robots.txt的語法?
?User-agent: (定義搜索引擎)示例:
User-agent: * (定義所有搜索引擎)
User-agent: Googlebot (定義谷歌,只允許谷歌蜘蛛爬行)
User-agent: Baiduspider (定義百度,只允許百度蜘蛛爬行)
不同的搜索引擎的搜索機器人有不同的名稱,谷歌:Googlebot、百度:Baiduspider、MSN:MSNbot、Yahoo:Slurp。?Disallow: (用來定義禁止蜘蛛爬行的頁面或目錄)示例:
Disallow: / (禁止蜘蛛爬行網站的所有目錄"/"表示根目錄下)
Disallow:/admin (禁止蜘蛛爬取/admin目錄)
Disallow: /abc.html (禁止蜘蛛爬去abc.html頁面)
Disallow: /help.html (禁止蜘蛛爬去help.html頁面)?Allow:(用來定義允許蜘蛛爬取的頁面或子目錄)示例:
Allow: /admin/test/ (允許蜘蛛爬取admin下的test目錄)
Allow: /admin/abc.html (允許蜘蛛爬去admin目錄中的abc.html頁面)
img
crossdomain.xml
跨域,顧名思義就是需要的資源不在自己的域服務器上,需要訪問其他域服務器。跨域策略文件是一個xml文檔文件,主要是為web客戶端(如Adobe Flash Player等)設置跨域處理數據的權限。打個比方說,公司A部門有一臺公共的電腦,里面存放著一些資料文件,專門供A部門內成員自己使用,這樣,A部門內的員工就可以訪問該電腦,其他部門人員則不允許訪問。如下圖:
img
A部門的員工可以任意訪問A部門的公共電腦,但是不能直接訪問B部門的公共電腦。有一天,B部門領導覺得他們的資料非常有用,想要與A部門分享,于是就給A部門一個令牌,這樣A部門的員工也可以訪問B部門的公共電腦了。A部門可訪問B部門設置訪問權限,這個權限設置就是跨域策略文件crossdomain.xml存在的意義。
crossdomin.xml 示例文件如下,重點查看allow-access-from字段獲取網站目錄信息
img
sitemap.xml
Sitemap 可方便網站管理員通知搜索引擎他們網站上有哪些可供抓取的網頁。最簡單的 Sitemap 形式,就是XML 文件,在其中列出網站中的網址以及關于每個網址的其他元數據(上次更新的時間、更改的頻率以及相對于網站上其他網址的重要程度為何等),以便搜索引擎可以更加智能地抓取網站。

img
源代碼泄露
.git源代碼泄露
Git是一個開源的分布式版本控制系統,在執行git init初始化目錄的時候,會在當前目錄下自動創建一個.git目錄,用來記錄代碼變更記錄等。發布代碼的時候,如果沒有把.git這個目錄刪除,就直接發布到了服務器上,攻擊者就可以通過它來恢復源代碼。
利用工具:GitHack
項目地址:https://github.com/BugScanTeam/GitHack
掃描目錄:

img
使用GitHack工具成功恢復代碼

img
.cvs源代碼泄露
CSV是一個C/S系統,多個開發人員通過中心版本控制系統來記錄文件版本,從而達到保證文件同步的目的。主要是針對CVS/Root以及CVS/Entries目錄,直接就可以看到泄露的信息。
返回根信息:http://www.example.com/CVS/Root
返回所有文件的結構:http://www.example.com/CVS/Entries
漏洞利用工具:dvcs-ripper
項目地址:https://github.com/kost/dvcs-ripper.git
運行示例:
rip-cvs.pl -v -u http://www.example.com/CVS
.svn源代碼泄露
SVN是一個開放源代碼的版本控制系統。在使用SVN管理本地代碼過程中,會自動生成一個名為.svn的隱藏文件夾,其中包含重要地方源代碼信息。網站管理員在發布代碼時,沒有使用‘導出’功能,而是直接復制代碼文件夾到WEB服務器上,這就使.svn隱藏文件夾被暴露在外網環境,可以使用.svn/entries文件,獲取到服務器源碼。
漏洞利用工具:
Seay SVN漏洞利用工具

img
SvnExploit
項目地址:https://github.com/admintony/svnExploit/
掃描站點存在/.svn/entries目錄

img
成功恢復代碼

img
.hg源代碼泄露
Mercurial是一種輕量級分布式版本控制系統,使用hg init的時候會生成.hg。
漏洞利用工具:dvcs-ripper
項目地址:https://github.com/kost/dvcs-ripper.git
運行示例:
rip-cvs.pl -v -u http://www.example.com/.hg/
.DS_store文件泄露
.DS_store是Mac下Finder用來保存如何展示 文件/文件夾 的數據文件,每個文件夾下對應一個。如果將.DS_store上傳部署到服務器,可能造成文件目錄結構泄露,特別是備份文件、源代碼文件。
漏洞利用工具:ds_store_exp
項目地址:https://github.com/lijiejie/ds_store_exp
運行示例:
ds_store_exp.py http://xxx.com/.DS_Store
網站備份文件泄露
管理員將網站源代碼備份在Web目錄下,攻擊者通過猜解文件路徑,下載備份文件,導致源代碼泄露。常見的備份文件后綴:.rar、.zip、.7z、.tar.gz、.bak、.txt、.old、.temp
SWP文件泄露
swp即swap文件,在編輯文件時產生的臨時文件,它是隱藏文件,如果程序正常退出,臨時文件自動刪除,如果意外退出就會保留,文件名為.filename.swp。
WEB-INF/web.xml泄露
WEB-INF是Java的Web應用的安全目錄,如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對要訪問的文件進行相應映射才能訪問。
WEB-INF主要包含以下文件或目錄:
?WEB-INF/web.xml:Web應用程序配置文件,描述了servlet和其他的應用組件及命名規則?WEB-INF/database.properties:數據庫配置文件?WEB-INF/classes/:一般用來存放Java類文件(.class)?WEB-INF/lib/:用來存放打包好的庫(.jar)?WEB-INF/src/:用來存放源代碼
通過找到 web.xml 文件,推斷 class 文件的路徑,最后直接下載 class 文件,再通過反編譯 class 文件,得到網站源碼。
敏感目錄收集方式
網頁中尋找
?在robots.txt中看能否發現敏感目錄?F12源代碼鏈接處?通過查看一些圖片的屬性路徑,運氣好會發現很多隱藏的目錄 結合域名+目錄,用御劍進行掃描,當然也可以手動輸入一些常見的后臺管理地址進行訪問。
其他端口中尋找
有時候網站的不同端口中有一些便是專門的后臺管理地址。根據經驗總結,很多網站8080、8081端口是網站的管理地址。
例如:http://www.xxx.com:8080
網站分目錄下尋找
有的時候網站會把管理地址放在一個分目錄下,有的時候一個網站比較大,后臺管理頁面也比較多,就要分目錄的去找,
例如:http://www.xxx.com/test/admin/manage.php
你可以通過一些方式獲取到網站的目錄,然后在這個目錄下進行掃描。當一個網站你掃描根目錄沒有任何收獲時,這個時候通過分析網站的目錄結構,然后掃描域名+目錄,就能找出它的后臺管理地址。
子域名下尋找
有的時候網站的管理地址會放在子域名下,所以主站什么都找不到的情況下,如果發現子域名,就通過這些方法去子域名下找一下吧。
例如:http://admin.xxx.com/login
Google Hacking
Google Hacking 一般是做為黑客在入侵時的一個手段.在入侵過程中有時需要查找后臺的登陸口就需要用到Google Hacking。有時猜解密碼的時候谷歌也是提供查找管理員資料的有效平臺。是一種社會工程學獲取目標信息的手段。可以用于跟蹤某對象在網絡上的各種蹤跡(如交友平臺、微博等)。
有關谷歌語法的介紹可參考第一章的第一節:1.開源情報與搜索引擎
網站爬蟲
通過awvs,burpsuite的爬行功能,可以拓撲出網站的目錄結構,有的時候運氣好能在網頁的目錄結構中找到好東西,不過爬行一般會結合工具掃描,比如你構造域名+目錄,然后掃描這個。
burp spider爬行

img
掃描工具
御劍后臺掃描工具
御劍是一款針對網站目錄及后臺管理地址進行掃描的工具。該工具的開發思路其實是非常簡單的,而工具里目錄或者后臺管理地址等的掃描用例才是一個黑客多年經驗的結晶。

img
DirBuster
DirBuster是OWASP(Open Web Application Security Project)開發的一款專門用于探測Web服務器目錄及隱藏文件的,功能十分強大的工具。DirBuster最擅長目錄的暴力猜解,因此,DirBuster一般都會發現一些目錄瀏覽、目錄遍歷及目錄穿越等漏洞,甚至還會發現一些后臺管理地址等。

3b2fca51126d0f343b1cb86a1085d9a9.png
wwwscan
wwwscan是一款網站后臺掃描工具,簡單好用又強大。它有命令行和圖形界面兩種。

e22f74eaee18b731c5453b0e79f8e294.png
dirb
Kali Linux內置工具
dirb是一個基于字典的web目錄掃描工具,會用遞歸的方式來獲取更多的目錄,它還支持代理和http認證限制訪問的網站。
運行示例:
dirb http://www.baidu.com
dirmap
一個高級web目錄掃描工具,功能將會強于DirBuster、Dirsearch、cansina、御劍
項目地址:https://github.com/H4ckForJob/dirmap
運行示例:
python3 dirmap.py -i https://target.com -lcf
Cansina
Cansina是用python寫的一款探測網站的敏感目錄和內容的安全測試工具
項目地址:https://github.com/deibit/cansina
運行示例:
python3 cansina.py -u http://baidu.com
dirsearch
dirsearch是一個python開發的目錄掃描工具,目的是掃描網站的敏感文件和目錄從而找到突破口。
項目地址:https://github.com/maurosoria/dirsearch/
運行示例:
python3 dirsearch.py -u http://www.baidu.com -e php,js --exclude-status 403,401
weakfilescan
基于爬蟲,動態收集掃描目標相關信息后進行二次整理形成字典規則,利用動態規則的多線程敏感信息泄露檢測工具。
項目地址:https://github.com/ring04h/weakfilescan
運行示例:
python wyspider.py http://wuyun.org php