一、目錄掃描的定義
話說目錄掃描,指的是對一個web服務器的目錄結構進行掃描和搜索,從而獲得服務器上的敏感文件、目錄和數據。目錄掃描是一種簡單常用的信息收集技術,通常用於攻擊性的目的,也可用於對自己服務器的漏洞測試和安全狀態檢查。通過目錄掃描,黑客可以了解服務器上所安裝的Web應用、獲得需要的文件資源,或者發現文件上傳漏洞等。
目錄掃描的攻擊步驟一般如下:
1、確定目標的ip地址
2、獲得web應用的指紋
3、搜集網站的目錄名
4、測試目錄的可訪問性
5、嘗試找到web應用的漏洞
6、攻破應用突破檢查
二、目錄攻擊的類型
1、基於URL掃描的攻擊
這種掃描的原理主要是通過對頁面進行枚舉掃描獲得信息。例如我們對www.baidu.com這樣的主流網站進行url掃描,通常會發現一些隱藏目錄和文件,如果您想要做更深入的滲透測試,您可以仔細探索這些目錄和文件中所包含的內容,從中尋找網站漏洞。
//使用python,如下:
import urllib2
def openurl(xfile):
global opener
url = xfile
status = str(urllib2.urlopen(url, timeout=10).getcode())
print status+"|"+url
dsize = open("dicc.txt","rb")
baseurl = raw_input('Enter the base URL: ')
urllist = []
while True:
try:
x = dsize.next().replace("\n",'')
x = baseurl+'/'+x
urllist.append(x)
if len(urllist) == 30:
threads = []
for xfile in urllist:
t = Thread(target=openurl, args=(xfile,))
threads.append(t)
t.start()
for x in threads:
x.join()
urllist = []
except StopIteration:
break
2、基於文件名/目錄名掃描的攻擊
對於那些應用負責人經常使用的文件夾或文件名,例如「www」或「admin」,攻擊者可能會嘗試掃描這些常用的目錄。此外,他們還會嘗試使用系統默認的目錄名稱,例如「/usr」和「/etc」。
「弱目錄」通常是指可以由公共工具輕鬆發現的目錄,這些工具可以掃描延伸到互聯網上的數千個網站,以如下形式列出:
/admin/
/bak/
/data/
/datas/
/db/
/include/
/inc/
/install/
/lib/
/log/
/model/
/pay/
/source/
/template/
/tmp/
/upload/
/web/editor/
/admin/adm/
/admin00/
/admincp/
/administ/
/Administrator/
/backup/
/config/
/css/
/data/
/editor/
/file/
/manage/
/manager/
/models/
/news/
/pic/
/plugins/
/public/
/skin/
/static/
/swf/
/User/
/UserCenter/
/UserData/
/yhk/
/a/adminc/
/a/admincp/
/a/manage/
/a/system/
/admin/
/adminlogin/
/cgi-bin/
/data/
/include/
/manage/
/manage1/
/template/
/sys/
/test/
/w3ctech/
/xmlrpc/
/xmlrpc.php/
//使用bash shell,如下:
file=config.txt
url=http://www.baidu.com
while read line
do
urlfin=$url/$line/
status=$(curl -I -m 10 -o /dev/null -s -w %{http_code} $urlfin)
echo $status "-" $urlfin
done < $file
三、目錄掃描的常用工具
1、dirbuster
Dirbuster是一款Java程序,它對通過強制類型轉換和暴力枚舉兩種方式來檢測和識別用於攻擊的Web服務器中的目錄和文件。Dirbuster已經成為Kali Linux的標配之一。
它支持指紋識別、定製報告、與代理的通信等眾多高級選項。你還可以定義一些黑名單,目錄暴力枚舉時將不訪問這些目錄。
在本機上安裝好Java,然後在命令行輸入java -jar dirbuster.jar,你會看到以下窗口:
2、Wfuzz
Wfuzz也是一款強大的Web應用程序掃描器,它使用Python編寫,可以自定義Payload以及繞過它們的方法。
例如以下命令行代碼將掃描http://www.example.com/URL的頁面,並且使用Payload字典apple.txt中的字典:
wfuzz -w /path/to/payload/dict -u http://www.example.com/%FUZZ --hw 0 –hc 404,403
3、OWASP ZAP(Zed Attack Proxy)
ZAP是另一個來自OWASP的開源項目,是一款用於安全測試的集成式開發工具,它提供自動和手動的漏洞掃描方式。與很多工具不同的是,它還可以與Burp代碼上交叉引用。此外,它還具有易於使用的點-and-click界面。
四、目錄掃描的防禦方法
1、目錄權限的控制
可以使用is_dir()函數進行檢查。當文件夾的訪問控制僅限於知道該文件夾絕對路徑、文件夾名稱和訪問憑據的人員時,可減少目錄掃描攻擊!因此,內部人員可以通過其他方式獲得這些詳細信息。
使用Apache Web服務器的情況下,您可以在配置文件的<Directory>段中設置訪問權限。
2、使用隱藏文件夾來降低風險
嘗試隱藏重要的文件和目錄是一種受保護的安全技術。 將目錄的名稱更改為點(.)開頭的名稱,則可以隱藏它們以使其不可見
3、使用Web防火牆
使用Web防火牆可以阻止未經授權的訪問,如SQL注入、XSS和CSRF等攻擊向量。有幾個重要的工具,如Web Application Firewall ModSecurity和Open Web Application Security Project(OWASP)。
4、保持Web應用程序安全更新
如果服務器上存在可利用目錄掃描漏洞的應用程序,則可以利用該漏洞執行進一步的攻擊。使用漏洞掃描器可以檢測出存在漏洞的應用程序以便及時更新。
附:目錄掃描代碼示例
Python實現(使用 requests 庫)
#!/usr/bin/env python
# coding=utf-8
import requests
ext_names = ['.php', '.asp', '.aspx', '.jsp', '.html', '.zip', '.rar']
def dir_scan(url):
try:
for ext_name in ext_names:
if not url.endswith("/"):
url += "/"
vuln_url = url + "xx" + ext_name
res = requests.get(vuln_url, timeout=10)
if res.status_code == 200 and "index of /" not in res.content.lower():
print "[+] Vulnerable dir found:", vuln_url
except Exception, e:
print "[-]", e
if __name__ == '__main__':
url = raw_input("Please input url:")
dir_scan(url)
Bash實現:
#!/usr/bin/env bash
ext_names=".php .asp .aspx .jsp .html .zip .rar"
read -p "Please input url:" url
for ext_name in $ext_names; do
if [[ $url != *\/* ]]; then url=$url/; fi
vuln_url=$url"xx"$ext_name
if curl $vuln_url --connect-timeout 10 &>/dev/null; then
if ! curl -I $vuln_url --connect-timeout 10 | grep 'HTTP/1.1 404 Not Found' &>/dev/null; then
echo "[+] Vulnerable dir found:$vuln_url"
fi
fi
done
原創文章,作者:BNKCQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/362075.html