0%

CTFtime 上的一个比赛,外国高校 NCSU 举办的。题目比较简单(除了最后一个 Rust),但还是能学到一些新的点子。在这里简略地记录一下。

阅读全文 »

楔子

上个星期打虎符时碰见智能合约 pwn 的题直接傻眼了,赛后便开始学习区块链相关内容。主要是学习主流的智能合约编程语言 Solidity (在官方 doc 上),结合 CTF-wiki,最后在 https://ethernaut.openzeppelin.com/ 上做了几道入门题。

这次 mrctf 也出了两道区块链题,第一道找到了一些利用方法,但是限制比较多。第二道做的时候两次没有思路,问了两次出题人师傅,师傅很有耐心地指导,这题算是搞出来了。

搞 Ethereum 搞得筋疲力尽,pwn 题只做了一个最简单的。C++ pwn(notebook)看了看,涉及到侧信道攻击、C++ 中 shared_ptr 的实现。没研究透彻,就放弃了。另外两道涉及密码学的 pwn 看了几眼就放弃了。最后新上的 pwn (libc 版本是 2.32)没时间看。

总结下来还是经验不足:

  1. Solidity 和 Ethereum 了解还是太少,许多东西都要现查,一些机制完全不懂。

  2. python 的环境总是存在奇奇怪怪的问题,在 Windows 和 Ubuntu 上尝试安装 CyptoPlus,无论是 python3.8 还是 python 3.5 或是 python2,全部失败了。。。也不懂发生了什么。好在 web3 的 eth 模块没问题。

  3. ida7.5 老是抽风。完全识别不了函数指针,对 call ... 的识别出现一些奇怪的问题(导致了 sp analysis fail)。逆向能力也不足,没了 F5 我就嗝屁了。

    阅读全文 »

比赛 10:00 开始,下午 18:00 结束。开始时平台很卡,pwn 远程也是,后面好多了。flag 居然是大括号里面的部分。。。一共放出了四题,只做了两道,分别是关于 mmapchroot的。

阅读全文 »

我从 ByteCTF 的比赛 qq 群里得知中国科学技术大学的第七届信息安全大赛(Hackergame 2020)正在进行,于是昨天晚上吃完饭马上就开始干(我也只能搞搞新生赛了。。。),感觉题很有意思。这里写一写我做一道 binary 题的过程,以及后续更多的分析。

阅读全文 »

一道比较综合的堆题,漏洞只有 off by one ,保护开满, libc 版本为2.23。

特点:

  1. 程序分析比较简单,难点在于漏洞利用。
  2. 泄漏地址的方法比较巧妙(没想到)
  3. 我还发现了多次使用 unsortedbin attack 的方法。
  4. 了解了如何伪造 chunk 并绕过 _int_free 中的一系列检查
阅读全文 »

一道题,盯一天,描述的就是我当时的状态。比赛结束后看了这篇 writeup 才做出来。这道题对我来说比较新颖的点有四个:一是高版本 libc (主要是有 tcache)下的堆利用,二是 rop 可以在堆上,三是泄漏地址的一些姿势,四是 libc 中的一些奇妙的 gadget。

阅读全文 »