这次的 XCTF Final 总长 12 小时,有三道 pwn 题,一道为 Haskell 写成的 lisp 解释器,一道与 Intel sgx 有关。不过我都没怎么看,而是一直在看 hole 这道 v8 题。v8 一直在高速发展,由于我许久没有接触过了,所以不了解新的利用套路——即在构造了 addressOf 和 fakeObject 这两个原语后怎么实现 RCE。最后很遗憾,虽然我实现了...
最近这段时间学习了一下 Windows heap 利用,大致感触为Windows 的 heap 利用比起 Linux 要繁琐许多,因为 Windows 中并没有类似于 __free_hook 这些可以劫持执行流的指针,类似于 Linux got 表的 IAT 表也是只读的,所以要最终实现利用往往需要通过一系列冗长的 leak 找到栈地址然后 rop。Windows 闭源,虽然微软提供了 pd...
这次比赛里面出现了一个 rust pwn,到最后只有两解。我在比赛中只解出了此题,其实难度并不大,只是漏洞点光靠代码审计难以发现。这里简单分享一下我的解题过程。拿到手,先逆流程,rust 的程序反编译后比较难看,只能硬着头皮逆,不过程序没有去除符号,结构体的定义都在,相对会容易一点。首先可以分析出,在 vdq::get_opr_lst 中读取所有的操作,操作输入后反序列化到这里core::r...
这次的 D3 出了两道题,有些师傅觉得第二题 d3bpf-v2 是对 d3bpf 出现非预期的修补,其实并不是。两道题都是入门级的 ebpf 利用题(因为我也只是初学者不可能出的难到哪里去),第一题用的 kernel 版本着实有点奇怪,受到许多 CVE 影响,有些师傅只用了公开的 exp 改改偏移就出了。第二题则是因为新版本的 kernel 中加入了 mitigation,旧的利用方式失效,...