sqli-lab(5~6详解)

本文详细介绍了SQL注入中的双注入GET方式,包括单引号字符型注入(Less-5)和双引号字符型注入(Less-6)。讲解了时间延迟型和布尔型手工注入的原理,以及如何使用concat聚合函数。同时讨论了payload的防御措施,如参数化查询和存储过程,并提到了sqlmap工具和脚本在自动化注入检测中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

**

Less-5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入)

**

知识点:1,时间延迟型手工注入;布尔型手工注入;使用concat聚合函数
2,payload原理及防御措施
3,sqlmap真香,脚本也好使

**

0x0a 时间延迟型手工注入

**

ps: 什么是时间盲注,时间盲注就是页面不会有回显,没有回显怎么办?这时候我们可以通过sleep(),让他沉睡
为什么通过sleep() 可以判断是否存在时间盲注,因为只要执行了,就说明网址存在交互,存在交互就存在漏洞
sql注入本质或者条件:
1,用户可以控制输入
2,拼接了用户输入的数据,并且去成功的执行了

即,如果语句正确就有延迟,加载慢,得等;不对,一下下就好了,可以通过浏览器的刷新提示观察延迟情况

核心语句:?id=1’ and if(报错型payload核心部分,sleep(5),1)–+

判断有无注入点

在这里插入图片描述

从源码里看到单引号包围查询语句

判断的时候闭合掉,然后sleep(x), x是几都可以,指在交互过程中,你下的睡眠命令执行时间,通过时间延迟判断盲注

在这里插入图片描述
等待5~7秒左右,没有回显,存在注入点

判断数据库长度

使用 if() 函数

if(exp1,exp2,exp3)
如果exp1语句正确,那么就会执行exp2,如果不正确,就会执行exp3
所以我们第一个exp可以写:length(database())=x
exp2: sleep(5)
exp3 : 1

这时候长度x可以用二分法(节约时间)

这时候再代入if这里面

在这里插入图片描述
二分法多试几次,最后判断为8

在这里插入图片描述
查库名

这里还是推荐二分法,不然一个个试太慢了

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

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

在这里插入图片描述
除了这个语句,还可以用substr和ascii

?id=1’ and if(ascii(substr(database(),1,1))>=50,sleep(5),1)–+
ps:这里比较的是字母的ascii值

查表名

在这里插入图片描述
这里说一下,可以选择一个个爆破,查出所有的,也可以定向爆破,我这里是定向爆破,即直接写出users表名,在limit里变,最后在limit3,1可以查询出,另一种就limit1,1),1)=’’,二分法试出1的表名,然后2,3,才能有users(所以定向爆破快(sqlmap更快。。。))

在这里插入图片描述
查列名

同上,不再啰嗦

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值