WebGoat攻略 for Mac(2)
一、题目攻略
A1.Injection(注入)
1、SQL注入(简介)
- 什么是SQL?
任务是查询Bob所在的部门。
按照下图输入SQL的查询语句。
SELECT department FROM employees WHERE first_name = 'Bob' AND last_name = 'Franco'
任务完成。
2. 数据操作语言(DML)
任务是把Tobi的部门改为销售。
按照下图输入SQL命令。
UPDATE employees SET department = 'Sales' WHERE first_name = 'Tobi' AND last_name = 'Barnett'
任务完成。
- 数据定义语言(DDL)
任务是在员工表中添加电话列。
按照下图输入SQL命令。
ALTER TABLE employees ADD phone varchar(20)
完成任务。
- 数据控制语言(DCL)
授予用户组“未经授权用户”更改表的权利。
按照下图输入SQL命令。
GRANT ALTER TABLE TO UnauthorizedUser
完成任务。
- 尝试字符串SQL注入
任务是从用户表中检索所有用户。
观察原命令可以看到" ***** last_name = ‘" + lastname + " ’ ",也就是说假如用户输入a,则命令行为: ********last_name = ‘a’。而我们的目标是使命令行变为:********last_name = ‘a’ OR ‘1’ = ‘1’,所以我们需要输入:a‘ OR ’1‘ = ’1。
分别选择:Smith’,or,‘1’ = '1,任务完成。
- 尝试数字SQL注入
任务是成功获得所有用户的信息。
通过观察可以发现,Login_Count可以是任何数,但是User_Id后面一定要是:or 1=1。
输入答案:1,1 or 1=1,任务完成。