程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 安全基礎知識 細說暴庫的原理與方法(3)

安全基礎知識 細說暴庫的原理與方法(3)

編輯:關於SqlServer


     網頁提示:SQL注入流行很久了,我們找漏洞注入目的無非是想得到數據庫內的東西,比如用戶名密碼等。(當然mssql數據庫還可以借此獲得權限)。如果我們不用注入就可以得到整個數據庫,不是更好嗎?於是暴庫成了一個比注入更簡單的的入侵手段。


  為何這樣?

  這是因為網站內用了虛擬目錄,也就是說這個網站的子目錄channely並不在網站根目錄內,設置過IIS的人會知道,可以將網站目錄外的一個真實物理目錄設置為網站的虛擬目錄。也就是說,網站的相對對徑並不總是從根目錄算起,很可能在某個子目錄就指向了物理目錄。

 

  上面的結果很顯然:channely已位於H:盤的根目錄上,上面再沒有目錄。事實上,很可能網站在d:盤或e:盤,而通過IIS中設置channely虛擬子目錄指向網站根目錄以外的"H:\channely\",這裡,我們可以更清楚的看到,微軟IIS為何沒有到根目錄,只要遇上"\"就認為已到物理絕對路徑,不再往上解析的原因,就是為了處理這種網站虛擬目錄與根目錄不在一起的情況。它優先查詢每個目錄是否指向了物理路徑,如果指向了,則把它換成絕對路徑,而它上面的相對地址不再解析轉換。

  從以上分析可知,我們只有在數據庫相對地址和它的目錄絕對地址之間使用"\"("%5c"),才能達到目的。上例中,如果在第二處使用,它只會影響到IIS尋找虛擬的channely目錄地址,而conn.ASP中解析出的數據庫地H:\channely\blog、log_mdb\%29dlog_mdb%29.ASP仍是對的,當然不會暴庫。

  《再談%5c暴庫的利用》中還說了一種針對只有一級目錄的解決方法:

  "其實一級目錄我們也同樣可以成功的,我們可以通過構造一個多級目錄來達到暴庫的目的。
  如下:
http://www.target.com/noexists/..%5clist.ASP?id=1

  這樣大家就會有新的驚喜了,呵呵。"

  真的嗎?從理論上分析,這種方法是不會成功的。因為遇到"%5c"時,不再解析,所以中間構造的目錄,不論是真是假,都是不起作用的,被捨棄了,相對路徑還是到了根目錄,路徑不會出錯。

  這個網站我們先用conn.ASP方法暴出數據庫(後面將講的),說明服務器和網站設置是可以暴庫的。

  得到如下結果

  http://www.om88.com/abc/..%5cArticle_Show.ASP?ArticleID=481

  卻暴不出庫,仍得到正常頁面(換成存在的路徑結果也一樣),但圖片無法顯示。這是因為相對路徑變了,所以無法正確找到圖片路徑,但絕對路徑解析時被"%5c"捨棄了,沒有出錯,當然暴不出庫。

  二,conn.ASP暴庫大法

  這裡,conn.ASP只是表示數據庫調用文件,因為多數都是這個名字(有些網站改名,我們也視同conn.asp)。其實,這種暴庫法是最先出現的,以前很多牛人都對此進行過探討。只是在"%5c"暴庫大法出現後,倒較少有人提及。其實個人認為,"%5c"暴大法隨著服務器設置安全性的加強,用武之地會越來越少。而conn.ASP暴庫大法發揮的余地更大,可以人為構造,臭要飯的當年著名的動網大挪移實現暴庫,其實也屬於此類。

  上面http://www.om88.com/

  一例中,用"%5c"暴不出數據庫路徑,因為沒有二級目錄,但用第二種卻可以暴出。它是動力系統的。
我們再來看另外一個ASP系統一個盜帥的例子:_blank>http://www.51see.org/

  提交

  http://www.51see.org/db/user.ASP

  得到如下結果

  "Microsoft JET Database Engine 錯誤 ’80004005’

  ’d:\Hosting\wwwroot\uilady_com\htdocs\db\db\downloadwoaini12345.ASP’不是一個有效的路徑。 確定路徑名稱拼寫是否正確,以及是否連接到文件存放的服務器。

  /db/user.ASP,行6 "

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved