Directory Traversal指的是我們可以在網頁的URL上使用 .. ../.. cat /etc/passwd等探索目錄的行為。

很容易理解的一個簡單漏洞,而會發生這個漏洞原因不外乎是當初設計網站的人忘了將目錄探索功能關閉(像是Apache的FollowSymLinks Deny all;),導致惡意人士可以透過輸入網址的方式來瀏覽web端主機內容,甚至取得全部主機資料、網站資料。

我們今天利用OWASP裡的bWAPP來熟悉這個漏洞。


Directory Traversal - Directory

先來熟悉目錄穿越的部分。

一開始我們會看到這是一個可以下載檔案的網頁,那我們試試在網址上做些修改,看是否能列出目錄。

http://172.20.10.5/bWAPP/directory_traversal_2.php?directory=documents

上列是架在我主機上的OWASP具有Directory Traversal漏洞的網頁之網址
我們可以看到網址後面已經告訴你這一頁的目錄資料夾叫做documents

那我們試試在後面加上" .. " (為上一層目錄的意思),看能否顯示出上一層目錄有什麼。
http://172.20.10.5/bWAPP/directory_traversal_2.php?directory=documents/..



有發現嗎? 跟剛剛顯示的目錄內容不一樣了,代表我們已經成功存取上一層的資料。
藉由這樣探索的方式,駭客可以將整個系統的架構摸透,以尋找後門攻擊或將整個主機資料download下來。

那既然可以使用.. 這種相對目錄的寫法,是不是我們可以使用絕對路徑的寫法?

http://172.20.10.5/bWAPP/directory_traversal_2.php?directory=documents/../../../../../etc/passwd

嗯...看來不行。 這邊使用很多..的意思是強迫回到最前面的/(根目錄)之前的意思。



那跨檔案攻擊的漏洞是另一個 (Directory Traversal - Files)。



可以看到網頁內什麼都沒有,就是叫我們去爬....
那我們試試是否可以爬到系統帳號檔案 (/etc/passwd)

http://172.20.10.5/bWAPP/directory_traversal_1.php?page=message.txt

以上是網址,可以看到我們瀏覽的網頁正是message.txt這個檔案所show出來的
那我們把message.txt改成/etc/passwd呢?
http://172.20.10.5/bWAPP/directory_traversal_1.php?page=/etc/passwd


成功! 我們成功讀取到系統所有使用者的資料了。

以上就是Directory Traversal的攻擊手法,一般來說只要控管好前端Web瀏覽權限,都可以防範這樣的攻擊。
這樣的攻擊就是利用網管的疏忽而已。

有任何問題或錯誤觀念歡迎來信,謝謝。




2016-10-02 22:06 , David in Taipei