从业者-UNION攻击-从其他表中检索数据
# 实验室:SQL 注入 UNION 攻击,从其他表中检索数据
# 题目
此实验室在产品类别筛选器中包含SQL注入漏洞 (opens new window)。
查询结果在应用程序的响应中返回,因此您可以使用 UNION 攻击从其他表中检索数据。若要构建此类攻击,需要结合在以前的实验室中学到的一些技术。
数据库包含另一个名为users
的表,其中包含名为 username
和 password
的列。
若要解决实验室问题,请执行SQL注入UNION (opens new window)攻击,以检索所有用户名和密码,并使用这些信息以 administrator
用户身份登录。
- name: 实验室-从业者
desc: SQL注入UNION攻击,从其他表中检索数据 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实验室
根据题意,可得实验目标:
- 在产品类别筛选器中 执行SQL注入UNION攻击
- 检索 users 表中的列名 username 和 password,以获得所有用户名和密码
- 使用得到的信息,以 administrator 用户的身份进行登录
进入实验室
点击产品类别
使用前面所学知识,用查询空字符的方式来判断列数(也可以使用 ORDER BY)
- 此处列数为2
' UNION SELECT NULL,NULL-- qwe
1

将 NULL 替换为任意字符串,判断数据类型是否合法。页面正常显示,并且应用程序在页面中 返回了查询结果
' UNION SELECT 'abcdefg','hijklmn'-- qwe
1

根据题目中的信息,查询 users 表中的 username 和 password 字段
- 在页面中可以看到查询结果,得到3个用户名:carlos、wiener、administrator
- 以及这3个用户的密码
- 将获得的用户名和密码 保存起来
' UNION SELECT username,password from users-- qwe
1

根据题意,我们需要以 administrator 用户身份进行登录。点击 “My Account” 进入登录页面
输入刚刚获得的用户名和密码,点击登录
登录之后,实验室提示我们完成了实验
编辑 (opens new window)