风险提示:理性看待区块链,提高风险意识!
波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法
首页 > 币界资讯 > 竞争币新闻 2019-04-16 06:02:51

据区块链安全公司 PeckShield 安全盾风控平台 DAppShield 监测消息,4 月 10 日 23 点 02 分,黑客向波场竞猜类游戏 TronWow 发起攻击 1,203 次,共计获利 2,167,377 个 TRX (约 $57,148 )。PeckShield 安全人员当即展开分析发现,黑客每投注 20TRX,即可获得 1,940 个 TRX 作为回报,回报率高达 97 倍。最终,通过此次攻击,黑客共计投注 23,004 个 TRX, 获利 2,167,377 个 TRX。

此后,PeckShield 安全人员进一步深入分析发现,TronWow 合约在检查下注范围时存在缺陷,允许用户在非页面下注时构造恶意输入,从而实现稳赢的游戏结果。

原文标题:《TronWow 遭攻击详解: 黑客能稳赢且回报率高达 97 倍》

攻击细节:

TronWow 是一个典型的 dice 类游戏。玩家通过选定下注数字和押大押小来进行一轮游戏。

如下图所示,当用户在 TronWow 游戏页面中参与游戏,无论选择 Under 模式或 Over 模式,都被限制了下注数字的范围和胜率。其中

  • Under 模式可下注数字为 [2, 95],
  • Over 模式可下注数字为 [6, 99],
  • 游戏随机生成数字范围为 [1, 100],

Under 和 Over 两种模式的胜率均为 [2%, 95%],奖励倍数为【97 / 胜率百分数】。

波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法

PeckShield 安全人员在深入逆向分析 TronWow 合约时发现,TronWow 合约在检查下注范围时存在缺陷,允许用户在非页面下注时构造恶意输入。换而言之,一旦用户避开游戏页面,直接调用游戏合约的下注函数,即可设法绕过合约中的下注范围检查条件,实现 100% 胜率以及最高回报倍数(97 倍)。

下面以正常下注交易和恶意下注交易对该合约漏洞进行说明。

在 TronWow 合约代码中,函数 placeBet(uint24_betMask,uint256_commit,bytes32_r,bytes32_s) 为下注函数,参数 uint24_betMask 为玩家的下注信息。

其中正常下注交易调用 placeBet 函数时输入如下:

波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法

这是一个选择了 Under 模式且下注数字为 95 的正常交易,换而言之,当游戏生成的随机数小于等于 95 时玩家获胜。

在此交易中,参数 _betMask 的值 24321 转换成十六进制为 0x005F01,我们将其分拆为三个字节,分别如下:

波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法

其中:

  1. 0x00 为十进制 0;
  2. 0x5F 为十进制 95;
  3. 0x01 为十进制 1.

其中第一部分 0x00 表示若当该轮游戏产生的随机数计算结果处于 [0x01, 0x5f] 之间,则玩家获胜;相反,前两位不为 0x00 时表示若该轮游戏产生的随机数计算结果处于 [0x01, 0x5f] 之外,则玩家获胜。

在逆向过程中,我们将下注函数的部分汇编指令还原成伪代码,如下图所示:

波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法

阅读上述下注函数伪代码可以发现,合约只对玩家下注信息中的胜率百分数进行了检查,要求其小于等于 95,却未对下注数字做数值限制。故玩家可通过构造下注数字来绕过该检查。

下图为攻击者发起的诸多攻击交易之一:

波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法

其中 _betMask 参数被构造为 130971,十六进制为 0x01FF9B。其中前两位 0x01 表示若该轮游戏产生的随机数计算结果处于 [0x9B, 0xFF] 之外,则玩家获胜。而 0x9B、0xFF 对应的十进制分别为 155、255,则根据合约撰写的胜率百分比计算规则,winRate = 100 - (0xFF - 0x9B) + 1,即等于 1,从而成功绕过下注范围检查函数,并将本次交易的奖励倍数设置为 97。需要特别强调的是,在页面下注中,奖励倍数最高仅为 48.5 倍。

