PoCs Check

测试指南
EN

数字格式绕过测试指南

概述

数字格式绕过测试工具用于检查钱包是否能通过改变交易参数中的数字格式(十进制、二进制、十六进制、八进制)来绕过安全检查。

漏洞识别

连接您的钱包,然后测试同一值(1,000,000)的不同数字格式。

如果钱包对某些格式显示不同的安全警告或完全跳过警告,则存在漏洞。

修复建议

钱包应在进行安全检查前将所有数值标准化,确保无论采用何种数字格式都能进行一致的过滤。

以太坊网络: 主网

账户地址:

0x0000000000000000000000000000000000000000

签名结果

暂无签名记录
// JavaScript中的数字格式等价性

// 以下都表示相同的值(1000000):
console.log(1000000 === 0b11110100001001000000); // true (二进制)
console.log(1000000 === 0xF4240); // true (十六进制)
console.log(1000000 === 0o3641100); // true (八进制)

// 然而,钱包可能基于字符串模式匹配而非归一化数值进行安全检查,
// 这会导致安全漏洞。

// 钱包安全过滤器检查大数值的简单示例:
function naiveSecurityCheck(value) {
  // 这可能只检查类似 /^\d{7,}$/ 的模式来检测大数值
  // 但会遗漏其他格式的等效值
  return /^\d{7,}$/.test(value.toString());
}

console.log(naiveSecurityCheck(1000000)); // true (会触发警告)
console.log(naiveSecurityCheck(0xF4240)); // false (可能绕过警告)