方正畅享新闻采编系统 binary.do SQL注入漏洞分析复现

news2024/9/21 19:52:52

漏洞简介
binary.do接口的TableName参数对传入的数据没有充足的校验,导致该接口存在SQL注入漏洞,未授权的攻击者可获取数据库敏感信息。
资产测绘搜索语句
hunter:web.body="/newsedit/newsedit/"


路由与鉴权分析
通过分析web.xml配置文件,我们可以发现以下路由定义。

这里将所有以 .do 结尾的请求映射到 e5 Servlet。


定义了一个名为 e5 的 Servlet,它是 Spring MVC 的 DispatcherServlet,用于处理应用的 HTTP 请求。并且通过 load-on-startup 的配置, 将在应用启动时被优先加载。
其中定义了一系列过滤器,我们可以发现如下配置,这里配置了关于URL 入口检查的过滤器,我们知道<init-param> 元素用于定义初始化参数,这里session-not-checked 参数看名字可以知道指定了不需要进行会话检查的请求路径列表。

其中就有binary.do路由,这里对这些登录、获取资源的路由进行绕过会话检查减少服务器负担。


漏洞分析
查看相应漏洞路由代码进行分析。首先通过DBSession sess;IResultSet rs;分别获取数据库会话和查询结果集。通过getInt(request, "KeyID", 0)方法从请求中获取 KeyID 参数,然后进行判断如果 KeyID 为 0,就返回空响应。所以传入的 KeyID 不能为0。


随后通过get(request, "TableName"); 方法,获取表名get(request, "KeyName"); 获取主键名 get(request, "FieldName"); 获取字段名。然后将其拼接进sql0参数的sql语句中,通过sess = Context.getDBSession();获取数据库会话,最后通过sess.executeQuery(sql0, new Object[]{new Integer(keyID)});方法执行 SQL 查询。
通过以上分析我们可以发现传入的相应参数未经过任何过滤,直接拼接sql语句中。继续跟进executeQuery方法,可以发现最后sql语句执行被prepareStatement方法预编译,那是否就不存在sql注入呢?


回到sess.executeQuery(sql0, new Object[]{new Integer(keyID)});方法,这里执行的操作是执行一个 SQL 查询,并传递查询参数。其中查询的参数为keyID,通过前面我们知道执行的SQL查询语句sql0为 " select " + fieldName + " from " + tableName + " where " + keyName + " = ?";这里的?为后续预编译的占位符,也就是我们的查询参数keyID会被预编译无法进行sql注入。但根据前面的分析可知我们的注入点不止keyID这一个参数fieldName ,tableName ,keyName ,都是从请求中获取的参数。
继续分析后续代码的流程,我们可以知道该路由主要功能是根据传入的参数从数据库中查询图像路径,并将对应的图像文件发送到客户端。


所以这里的查询不会有回显。这里我们通过tableName 参数进行注入并通过UNION 用于将注入利用的SELECT 语句进行合并,达到sql注入的利用。

漏洞复现


由于无回显,这里我们使用WAITFOR DELAY ‘0:0:5’;使当前SQL语句执行延迟5秒进行时间盲注。可以看到响应时间超过5秒,sql语句执行了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu 安装python3 教程

本篇教程,主要介绍如何在Ubuntu上安装python3教程。 1、查看是否有python 在安装前,首先看看自己系统上,是否存在python环境,可能有些系统,默认就安装过python,如果已经有python了,可以直接跳过安装教程。 2、安装步骤 apt update && apt install -y python3 p…

【知识分享】MQTT实战-使用mosquitto客户端连接emqx服务器

一、简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、基于发布/订阅模式的通信协议&#xff0c;旨在实现物联网设备之间的低带宽、高延迟的通信。MQTT协议设计简洁&#xff0c;使用TCP/IP协议进行通信&#xff0c;适用于各种网络环境&am…

OpenGL——着色器画一个点

一、 绘制 在窗口中间画一个像素点&#xff1a; #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream>using namespace std;#define numVAOs 1GLuint renderingProgram; GLuint vao[numVAOs];GLuint createShaderProgram () {const char *v…

基于canal的Redis缓存双写

canal地址&#xff1a;alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com)https://github.com/alibaba/canal 1. 准备 1.1 MySQL 查看主机二进制日志 show master status 查看binlog是否开启 show variables like log_bin 授权canal连接MySQL账号 …

有限自动机例题

答案&#xff1a;A 解析&#xff1a; 从图中可以看出从1出发&#xff0c;有一个a的闭环&#xff0c;可以多次重复a&#xff0c;因此选项A不正确 选项B&#xff0c;如果有b&#xff0c;必然经过a回去&#xff0c;不可能出现连续的b 选项C&#xff0c;可以从图中看出&#xf…

前端学习-day14

文章目录 01-媒体查询02-媒体查询-书写顺序03-媒体查询04-媒体查询-link引入06-Bootstrap-使用07-Bootstrap-栅格系统08-Bootstrap-按钮样式09-Bootstrap-表格样式10-bootstrap组件11-bootstrap字体图标alloyTeam项目index.htmlindex.less 01-媒体查询 <!DOCTYPE html> …

