今天看啥  ›  专栏  ›  3072

智能合约漏洞入门(10)合约中的隐藏后门

3072  · 公众号  ·  · 2024-07-24 11:02

文章预览

描述: 在这个合约中,一个表面上公平的“LotteryGame”合约被巧妙地设计成允许合约部署者/管理员拥有隐藏特权。这是通过使用汇编级别的访问存储变量实现的,其中一个裁判函数被设计为提供一个管理后门。 pickWinner 函数看起来是随机选择一个赢家,但实际上,它允许管理员设置赢家。这绕过了通常的访问控制,可以被未经授权的用户用来耗尽奖池,作为一种拔地式骗局。 攻击者可以通过编写内联汇编将智能合约作为后门进行操作。任何敏感参数都可以随时更改。 场景: 彩票游戏:任何人都可以调用 pickWinner 来获取奖金,如果你幸运的话。参考JST合约后门,许多拔地式风格的合约有类似的模式。看起来合约中没有设置赢家的函数,管理员如何能进行拔地? LotteryGame 合约: contract LotteryGame {     uint256 public prize =  1000 ;     address public ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览