SQL注入之联合查询

原文链接:http://wyb0.com/posts/injection-of-union-select/

前提

要用联合查询进行注入则:页面必须有显示位

联合查询

union可合并两个或多个select语句的结果集,
前提是两个select必有相同列、且各列的数据类型也相同

注入步骤

  • 找注入点且得到闭合字符
  • 判断数据库类型
  • 猜解列数,得到显示位
  • 得到基本信息(如:数据库名、数据库版本、当前数据库名等)
  • 得到数据库名
  • 得到表名
  • 得到列名
  • 得到列值

1. 找到注入点得到闭合字符

《SQL注入之联合查询》 sqli1_get_closed_character.png
《SQL注入之联合查询》 sqli1_check_closed_character.png

2. 判断数据库类型

《SQL注入之联合查询》 sqli1_get_type_of_db.png

3. 猜解列数,得到显示位

《SQL注入之联合查询》 sqli1_order_by.png
《SQL注入之联合查询》 sqli1_get_display_point.png

4. 得到基本信息(数据库名、版本、数据库版本等)

《SQL注入之联合查询》 sqli1_get_base_msg.png

5. 得到数据库

《SQL注入之联合查询》 sqli1_get_db_num.png
《SQL注入之联合查询》 sqli1_get_db_name.png

6. 得到security数据库的表名

《SQL注入之联合查询》 sqli1_get_table_name.png

7. 猜解列名

《SQL注入之联合查询》 sqli1_get_column_name.png

8. 猜解数据

《SQL注入之联合查询》 sqli1_get_column_value.png

点赞