平台:platform.cyclens.tech/activity/1
week1
flag逻辑:
传入一个guess与secret拼接后进行sh3_256编码要求编码后的前3位与secret编码后的前三位一致。
突破点:
题目中未校验传入guess是否为空,所以可以直接传入空值绕过。
Week2
flag逻辑:
清空butt代币。
突破点:
闪电贷还款时未校验用户还款资产与借款资产是否一致,所以可以借用butt代币,返还其他代币绕过还款逻辑,实现清空池子中butt代币。
week3
flag逻辑:
坏选举人超过21票。
突破点:
所有人可投票成为竞选者,可以任意设置自己地址,获取投票权函数可以任意调用,通过注册成为竞选者设置坏选举人地址后,重复调用投票逻辑投大于21票即可绕过。
week4
flag逻辑:
账户余额大于等于200。
突破点:
可以无限制获取vault所以可无限出售土豆获取余额,同时做土豆函数未限制外部合约调用可编写外部合约增加限制实现出售土豆不成功回滚,提高效率。
week加餐
flag逻辑:
资产为空。
突破点:
置换函数中amout_out计算方法存在bug当资产对任意一方为1时,可直接清空另一方资产,所以可以通过flashloan借出使一方资产为1的数量后,通过置换函数清空另一方资产,然后再调用flashloan借出池子剩余资产获取flag。
challenge 36
flag逻辑:
需要admin凭证。
突破点:
获取Admin凭证的函数未加任何限制,获取后直接调用领奖逻辑即可。
challenge 39
flag逻辑:
拉布布的所有者是调用者。
突破点:
1.拉布布的初始owner是合约发布者,通过钓鱼,获取其私钥调用获取flag的函数。
2.split_amt计算存在bug,u64最大值是2^64-1,2^34<<30=0,实现0元购。
contact
|
|
|
|