Home

Aave调研报告

AAVE调研报告 项目描述 Aave是一种去中心化的基于以太坊的非托管开源协议,用户可以使用它赚取存款利息或者借入资产。同时,它还支持在无中介的情况下发放和获得贷款,首创了DEFI生态无抵押贷款模式(也就是闪电贷)。 AAVE的借贷池由管理者创建,对于每一个借贷池都对应一个特定的Atoken。用户存入的资产可以作为流动性挖矿的本金,同时也可以作为抵押借贷的抵押物。 对于投资者,想以AAVE项目获利的人来说,可以通过流动性挖矿的方式赚取稳定的收入;同时也可以通过清算抵押资产的方式来获取清算的奖励(折扣购买清算资产);也可以通过闪电贷的方式借取资产进行套利。 截止3.13日,AAVE项目在defi Pulse的排名为第四名,超过了uniswap,项目内资产超过176亿美金。 功...

Read more

Super fluid攻击事件分析

Super Fluid攻击事件分析 事件描述 Polygon 原生稳定币协议 QiDaoProtocol 官方发推称,流式数字资产协议 Superfluid 上的 QI Vesting 合约已被利用,QiDao 合约上的用户资金仍然安全,该漏洞利用仅在 Superfluid 上。 Super Fluid项目描述 概览 SuperFluid是一个部署在以太坊Layer1上的智能合约框架,使用户可以按照提前自定义的规则来转移链上资产。只需要一个交易就可以达到使资产自动的从一个地址转到另一个地址的行为。 作为一个流交易处理框架,SuperFluid最主要实现的功能就是实现交易的自动化,也就是说按照预先设定的规则自动的完成转账。由于以太坊合约本身不支持自动运行,所以流交易的自动化实...

Read more

Multichain(原anyswap)2022.1.18攻击事件分析

multichain(原anyswap)2022.1.18攻击事件分析 事件时间线 1月10日,安全公司Dedaub披露了Multichain项目的一个重要安全漏洞,并告知了厂商。 1月18日,Multichain于medium发布漏洞预警信息并转载到Twitter,文章中称发现一严重漏洞,影响6个跨链Token,呼吁代币拥有者尽快转移资产。 尽管Multichain声称已经修复了漏洞,但是在当天还是有攻击者成功窃取了445个WETH,总价值约140万美金。 1月20日,一白帽黑客声称为此次攻击负责,同意返还80%的被盗金额,留下20%为自己的小费。经过协商,此次攻击最大受害者与白帽黑客达成共识,同意支付50ETH为此次攻击的小费,剩下的被盗资金如数奉还(259ETH),该名...

Read more

智能合约的jop后门

智能合约的JOP后门 evm中的JOP类似于ROP,通常用于后门的编写。其中最著名的案例就是RWctf2018final的acoraidamonica这一道题目,本人做完后受益颇多,在此篇中详细讲讲JOP的原理以及这道题目的题解。 JOP后门原理 在讲解JOP前,首先需要知道solidity的构造函数的原理。 构造函数 当我们发送一笔交易来构造一个合约时,需要将构造合约的bytecode填入input中,这些bytecode包含了三个部分: initcode,也就是合约的构造代码,包括了一些将合约代码从calldata中copy进stack等一些操作 合约本身编译后的bytecode 构造函数的参数 我们拿一个例子: pragma solidity ^ ...

Read more

Chainflag 刷题记录

Chainflag 刷题记录 airdrop 薅羊毛 coinflip HoneyLock address :0xF60ADeF7812214eBC746309ccb590A5dBd70fc21 on ropsten. call CaptureTheFlag with base64(your email),you will receive flag. nc chall.chainflag.org 10000 代码 /** *Submitted for verification at Etherscan.io on 2019-10-08 */ pragma solidity ^0.4.24; contract P_Bank { mapping (address ...

Read more

Cve 2021 21224 分析笔记

CVE-2021-21224 分析笔记 这个漏洞是今年比较火的一个漏洞,被用在今年的hw活动中。 此漏洞发生于Simplified Lowering阶段的RepresentationChanger::GetWord32RepresentationFor函数,可以构造一个整数溢出,可以通过Array.prototype.shift()方法来构造一个长度为-1(0xFFFF_FFFF)的数组,凭借这个强大的越界数组我们可以很轻松的实现RCE。 漏洞分析 本人使用的commit版本为commit 552b9b32534a113178f716f1eefe46862539e200。 我们试着分析这个测试代码: function foo(b) { let x = -1; ...

Read more

Ethernaut

Ethernaut记录 Fallback 题目描述 Look carefully at the contract’s code below. You will beat this level if you claim ownership of the contract you reduce its balance to 0 Things that might help How to send ether when interacting with an ABI How to send ether outside of the ABI Converting to and from wei/ether u...

Read more

Rctfezheap

Rctf ezheap 32位保护全开,自己实现了个堆管理器。 malloc逻辑就是对于小于4096的chunk用一块大的内存搞,大于的话就直接mmap一块,arena里面有相应的一些数据结构管理。 在申请小于maxsize的chunk时,会在bigmem中用随机数找一个地址,如果随机数的地址被占用了,那么再随机一次,随机三次都没找到的话就重新mmap一块bigmem,各个bigmem用fdbk链接成双向链表。chunk的头部是4字节,数值为chunk加上头部大小后的真正大小|当前chunk属于的bigmem的地址,也就是说低12位为size,高20位为所属的bigmem地址。 free的逻辑大体是每个bigmem都有个类似于fastbin的单链表,free的时候就放进这个单链...

Read more