CTFtime 上的一个比赛,外国高校 NCSU 举办的。题目比较简单(除了最后一个 Rust),但还是能学到一些新的点子。在这里简略地记录一下。
mrctf-2021
楔子
上个星期打虎符时碰见智能合约 pwn 的题直接傻眼了,赛后便开始学习区块链相关内容。主要是学习主流的智能合约编程语言 Solidity
(在官方 doc 上),结合 CTF-wiki,最后在 https://ethernaut.openzeppelin.com/ 上做了几道入门题。
这次 mrctf 也出了两道区块链题,第一道找到了一些利用方法,但是限制比较多。第二道做的时候两次没有思路,问了两次出题人师傅,师傅很有耐心地指导,这题算是搞出来了。
搞 Ethereum 搞得筋疲力尽,pwn 题只做了一个最简单的。C++ pwn(notebook)看了看,涉及到侧信道攻击、C++ 中 shared_ptr
的实现。没研究透彻,就放弃了。另外两道涉及密码学的 pwn 看了几眼就放弃了。最后新上的 pwn (libc 版本是 2.32)没时间看。
总结下来还是经验不足:
对
Solidity
和 Ethereum 了解还是太少,许多东西都要现查,一些机制完全不懂。python 的环境总是存在奇奇怪怪的问题,在 Windows 和 Ubuntu 上尝试安装 CyptoPlus,无论是 python3.8 还是 python 3.5 或是 python2,全部失败了。。。也不懂发生了什么。好在 web3 的 eth 模块没问题。
ida7.5 老是抽风。完全识别不了函数指针,对
call ...
的识别出现一些奇怪的问题(导致了 sp analysis fail)。逆向能力也不足,没了 F5 我就嗝屁了。
DasCTF_2021_3
比赛 10:00 开始,下午 18:00 结束。开始时平台很卡,pwn 远程也是,后面好多了。flag 居然是大括号里面的部分。。。一共放出了四题,只做了两道,分别是关于 mmap
和 chroot
的。
[GKCTF2020]GirlFriendSimulator
接触的第一道多线程题。做的过程中多次参考了 glibc 源码,有了一些自己的想法,便在此记录。
xctf_2021
什么时候。。。
全国分布式靶场演练
第一次到真正的靶场演练。虽然靶场还没完全装修好,不过还算是有模有样了。
两个ldd与动态链接器中的漏洞
我从 ByteCTF 的比赛 qq 群里得知中国科学技术大学的第七届信息安全大赛(Hackergame 2020)正在进行,于是昨天晚上吃完饭马上就开始干(我也只能搞搞新生赛了。。。),感觉题很有意思。这里写一写我做一道 binary 题的过程,以及后续更多的分析。
buuoj——rctf_2019_babyheap
一道比较综合的堆题,漏洞只有 off by one ,保护开满, libc 版本为2.23。
特点:
- 程序分析比较简单,难点在于漏洞利用。
- 泄漏地址的方法比较巧妙(没想到)
- 我还发现了多次使用 unsortedbin attack 的方法。
- 了解了如何伪造 chunk 并绕过
_int_free
中的一系列检查