当前位置: 首页 > news >正文

SQL布尔盲注、延迟注入和堆叠注入

什么是盲注

盲注的本质是猜解(所谓“盲”就是在你看不到返回数据的情况下能通过 “感觉” 来判断),那能感觉到什么?答案是 : 差异(包括运行时间的差异和页面返回结果的差异 )

原理

在页面中,如果正确执行了SQL语句,则返回一种页面,如果SQL语句执行错误则执行另一种页面。基于两种页面,来判断SQL语句正确与否,达到获取数据的目的

函数

Length ()函数 返字符串的长度
limit (a,b): 后缀两个参数的时候(/参数必须是一个整数常量*),其中a是指记录开始的偏移量,b是指从第a+1条开始,取b条记录
Substr ( ) 截取字符串
Ascii( ) 返回字符的ascii码
left(name.4):函数返回name的左边第二个字符
right( name.2):函数返回name的右边边第二个字符

流程

1.判断是否存在注入(单引号或双引号判断)
2.获取数据库长度
3.逐字猜解数据库名
4.猜解表名数量
5.猜解某个表长度
6.逐字猜解表名
7.猜解列名数量
8.猜解某个列长度
9.逐字猜解列名
10.判断数据数量
11.猜解某条数据的长度
12.逐位猜解数据

1.猜表名

left函数()
left(a,b)从左侧截取ad前b位
left(select database(),1)=‘s’ 截取数据库名称的第一位
判断数据库名可以用left/ascii函数,同理猜表面也是一样的
利用and left(select table_name from information_schema.tables where table_schema=database() limit 0,1),1)<‘s’ 来猜解表名

2.猜列名

利用and left(select column_name from information_schema.columns where table_table=‘users’ limit 0,1),1)<‘s’ 来猜解user表下的列名

3.爆值

利用and left(select password from users limit 0,1),2)<‘du’ 来猜解user表下的列名

延迟盲注

基于时间的盲注
函数:
sleep(n): 将程序挂起一段时间 n为n秒
if(exprl,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语
句如果错误执行第三个语句.
判断payload : and if(‘s’='s’sleep(5),1) --+
依据:正确会延迟,错误不会延迟

1.爆数据库

利用and if(left(database(),1)=‘s’,sleep(5),1) --+

2.爆表

利用and if(left((select table_name from information_schema.tables where schema_name=database() limit 1,1),1=‘s’,sleep(5),1)–+

3.爆列

利用and if(left((select column_name from information_schema.columns where table_table=‘users’ limit 4,1),6)=‘sercet’,sleep(5),1) --+

4.爆值

利用and if(left((select password from users order by id limit 0,1),4)=‘dumb’,sleep(5),1) --+ 来猜解user表下的列名

堆叠注入

sql的特性:
sql语句以;为分隔符,可以同时执行很多sql语句
Stacked injections(堆香注入)从名词的含义就可以看到应该是一堆sql语句(多条)一起执行。而在真实的运用中也是这样的,我们知道在 mysql中,主要是命令行中,每一条语句结尾加; 表示语结束。这样我们就想到了是不是可以多句一起使用。这个叫做 stacked injection。
mysqlquery0向与指定的 link identifier 关联的服务器中的当前活动数据库发送一条查询(不支持多条查询 )
mysqli multi query0 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。
堆叠注入的代码,简单利用:
判断可以利用sleep来判断,简单利用在语句后面加;然后进行任意的语句调用

相关文章:

  • Python 数据分析(PYDA)第三版(一)
  • 一、OpenAI API介绍
  • 多路服务器技术如何处理大量并发请求?
  • 探索C语言中的联合体与枚举:数据多面手的完美组合!
  • 哪种安全数据交换系统,可以满足信创环境要求?
  • 1897_野火FreeRTOS教程阅读笔记_链表
  • Mac 安装 Homebrew
  • [蓝桥杯 2022 省 A] 选数异或 题解 含源码
  • Ubuntu 命令与脚本
  • Msql-数据库死锁
  • RabbitMQ详解
  • jsp课程管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 机器学习的整个流程
  • Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案
  • LabVIEW双光子荧光显微成像系统开发
  • ➹使用webpack配置多页面应用(MPA)
  • Angular 2 DI - IoC DI - 1
  • CentOS7 安装JDK
  • create-react-app项目添加less配置
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ES6简单总结(搭配简单的讲解和小案例)
  • extract-text-webpack-plugin用法
  • JavaScript设计模式系列一:工厂模式
  • JavaScript实现分页效果
  • spark本地环境的搭建到运行第一个spark程序
  • spring security oauth2 password授权模式
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 大型网站性能监测、分析与优化常见问题QA
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 技术:超级实用的电脑小技巧
  • 深入浅出Node.js
  • 新版博客前端前瞻
  • 优秀架构师必须掌握的架构思维
  • 带你开发类似Pokemon Go的AR游戏
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​Linux·i2c驱动架构​
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (C语言)球球大作战
  • (day 12)JavaScript学习笔记(数组3)
  • (day6) 319. 灯泡开关
  • (Java数据结构)ArrayList
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一)认识微服务
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案