discuz7.2漏洞分析

2023-11-06


参数的入口
在这里插入图片描述
这段话的意思时遍历三种提交的方法,获取参数传递的值。
在这里插入图片描述
在这里插入图片描述
有一个函数是daddslashes,跟进看一下。
在这里插入图片描述
这段代码的意思是对数据里的每一个字符都进行转义处理


漏洞产生的代码在faq.php195行
在这里插入图片描述
跟进implodeid函数,在faq.php的675行
在这里插入图片描述
这个函数的功能将数组里的值拆分出来,如图
在这里插入图片描述
到了这里我们知道,如果数组值当中存在在 / 或者 ’ ,那么在拼接sql查询语句的时候,/ 就会对后面的 ’ 进行转义或者多一个 ’ ,那么就会有一个单引号闭合不了,从而造成报错注入。
那么来看一下$groupids这个参数是从哪里传进来的
往上找,在faq.php的190行

在这里插入图片描述

由第一步分析知$gids是可以由我们传递的。
$gids就是我们构造传入的变量,从以上分析可以看出 全局对传入的参数进行了处理单引号会对 ‘ 处理为 /‘

在这里插入图片描述

这段代码是第一次调用$gids参数,把整段代码删除之后,发现还是发生了注入,证明这段代码并没有对数据进行过滤啥的。

第二次调用就到了sql语句执行的时候了。

因为KaTeX parse error: Expected 'EOF', got '&' at position 42: …load为gids[98]='&̲gids[99][0]=) o…action=grouppermission,所以构造完整的payload为
/faq.php?action=grouppermission&gids[98]=’&gids[99][0]=) or UpdateXML(50,concat(0x7e,(select group_concat(authkey) from uc_applications where appid=1),0x7e),1)%23’)

在这里插入图片描述
至于为什么要用二维数组,看以下代码
在这里插入图片描述
每次遍历取变量的第一个值,gids[98]的第一个值为/,gids[99][0]的第一个值为
) or UpdateXML(50,concat(0x7e,(select group_concat(authkey) from uc_applications where appid=1),0x7e),1)%23’),这两个值放进同一个数组,
至于为什么是从标号98开始,而不是从0开始,看以下分析
在这里插入图片描述
这段代码钟,如果 c g d a t a [ 0 ] = = ’ m e m b e r ’ 则 执 行 i f 里 的 代 码 , 否 则 执 行 e l s e 里 的 代 码 , 测 试 得 知 , cgdata[0]==’member’则执行if里的代码,否则执行else里的代码,测试得知, cgdata[0]==memberifelsecgdata[0]的值为system,所以gids[1]被占用了
所以最小是从gids[2]开始构造我们的payload
在这里插入图片描述
漏洞产生的原因
在这里插入图片描述
在这个函数进行切分的时候,并没有考虑到数组的数据当中有/,可以加一个判断过滤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

