【笔记】WAHH-SQLi

 

原网址

Union攻击

当一个应用程序可能受到SQL注入侵害,并且查询的结果在应用程序的响应中显示时,关键字UNION可以用来获取数据库中其它表中的信息。这就造成了UNION攻击。

关键字UNION允许用户执行一个或多个SELECT查询,并将结果附加到原始查询。例如:

1 SELECT a, b FROM table1 UNION SELECT c, d FROM table2

这条SQL查询将返回一个包含两列的结果集,其中包含表1中a列和b列以及表2中c列和d列的值。

UNION查询有两个关键要求:

1. 各个查询必须返回相同数量的列。

2. 每列中的数据类型必须在各个查询之间兼容。

要执行UNION攻击,需要确保攻击满足以上两个要求。这通常需要我们知道:

1. 原始查询返回多少列?

2. 原始查询返回的哪些列具有适当的数据类型以保存注入查询的结果?

确定所需的列数

在执行UNION攻击时,有两种有效方法可确定从原始查询返回的列数。

第一种方法涉及注入一系列ORDER BY子句并递增指定的列索引,直到出现错误。例如,假设注入点是原始查询的WHERE子句中的带引号的字符串,提交:

1 ' ORDER BY 1--
2 ' ORDER BY 2--
3 ' ORDER BY 3--
4 ……

 

posted @ 2020-05-26 09:21  AFJ1923  阅读(172)  评论(0)    收藏  举报