簡介
目錄掃描可以讓我們發現這個網站存在多少個目錄,多少個頁面,探索出網站的整體結構。通過目錄掃描我們還能掃描敏感文件,后台文件,數據庫文件,和信息泄漏文件等等
目錄掃描有兩種方式:
- 使用目錄字典進行暴力才接存在該目錄或文件返回200或者403;
- 使用爬蟲爬行主頁上的所有鏈接,對每個鏈接進行再次爬行,收集這個域名下的所有鏈接,然后總結出需要的信息。
常見敏感文件
1.robots.txt
2.crossdomin.xml
3.sitemap.xml
4.后台目錄
5.網站安裝包
6.網站上傳目錄
7.mysql管理頁面
8.phpinfo
9.網站文本編輯器
10.測試文件
11.網站備份文件(.rar、.zip、.7z、.tar、.gz、.bak)
12.DS_Store 文件
13.vim編輯器備份文件(.swp)
14.WEB—INF/web.xml文件
robots.txt
robots.txt 是什么?
robots.txt是一個純文本文件,在這個文件中網站管理者可以聲明該網站中不想被搜索引擎訪問的部分,或者指定搜索引擎只收錄指定的內容。當一個搜索引擎(又稱搜索機器人或蜘蛛程序)訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,那么搜索機器人就沿着鏈接抓取。
robots.txt 的作用
1、引導搜索引擎蜘蛛抓取指定欄目或內容;
2、網站改版或者URL重寫優化時候屏蔽對搜索引擎不友好的鏈接;
3、屏蔽死鏈接、404錯誤頁面;
4、屏蔽無內容、無價值頁面;
5、屏蔽重復頁面,如評論頁、搜索結果頁;
6、屏蔽任何不想被收錄的頁面;
7、引導蜘蛛抓取網站地圖;
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頁面)
crossdomin.xml
跨域,顧名思義就是需要的資源不在自己的域服務器上,需要訪問其他域服務器。跨域策略文件是一個xml文檔文件,主要是為web客戶端(如Adobe Flash Player等)設置跨域處理數據的權限。打個比方說,公司A部門有一台公共的電腦,里面存放着一些資料文件,專門供A部門內成員自己使用,這樣,A部門內的員工就可以訪問該電腦,其他部門人員則不允許訪問。如下圖:
A部門的員工可以任意訪問A部門的公共電腦,但是不能直接訪問B部門的公共電腦。有一天,B部門領導覺得他們的資料非常有用,想要與A部門分享,於是就給A部門一個令牌,這樣A部門的員工也可以訪問B部門的公共電腦了。A部門可訪問B部門設置訪問權限,這個權限設置就是跨域策略文件crossdomain.xml存在的意義。
crossdomin.xml 示例文件如下,重點查看allow-access-from
字段獲取網站目錄信息
sitmap.xml
sitmap是什么?
Sitemap 可方便網站管理員通知搜索引擎他們網站上有哪些可供抓取的網頁。最簡單的 Sitemap 形式,就是XML 文件,在其中列出網站中的網址以及關於每個網址的其他元數據(上次更新的時間、更改的頻率以及相對於網站上其他網址的重要程度為何等),以便搜索引擎可以更加智能地抓取網站。
sitmap.xml 示例如下
源代碼泄露
.git源代碼泄露
Git是一個開源的分布式版本控制系統,在執行git init初始化目錄的時候,會在當前目錄下自動創建一個.git目錄,用來記錄代碼的變更記錄等。發布代碼的時候,如果沒有把.git這個目錄刪除,就直接發布到了服務器上,攻擊者就可以通過它來恢復源代碼。
利用工具GitHack:https://github.com/BugScanTeam/GitHack
掃描目錄:
使用GitHack工具成功恢復代碼
.cvs源代碼泄露
CVS是一個C/S系統,多個開發人員通過一個中心版本控制系統來記錄文件版本,從而達到保證文件同步的目的。主要是針對 CVS/Root以及CVS/Entries目錄,直接就可以看到泄露的信息。
返回根信息:http://url/CVS/Root
返回所有文件的結構:http://url/CVS/Entries
漏洞利用工具:dvcs-ripper
github項目地址: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漏洞利用工具
掃描站點存在/.svn/entries目錄
python svnExploit-master 成功恢復代碼
.hg源代碼泄露
Mercurial 是一種輕量級分布式版本控制系統,使用 hg init的時候會生成.hg。
漏洞利用工具: dvcs-ripper
github項目地址: https://github.com/kost/dvcs-ripper
用法示例:rip-hg.pl -v -u http://www.example.com/.hg/
.DS_store文件泄露
.DS_Store是Mac下Finder用來保存如何展示 文件/文件夾 的數據文件,每個文件夾下對應一個。如果將.DS_Store上傳部署到服務器,可能造成文件目錄結構泄漏,特別是備份文件、源代碼文件。
漏洞利用工具:
github項目地址: https://github.com/lijiejie/ds_store_exp
用法示例:ds_store_exp.py http://xxx.com/.DS_Store
網站備份文件泄露rar、zip、tar.gz、7z、bak、tar
管理員將網站源代碼備份在Web目錄下,攻擊者通過猜解文件路徑,下載備份文件,導致源代碼泄露。
常見的備份文件后綴:.rar
、.zip
、.7z
、.tar.gz
、.bak
、.txt
、.old
、.temp
SWP 文件泄露
swp即swap文件,在編輯文件時產生的臨時文件,它是隱藏文件,如果程序正常退出,臨時文件自動刪除,如果意外退出就會保留,文件名為 .filename.swp。
漏洞利用:直接訪問.swp文件,下載回來后刪掉末尾的.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/ : 用來放源代碼(.asp和.php等)
通過找到 web.xml 文件,推斷 class 文件的路徑,最后直接 class 文件,再通過反編譯 class 文件,得到網站源碼。
敏感目錄收集方式
網頁中尋找
- 在robots.txt中看能否發現敏感目錄
- F12源代碼鏈接處
- 通過查看一些圖片的屬性路徑,運氣好會發現很多隱藏的目錄
結合域名+目錄,用御劍進行掃描,當然也可以手動輸入一些常見的后台管理地址進行訪問。
其他端口中尋找
有時候網站的不同端口中有一些便是專門的后台管理地址。根據經驗總結,很多網站8080、8081端口是網站的管理地址。
eg:http://www.xxx.com:8080
網站分目錄下尋找
有的時候網站會把管理地址放在一個分目錄下,有的時候一個網站比較大,后台管理頁面也比較多,就要分目錄的去找,
eg:http://www.xxx.com/test/admin/manage.php
你可以通過一些方式獲取到網站的目錄,然后在這個目錄下進行掃描。當一個網站你掃描根目錄沒有任何收獲時,這個時候通過分析網站的目錄結構,然后掃描域名+目錄,就能找出它的后台管理地址。
子域名下尋找
有的時候網站的管理地址會放在子域名下,所以主站什么都找不到的情況下,如果發現子域名,就通過這些方法去子域名下找一下吧。
eg: http://admin.xxx.com/login
google hacker
網站爬蟲
通過awvs,burpsuite的爬行功能,可以拓撲出網站的目錄結構,有的時候運氣好能在網頁的目錄結構中找到好東西,不過爬行一般會結合工具掃描,比如你構造域名+目錄,然后掃描這個。
burp spider爬行
掃描工具
御劍
dirsearch
python3 dirsearch -u url -e *
Weakfilescan
burp插件path_shadow_scanner
自動化掃描website js中的目錄信息,成功列出敏感目錄信息