discuz7.2漏洞分析 的相关文章

  • Markdown 语法完全指南

    这里写目录标题 简介 1 标题 2 段落和换行 3 文本样式 粗体和斜体 删除线和代码 嵌套标记 4 链接 内联链接 引用链接 5 列表 无序列表 有序列表 嵌套列表 任务列表 6 引用块 7 插入图片 8 水平线 9 代码块 10 表格
  • Ubuntu22.04.1 Server版本 配置C++开发环境----笔记

    远程ssh 没记错在安装 server版的时候是可以选的 如果没有就执行安装命令 sudo install openssh server y 下载完成后配置端口22 vim etc ssh ssh config 重启ssh sudo ser
  • 模型选择、欠拟合和过拟合

    训练误差 training error 模型在训练数据集上表现出的误差 泛化误差 generalization error 模型在任意一个测试数据样本上表现出的误差的期望 常常通过测试数据集上的误差来近似 机器学习模型应该关注泛化误差 模型
  • 《STL源码剖析》学习笔记2——神奇的__type_traits

    标签 C C STL 学习 笔记 在STL中为了提供通用的操作而又不损失效率 我们用到了一种特殊的技巧 叫traits编程技巧 具体的来说 traits就是通过定义一些结构体或类 并利用模板类特化和偏特化的能力 给类型赋予一些特性 这些特性
  • ZYNQ 库函数学习之SPI

    SPI是串行外设接口 Serial Peripheral Interface 的缩写 是一种高速的 全双工 同步的通信总线 并且在芯片的管脚上只占用四根线 节约了芯片的管脚 同时为PCB的布局上节省空间 提供方便 正是出于这种简单易用的特性
  • 登录界面——渗你千千万万遍

    常见的登录界面的渗透测试思路 声明 未授权情况下攻击站点属于非法行为 请不要进行任何非授权的网络攻击 由于传播 利用本文所提供的信息而造成的任何直接或间接的后果及损失 均由使用者本人负责 文章作者不为此承担任何责任 求生欲拉满 前言 大家都
  • Game101现代计算机图形学入门学习笔记(七)

    光线追踪 一 光线追踪 1 为什么要使用光线追踪 二 基础光线追踪算法 1 光线 2 光线投射 1 着色过程 3 递归光线追踪 Whitted Style 1 基本过程 2 光线 表面相交 1 光线方程 3 轴对称包围盒 AABB 1 Un
  • 指针作函数返回值

    include
  • SpringCloud Alibaba应用

    目录 1 服务注册中心 1 1 nacos服务注册与发现 1 1 1 springcloud集成nacos服务注册中心 2 服务配置中心 2 1 nacos服务配置中心 3 远程调用 3 1 openfeign远程调用 4 网关服务 4 1
  • Object.setPrototypeOf()

    Object setPrototypeOf 子对象 父对象 运行结束后 子对象 proto 指向 父对象 setPrototypeOf就是更换对象的 原型对象
  • Qiskit API架构介绍(一)

    API是一组类 函数和数据结构 用于与设备和模拟器进行接口 并运行实验 Qiskit实验概述 Qobj中的实验序列定义了运行在后端backend上的量子操作 单个Qobj定义了一批要并发运行的实验 即 Qobj中每个实验按列出的顺序运行一个
  • 【尚硅谷】SSM框架之SSM学习笔记

    MyBatis MyBatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis 2010年6月这个项目由Apache Software Foundation迁移到了Google Code 随着开发团队转投
  • 《Web应用安全权威指南》学习笔记

    第1章 什么是Web应用的安全隐患 第2章 搭建试验环境 邮件发送服务器Postfix POP3服务器Dovecot SSH服务器OpenSSH Web应用调试工具Fiddler 第3章 Web安全基础 HTTP回话管理 同源策略 Cook
  • Cpp学习——类与对象3

    目录 一 初始化列表 1 初始化列表的使用 2 初始化列表的特点 3 必须要使用初始化列表的场景 二 单参数构造函数的隐式类型转换 1 内置类型的隐式类型转换 2 自定义类型的隐式类型转换 3 多参数构造函数的隐式类型转换 4 当你不想要发
  • Git-第一章:Git概述

    第一章 Git概述 Git 是一个免费的 开源的分布式版本控制系统 可以快速高效地处理从小型到大型的各种 项目 Git 易于学习 占地面积小 性能极快 它具有廉价的本地库 方便的暂存区域和多个工作流分支等特性 其性能优于 Subversio
  • JavaWeb学习笔记-part1

    互联网通信 什么是互联网通信 两台计算机通过网络实现文件共享行为 就是互联网通信 互联网通信中的角色划分 客户端 用于发送请求的计算机 服务端 用于接受请求 并满足请求的计算机 互联网通信模型 C S通信模型 client software
  • 2022全国职业技能大赛-网络安全赛题解析总结④(超详细)

    2022全国职业技能大赛 网络安全赛题解析总结 自己得思路 模块A 基础设施设置与安全加固 20分 模块B 网络安全事件响应 数字取证调查和应用安全 40分 模块C CTF夺旗 攻击 20分 模块D CTF夺旗 防御 20分 有什么不懂得可
  • centos7 Jumpserver堡垒机部署以及使用详情

    一 跳板机 堡垒机的概念 1 跳板机 跳板机就是一台服务器 运维人员在使用管理服务器的时候 必须先连接上跳板机 然后才能去操控内网中的服务器 才能登录到目标设备上进行维护和操作 跳板机的缺点 仅仅实现服务器登录安全 但是没有实现对于运维人员
  • MyBatis学习笔记整理详细

    MyBatis笔记 写在前面 欢迎来到 发奋的小张 的博客 我是小张 一名普通的在校大学生 在学习之余 用博客来记录我学习过程中的点点滴滴 也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获 希望大家多多关照 我们一起成长一起进步 也
  • C 库函数 - mktime()

    描述 C 库函数 time t mktime struct tm timeptr 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数 发生错误时返回 1 声明 下面是 mktime 函数的声明 time

