Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Phantom-Signature-Attack — 针对 CVE-2025-29774 及比特币 ECDSA 实现中 SIGHASH_SINGLE 缺陷的密码分析研究,可利用 nonce 重用恢复私钥,并通过签名伪造实现对丢失钱包的访问。 | Kitploit
工具/GitHubGitHub/demining/phantom-signature-attack
漏洞分析漏洞利用密码学论文与研究学习与教育二进制利用
GitHubdemining/phantom-signature-attack

Phantom-Signature-Attack

针对 CVE-2025-29774 及比特币 ECDSA 实现中 SIGHASH_SINGLE 缺陷的密码分析研究,可利用 nonce 重用恢复私钥,并通过签名伪造实现对丢失钱包的访问。

查看仓库
2369个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
网站
分享
幽灵签名攻击:对比特币协议中关键漏洞 CVE-2025-29774 的分析、SIGHASH_SINGLE 实现缺陷,以及用于恢复丢失加密货币钱包私钥的数学框架,从而实现对 BTC 资产的无限制控制

本研究论文对比特币协议数字签名实现中的关键漏洞进行了全面的密码分析研究,即  幽灵签名攻击  (CVE-2025-29774)以及根本性的  SIGHASH_SINGLE 处理错误。研究表明,交易签名机制中对密码学原语的不正确处理,为加密货币钱包所有者在不知情的情况下完全泄露其私钥创造了条件。该攻击利用了原始中本聪客户端中的一个遗留缺陷:当交易输入和输出数量不匹配时,系统不会拒绝签名,而是返回一个通用哈希值 “1”(uint256)。

研究的实践部分涉及使用  KeyFuzzMaster 密码学工具 ,用于系统性地识别签名验证代码、椭圆曲线运算和交易哈希函数中的漏洞。文中给出了通过 secp256k1 曲线上 ECDSA 算法中 nonce(k 参数)重用恢复私钥的数学公式。讨论了  ECDSA(椭圆曲线数字签名算法) 算法 在  secp256k1 椭圆曲线上的密码学原语。比特币中的数字签名承担三重功能:授权支出、不可否认性和保证交易完整性。


  • 教程:https://youtu.be/fGR7Iqiq8Ag
  • 教程:https://cryptodeeptech.ru/phantom-signature-attack
  • 教程:https://dzen.ru/video/watch/69682001b2d5f9209f8b4606
  • Google Colab:https://bitcolab.ru/keyfuzzmaster-cryptanalytic-fuzzing-engine

然而,为保持向后兼容性而维持的  遗留架构解决方案,导致出现了隐蔽且可能造成灾难性后果的密码学漏洞。其中, SIGHASH_SINGLE 漏洞  尤为突出   ——这是签名哈希生成机制中的一个根本性缺陷,源自原始 Bitcoin Core 实现,并被整合进网络共识。


幽灵签名攻击:对比特币协议中关键漏洞 CVE-2025-29774 的分析、SIGHASH_SINGLE 实现缺陷,以及用于恢复丢失加密货币钱包私钥的数学框架,从而实现对 BTC 资产的无限制控制

🔴 已报告的漏洞

CVE 标识符组件CVSS 分数严重性
CVE-2025-29774xml-crypto / SIGHASH_SINGLE9.3严重
CVE-2025-29775xml-crypto DigestValue 绕过9.3严重
CVE-2025-48102GoUrl 比特币支付网关(存储型 XSS)5.9中等
CVE-2025-26541CodeSolz WooCommerce 网关(反射型 XSS)6.1中等

2. 比特币密码学的理论基础

2.1 椭圆曲线 secp256k1 与 ECDSA

比特币 使用由 SECG(高效密码学标准组织)标准定义的  secp256k1 椭圆曲线。该曲线由有限域上的魏尔斯特拉斯方程定义:

曲线方程:

y² ≡ x³ + ax + b (mod p)

对于 secp256k1: 

y² ≡ x³ + 7 (mod p),其中 a = 0,b = 7

secp256k1 曲线的参数由元组 T = (p, a, b, G, n, h) 决定:

secp256k1 参数:

p = 2²⁵⁶ − 2³² − 977 (定义有限域的素数)

n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
(曲线点群的阶,即生成元 G 的整数阶)

G = (Gₓ, Gᵧ) — 固定基点(生成元)

2.2 ECDSA 数字签名生成算法

ECDSA 算法 使用私钥  d  对消息 M 生成签名。签名过程涉及以下数学运算:

步骤 1:生成随机 nonce k
选择一个加密强度高的随机数 k ∈ [1, n-1]

步骤 2:计算点 R
R = k × G(生成元点的标量乘法)

步骤 3:计算参数 r
r = Rₓ mod n(点 R 的 x 坐标对 n 取模)

步骤 4:计算参数 s


s = k⁻¹ × (H(M) + r × d) mod n

结果:签名 (r, s)

其中 H(M) 是消息 M 的哈希(在比特币中使用双重 SHA-256),d 是所有者私钥。

💡 关键密码学关系

公钥与私钥之间的关系由以下关系确定:

Q A  = d A  × G

其中  是公钥(曲线上的点),  是私钥 (256 位整数) , 是曲线生成元。QAdAG


3. 关键漏洞 SIGHASH_SINGLE

3.1 比特币中的签名哈希类型

比特币 协议 提供了若干  SIGHASH 类型 (签名哈希类型),用于确定交易的哪些组成部分被包含在签名哈希中:

SIGHASH 类型含义(十六进制)描述
SIGHASH_ALL0x01对交易的所有输入和输出进行签名。
SIGHASH_NONE0x02所有输入均已签名,输出未签名。
SIGHASH_SINGLE0x03仅对与输入具有相同索引的输出进行签名。
SIGHASH_ANYONECANPAY0x80修饰符:仅对当前输入进行签名

3.2 漏洞的数学本质

下载工具