从今天开始做实验吧的CTF习题,争取一天一道,一天一总结,做到不贪多,不糊弄,每天学习一点点,每天进步一点点。
今天做的是这个看起来有点简单这个题,是一道SQL注入的题目。用了两种方法,一种就是从url进行sql注入,一种是使用sqlmap工具。
预备知识
1. SQL中union的用法
union操作符用于合并两个或多个SELECT语句的结果集
要求:union合并的SELECT语句的结果集,必须拥有相同数量的列,列也必须拥有相似的数据类型,同时,列的顺序必须相同。
- SQL union语法
SELECT column_name(s) FROM table_name1
union
SELECT column_name(s) FROM table_name2
注意:默认地,union操作符选取不重复的值,如果允许重复,使用union all
- SQL union all 语法
SELECT column_name(s) FROM table_name1
union all
SELECT column_name(s) FROM table_name2
另外,union结果集中的列名总是等于union中第一个SELECT语句中的列名。
- 举例
China表:
E_ID | E_Name |
---|---|
01 | Zhang, Hua |
02 | Wang, Wei |
03 | Carter, Thomas |
04 | Yang, Ming |
USA表:
E_ID | E_Name |
---|---|
01 | Adams, John |