Home

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

Kernel再入门

kernel pwn 再入门 应该是在18年草草的学习了一下内核pwn的一些知识,现在重新入门一次,希望有所收获。 保护机制 smep & smap SMAP(Supervisor Mode Access Prevention,管理模式访问保护)和SMEP(Supervisor Mode Execution Prevention,管理模式执行保护)的作用分别是禁止内核访问用户空间的数据和禁止内核执行用户空间的代码。arm里面叫PXN(Privilege Execute Never)和PAN(Privileged Access Never)。SMEP类似于前面说的NX,不过一个是在内核态中,一个是在用户态中。和NX一样SMAP/SMEP需要处理器支持,可以通过cat /p...

Read more

Qemu学习

qemu 逃逸学习笔记 什么是QEMU QEMU是一种通用的开源计算机仿真器和虚拟器。QEMU共有两种操作模式 全系统仿真:能够在任意支持的架构上为任何机器运行一个完整的操作系统 用户模式仿真:能够在任意支持的架构上为另一个Linux/BSD运行程序。 同时当进行虚拟化时,QEMU也可以以接近本机的性能运行KVM或者Xen。 当QEMU用作虚拟器时,QEMU的优点在于其实纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,但是也正因为QEMU是纯软件实现的,因此所有指令都需要QEMU转手,因此会严重的降低性能。而可行的办法是通过配合KVM或者Xen来进行加速,目前肯定是以KVM为主。KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 QEMU 则...

Read more