前言
- 0ctf 2022 nft 题目,失败的复盘,赛中调试出来了进入 verifyCoupon 后 orderid 会变成 0,但没有继续调试后面的 orderid,233333,赛后才知道了是 solidity 8.16 版本之前的 bug
- 主要漏洞原理参考 https://blog.soliditylang.org/2022/08/08/calldata-tuple-reencoding-head-overflow-bug/
- 具体就不分析了,别的师傅已经写的很好了,这里就只放出自己的 exp
- 参考 https://s3cunda.github.io/2022/09/19/0ctf-2022-NFT-Market.html
Source
1 | pragma solidity 0.8.15; |
EXP
- attack.sol
1 | pragma solidity 0.8.15; |
- python 自动化一键运行,环境为本地 ganache 测试环境
1 | from web3 import Web3, HTTPProvider |