mysql报错注入学习笔记语句的执行

学习到mysql数据库利用报错进行注入,整理了一下个人的学习笔记,仅限于个人的理解。


数据库名- - - - - - - - - -注入语句,得到数据库名

和(选择1 (select count (*), concat(选择(选择concat (0 x7e 0 x27,十六进制(cast(数据库()作为字符)),0 x27 0 x7e))从information_schema。表限制0,1),地板(兰德(0)* 2))x 从information_schema

。表集团通过x))和1=1

,  mysql报错注入学习笔记语句的执行


数据库。表名- - - - - - - - - -注入语句,得到数据库中的表名

(选择1

(select count (*), concat(选择(选择(选择不同的concat (0 x7e 0 x27,十六进制(cast (table_name字符)),0 x27 0 x7e) information_schema。表table_schema=0 x636d73限制1,从information_schema 1))。表限制0,1),地板(兰德(0)* 2))x 从information_schema

。表group by x)

), 1=1

,  mysql报错注入学习笔记语句的执行

,,自己对表名注入语句的分析:

,,,,首先执行绿色区域之间的语句,从information_schema选择table_name。表talbe_schema=0 x636d73限制1,1。这里的0 x636d73是前面爆出的数据库名的16进制。第二步执行cast()函数,将表名转化为字符,然后执行十六进制()函数,将其转为16进制,最后执行concat()函数,将函数中括号内的内容连接起来只

,,,,浅黄语句为:选择绿色区域之间的语句;进行一次选择。含义:在浅黄语句中,执行一次绿色语句。

,,,,,浅紫色语句为:选择浅黄语从information_schema句。桌子极限0,1;含义,在浅紫色区域中执行一次浅黄语句。

,,,,下一步,concat()函数,,并将结果作为x,放到集团,后执行

,,,,下一步执行,从information_schema选择count (*)。桌子group by concat()浅紫色区域内的内容。

,,,,最终执行从前选择1面所得到的内容——深×××区域内容,解释:深×××区域会生成一个虚拟表,通过查询第一列,将深×××报错的内容显示出来。


函数的部分解释:

,,,, cast(),数据类型转换

演员(表达式,data_type),,表达任何有效的sql语句,如用于分隔两个参数,在为之前的是要处理的数据,在为之后是要转换的数据类型

data_type数据类型,


,,,, Concat ()

没有分隔的连接字符串

至少两个参数

如选择Concat (“ab”、“cd”);,



,,,, Rand()函数,产生从0 - 1之间的随机数

搭配使用,地板()

,,,,地板()

返回一个不大于x的最大整数

,

,,,, Rand ()

返回0到1之间的随机浮点数


另外,关于mysql报错注入的原理,我参考了红黑联盟的一篇文章,个人收获很大。将链接写在下面,

以备自己需要时进行查看。

,,,,,,,,,,,http://www.2cto.com/article/201604/498394.html

,


mysql报错注入学习笔记语句的执行