其他数据库的注入

MSSQL 数据库注入的利用

内置函数

函数名功能
host_name()返回计算机名称
current_user返回当前数据库的用户名
db_name()返回当前数据库的名称
substring()字符串截取函数
char()ASCII 转字符函数
isnull()判断查询是否为 null,有则替换
@@version()查看数据库版本
cast(text as type)字符类型转换,如果转换失败会 将 text 结果报错显示在页面上GOK
object_id()根据表名返回数据库表ID
object_name()根据 ID 返回数据库表名
col_name ( object_id , column_id )返回指定表中指定字段(列)的名称

内置系统表

表名功能
Sysdatabases该表只保存在 master 数据库中,这个表中保存的是所有的库名。 主要字段有: name:数据库名。
SysobjectsSQL Server 中的每个数据库内都有此系统表,存放着数据库所有的表名。 主要字段有: name,id,xtype分别是表名,表 ID,创建的对象。 当 xtype = ‘U’ 代表是用户建立的表
Syscolumns该表位于每个数据库中,存放着数据库所有的字段名。 主要字段有:name,id分别是字段名称,表 ID ,其中的 ID 是用sysobject得到的表的ID号

Oracle 数据库注入的利用

内置函数和常用函数

函数名功能
lenth()返回字符串的长度
count()返回在给定的选择中被选的行数
ascii()表示将字符转换为 ASCII 码
substr()返回值为源字符串中指定起始位置和长度的字符串
chr()表示将 ASCII 码转换为字符
sys.stragg()单行中获取所有行信息 eg:sys.stragg(username||'--')用–作为分隔符

特殊表

表名功能
dual是一个虚拟的表,用来构成 select 的语法规则,oracle 保证 dual 里面永远只有一条记录。(万能表)
user_tables该表的 table_name 列存放着当前数据库的所有表。
user_tab_columns该表的 column_name 存放着表的所有列

小结一下:

有时候,我们只能读取一行,我们需要用top进行过滤,那么举个例子:

http://192.168.200.128/artshow.aspx?id=7 and 1=(select top 1 name from sysobjects where xtype=0x75 and name not in(select top 24 name from sysobjects where xtype=0x75))

这里的top 24指的是前24行。事实上,我们读取的就是第25行的数据。

具体的注入方法查看前面两个博客。

sql注入之Get:
点击查看

sql注入之Bool盲注
点击查看

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值