数学建模算法汇总(全网最全,含matlab案例代码)

数学建模常用的算法分类 全国大学生数学建模竞赛中&#xff0c;常见的算法模型有以下30种&#xff1a; 最小二乘法数值分析方法图论算法线性规划整数规划动态规划贪心算法分支定界法蒙特卡洛方法随机游走算法遗传算法粒子群算法神经网络算法人工智能算法模糊数学时间序列分析马…

一文梳理RAG(检索增强生成)的现状与挑战

一 RAG简介 大模型相较于过去的语言模型具备更加强大的能力&#xff0c;但在实际应用中&#xff0c;例如在准确性、知识更新速度和答案透明度方面&#xff0c;仍存在不少问题&#xff0c;比如典型的幻觉现象。因此&#xff0c;检索增强生成 (Retrieval-Augmented Generation, …

Learn ComputeShader 09 Night version lenses

这次将要制作一个类似夜视仪的效果 第一步就是要降低图像的分辨率&#xff0c; 这只需要将id.xy除上一个数字然后再乘上这个数字 可以根据下图理解&#xff0c;很明显通过这个操作在多个像素显示了相同的颜色&#xff0c;并且很多像素颜色被丢失了&#xff0c;自然就会有降低分…

Open-Sora代码详细解读(1):解读DiT结构

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;目前开源的DiT视频生成模型不是很多&#xff0c;Open-Sora是开发者生态最好的一个&#xff0c;涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-S…

攻防世界 Web_php_unserialize

Web_php_unserialize PHP反序列化 看看代码 <?php class Demo { private $file index.php;public function __construct($file) { $this->file $file; }function __destruct() { echo highlight_file($this->file, true); }function __wakeup() { if ($this->…

软件测试 | 性能测试

性能测试的概念 为了 发现系统性能问题 或 获取系统性能相关指标 而进行的测试。 常见性能测试指标 并发数 即并发用户数。 从业务层面看&#xff0c;并发用户数指的是 实际使用系统的用户总数。从后端服务器层面看&#xff0c;指的是 web服务器在一段时间内处理浏览器请求而建…

服务器环境搭建-5 Nexus搭建与使用介绍

背景 本文介绍nexus的安装、配置和使用&#xff0c;之后通过案例的方式演示使用过程。 1.下载和安装 本文使用Nexus 3.x版本进行演示 下载地址&#xff1a;Download Nexus Repository OSS | Sonatype 国外网站下载速度较慢&#xff0c;也可以通过百度网盘下载(提取码:9999): …

爆改YOLOv8|利用图像分割网络UNetV2改进yolov8主干-即插即用

1&#xff0c;本文介绍 U-Net v2 通过引入创新的跳跃连接设计来提升医学图像分割的精度。这一版本专注于更有效地融合不同层级的特征&#xff0c;包括高级特征中的语义信息和低级特征中的细节信息。通过这种优化&#xff0c;U-Net v2 能够在低级特征中注入丰富的语义&#xff…

wireshark安装及抓包新手使用教程

Wireshark是非常流行的网络封包分析软件&#xff0c;可以截取各种网络数据包&#xff0c;并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括&#xff1a; 1、Wireshark软件下载和安装以及Wireshark主界面介绍。 2、WireShark简单抓包示例。通过该例子学…

JetBrains Aqua安装步骤和基本配置

一、安装步骤 下载链接&#xff1a;https://www.jetbrains.com.cn/aqua/ 1、点击下载按钮。 2、点击下载IDE&#xff0c;浏览器下载.exe。&#xff08;如果是mac或linux可选择对应的下载安装包&#xff09; 3、双击.exe文件&#xff0c;点击下一步。 4、可点击【浏览】选择安装…

在Webmin上默认状态无法正常显示 Mariadb V11.02及以上版本

OS: Armbian OS 24.5.0 Bookworm Mariadb V11.02及以上版本 Webmin&#xff1a;V2.202 小众问题&#xff0c;主要是记录一下。 如题 Webmin 默认无法 Mariadb V11.02及以上版本 如果对 /etc/webmin/mysql/config 文件作相应调整就可以再现Mariadb管理界面。 路径文件&#xff…

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接&#xff1a;https://arxiv.org/pdf/2408.16766 项目链接&#xff1a;https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架&#xff0c;以验证这个大规模数据集在风格迁移中的有益效果。…

2024年,女生到底适合转行ui设计还是软件测试?

作为2024年的就业选择来说&#xff0c;软件测试和UI设计发展都挺不错的 选择这两个方向转行的女生很多。但具体选择测试还是UI设计&#xff0c;最好还是根据你个人的兴趣爱好以及长期的发展路径去选择 比如&#xff1a;薪资、工作稳定性、后续晋升空间、学习难度等等方面~ 如…

HCIP:一次性搞定OSPF基础

OSPF 一&#xff0c; OSPF基础1. 技术背景&#xff08;RIP中存在的问题&#xff09;OSPF协议特点OSPF三张表OSPF数据表头部数据包内容&#xff1a;helloDBD&#xff08;数据库描述报文&#xff09;LSRLSULSack OSPF工作过程1. 确认可达性&#xff0c;建立邻居2-way前&#xff0…