接着,我们将开奖函数 settleBet(uint256_reveal, bytes32_txHash) 的判断游戏输赢部分汇编指令还原成伪代码:

波场 DApp 再遭毒手!博彩游戏 TronWow 变提款机,Peckshield 深度讲解黑客手法

其中 rollResult 为本轮游戏的随机数计算结果,取值范围为 [1,100]。而在攻击者设置的恶意参数中,rollResult 必然处于 [155,255] 区间之外,满足赢得本轮游戏的条件,从而确保了攻击者游戏结果稳赢。

总结:

对于 TronWow 合约被攻击事件,PeckShield 安全人员分析发现:TronWow 合约在检查下注范围时存在缺陷,允许用户在非页面下注时构造恶意输入,实现 100% 胜率。需要注意的是,该漏洞已在 TronWow 上线的新版本合约中被修复,游戏方增添了对下注范围的约束检查。

在此,PeckShield 安全人员提醒广大项目方及交易所应当重视区块链世界中的任何安全问题,确保项目方及用户的资产安全可靠。安全无小事,采取不公布源代码来抵御黑客攻击的行为,在黑客面前形同虚设。DApp 开发者应杜绝侥幸心理,在合约上线前做好必要的安全措施和已知攻击特征检查,必要时可联系第三方安全公司进行漏洞排查,避免造成不必要的数字资产损失。

上一篇: Multicoin 管理合伙人 Tushar Jain 畅谈投资哲学与以太坊展望
下一篇: 星云链完成主网核心功能升级,Nebulas NOVA 正式上线
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥267,580.79
37,491.53 USDT
+5.36%
ETH以太坊
¥14,664.95
2,054.75 USDT
+3.94%
USDT泰达币
¥7.24
1.01 USDT
+0.18%
BNB币安币
¥1,802.40
252.54 USDT
+2.91%
XRP瑞波币
¥4.65
0.65120 USDT
+2.55%
USDC
¥7.14
0.99980 USDT
-0.02%
SOLSolana
¥468.73
65.68 USDT
+15.19%
OKBOK币
¥426.75
59.79 USDT
+2.36%
ADA艾达币
¥2.73
0.38270 USDT
+7.32%
DOGE狗狗币
¥0.54690
0.07664 USDT
+5.21%
热搜币种
更多
币种
价格
24H涨跌幅
dYdX
¥29.59
4.0749 USDT
+5.77%
Filecoin
¥38.55
5.3092 USDT
+9.52%
FTX Token
¥26.56
3.6583 USDT
-0.05%
PancakeSwap
¥19.13
2.6352 USDT
+4%
Solana
¥476.84
65.6763 USDT
+15.19%
奇亚
¥198.57
27.3499 USDT
+3.54%
Yield Guild Games
¥3.08
0.4238 USDT
+3.44%
Conflux
¥1.25
0.1716 USDT
+7.12%
火必积分
¥21.92
3.0188 USDT
+4.59%
Terra Classic
¥0.00
8.293E-5 USDT
+3.33%
阿童木
¥72.93
10.0449 USDT
+11.23%
Avalanche
¥163.70
22.5467 USDT
+26.85%
最新快讯
更多
SushiSwap“部署SUSHI新代币经济学”的提案开启民意调查投票
2023-11-16 12:36:38
Polytrade与OndoFinance、OpenEden建立合作伙伴关系
2023-11-16 12:25:46
Polytrade与OndoFinance等建立合作伙伴关系
2023-11-16 12:25:46
Arbitrum链上提案拟将STIP激励总预算增至7140万枚ARB
2023-11-16 12:19:30
币安与Gulf合资企业GulfBinance将于明年在泰国向公众开放服务
2023-11-16 12:10:35
Arbitrum新提案拟将STIP激励总预算增加2140万枚ARB
2023-11-16 12:08:39
币安合约将于12月15日停用WebSocket旧域名
2023-11-16 12:05:45
下载币界网APP