随机推荐

  • 2.代码片断收集-字符串拼接

    上面是我创建的群聊 欢迎新朋友的加入 1 基本信息 mycode 收录一些简单的代码片段 Gitee com 克隆链接 mycode 收录一些简单的代码片段 目的 记录和收集一些常用的代码片段 同时也欢迎网友提交push申请 共同完善 开发
  • 简单了解下什么是 Web 3.0?

    英文 https medium com geekculture what is web 3 0 716f0f2272b9 翻译 杨小爱 如果您关注商业或金融新闻媒体 甚至更多 如果您关注科技新闻媒体或在 Tech Twitter 上闲逛 几
  • 【Android QR Code】开源项目:ZXing(三)二维码解码

    继续上一节的内容 本节我们将对上一节的QQ群号二维码进行解码 QQ群号二维码图片另存为后 将下载的 jpg拷贝到项目assets目录下 1 解码配置 Map
  • 【已解决】使用Appium Inspector及uiautomatorviewer无法定位浮窗内元素

    1 问题描述 当开启一个应用的画中画模式时 将会调出浮窗 此时使用Appium Inspector及uiautomatorviewer均无法定位浮窗内元素 只能对浮窗底层的Activity进行元素定位 Appium Inspector ui
  • chatgpt的第一次尝试

    openai最近很火 火的公司的市场部门都已经用chatgpt来写市场方案和产品方案了 是市场部总监在一个公寓里住着 两人昨天交流了一些有关chatgpt的认识 在市场部的影响下 开始了chatgpt的第一次试用 我试用了2个主题 一个是有
  • OCR模型DBNet-------《Real-time Scene Text Detection with Differentiable Binarization》论文,模型,代码解剖

    首先 我先对DBNet的论文进行重点翻译解释说明 之后再对整个模型进行解剖 最后再对官方源码的实现方法 关键代码进行分析 所以篇幅也比较长 之间会附带一些例子说明 让你更深刻的了解DBNet 论文解析 Abstract 基于语义分割的文本检
  • 谷歌裁员1.2万,幸存员工崩溃哭泣

    1 月 20 日 谷歌母公司Alphabet首席执行官桑达尔 皮查伊宣布裁员 裁员人数相当于公司全球员工总数的 6 左右 1 2 万人 2022 2023 中国开发者大调查 重磅启动 欢迎扫描下方二维码 参与问卷调研 更有 iPad 等精美
  • 正常计算机的c盘空间多大,电脑C盘应该留多大空间?

    机械硬盘 不管是500G 1TB 2TB 4TB win7 还是win10系统统一60G就行 C盘大小为 60G 固态硬盘 两种情况 一种是120G 一种是240G及以上 120G硬盘 C盘为120G 整个硬盘为一个区 240硬盘及以上 C
  • 服务器配置openssl支持 https 访问

    一 Windows apache 下 软件是xampp 说明 部分参考 http blog sina com cn s blog 5d7dbbdd0101042n html 首先要载入 mod ssl 1 将证书生成的配置文件 http t
  • MFC---CComboBox控件添加字符串函数InsertString

    InsertString 在列表的指定位置插入一项 需使用成员函数InsertString 函数有两个参数 第一个参数为索引号 设定为 1时 项目条被插入到列表的末尾 第二个参数与AddString 函数的唯一参数相同 为代表项目条中内容的
  • python中字典考题_python 字典一些常见的魔法方法以及遇到的面试题

    一 字典介绍 dict 类型不但在各种程序里广泛使用 它也是 Python 语言的基石 模块的命名空间 实例的属性和函数的关键字参数中都可以看到字典的身影 跟它有关的内置函数都在 builtins dict 模块中 正是因为字典至关重要 P
  • 对标大厂标准,C站(CSDN)软件工程师能力认证正式上线

    2021年3月1日 中国专业IT开发者社区CSDN 以下简称C站 正式推出 C站软件工程师能力认证 该认证与国际标准接轨 面向全球IT开发者学习成长 同时具备标准全开源 系统化学习 真实业务场景 完全上机实操 所有过程留痕 存档不可篡改等特
  • 【Leetcode】61. 旋转链表

    题目描述 给你一个链表的头节点 head 旋转链表 将链表每个节点向右移动 k 个位置 题解 旋转链表 找倒数第k个节点 翻转前后链表 执行用时 0 ms 在所有 Java 提交中击败了100 00 的用户 内存消耗 37 8 MB 在所有
  • 重磅, GPT 4.0 API 全面开放使用!普通人也能用上 4.0 了 !

    伴随着人工智能领域的迅猛发展 GPT 4 0作为一款关键的智能模型 备受国内开发者和企业的瞩目 本文旨在为您提供详实的指南 帮助您在国内顺利获取并使用GPT 4 0 API 从而踏上智能应用创新之路 我们将为您提供一步一步的操作步骤和必要的
  • 【ts】数组、联合数据类型、类型推论

    一 ts约束数组 1变量 类型 let arr Number 1 3 3 4 arr push 1 arr push he 不能添加数组中没有约束的类型 2 数组泛型 变量 Array lt 类型 gt let arr Array
  • DasViewer加载大疆智图、CC等三维模型无空间坐标的解决方法

    对于大疆智图处理生成的terra osgbs文件夹下的三维模型包含了带有空间参数的metadata xml文件 利用DasViewer打开Model osgb模型文件 显示比较模糊 不能够达到实际应用的目的 我是利用转格式工具进行格式转换生
  • python 执行js脚本报错CryptoJS is not defined

    直接在js代码加上一行定义CryptoJS就行了 function encrypt e const CryptoJS require crypto js var b bGVhcm5zcGFjZWFlczEyMw var a new Base
  • 【Spring实战】—— 7 复杂集合类型的注入

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 之前讲解了Spring的基本类型和bean引用的注入 接下来学习一下复杂集合类型的注入 例如 List Set Map等 对于程序员来说 掌握多种语言是基本的技能 我们这里
  • 在本地以Docker方式安装和运行Kafka

    文章目录 在本地以Docker方式安装和运行Kafka 前言 用Bitnami kafka的镜像 用wurstmeister kafka的镜像 启动Kafka 测试创建主题并读 写消息 参考文档 后记 在本地以Docker方式安装和运行Ka
  • discuz7.2漏洞分析

    一 参数的入口 这段话的意思时遍历三种提交的方法 获取参数传递的值 有一个函数是daddslashes 跟进看一下 这段代码的意思是对数据里的每一个字符都进行转义处理 二 漏洞产生的代码在faq php195行 跟进implodeid函数