介绍一下双查询注入,什么叫双查询注入,这个有点难以解释,通俗的来说就是嵌套子查询。我们理解一下子查询,查询的关键字是select,这个大家都知道。子查询可以简单的理解在一个select语句里还有一个select,里面的这个select语句就是子查询。
这种方法适用于注入的时候没有返回位,但是有返回位的时候也适用,不过又返回位的时候就不建议在、用这个啦!返回位就是你们union select 1,2,3,4,5,6,7,8 这里是8个字段
这里显示2,4,5,6,7,8就是返回位
另外,就是要有返回mysql错误提示,php返回错误提示有两种,看下图
这是mysql返回的错误
这是php返回的错误
双注入的原理,简单一句话原理就是有研究人员发现,当在一个聚合函数,比如count函数后面如果使用分组语句就会把查询的一部分以错误的形式显示出来。
floor()和rand(),count()就不在多说啦
但是concat()函数,就来说一下,concat是一个连接函数,可以连接多个字符,例如
1concat("abc","123")="abc123"
并且支持ascii码,例如:
1concat("abc",0x22,"123")=abc"123
(0×22就是双引号,可以用来当分隔符)
这里在mysql输入
1select concat((select version()))
在concat里执行查询要用括号括起来,同时要确定只返回 一条数据,不然得用limit来保证只有一条结果 (limit 0,1 返回第一条)
(责任编辑:)