今年与0x300R的小伙伴参与了 2022 QWB Final , 在这次比赛中我和小伙伴们 解决了不少 RW 题目, 而我本人参与的一共有三道路由器题、一道 RDP 提权 、 一道 VPN 题目。在此我简单记述下其中的路由器题以及 RDP 题目, 而 VPN 题目涉及一些别的事情,就不方便公开。
这里被加了检查的 size
会被赋值到 self->header_size
中, 如果我们将 size
即 self->header_size
设置成一个0x80000000
,
我们可以通过使用 trans_create
函数来做堆喷。且分配出来的 trans *self
对象拥有函数指针,我们只需覆盖 self->trans_recv
就能控制 PC。另外程序没有开启 PIE, 且程序本身有 g_execlp3
之类的执行代码的函,题目又只要求本地提权即可,所以利用思路比较清晰。
1 | .data:0044A520 aSettraceroutec:.ascii "setTracerouteCfg"<0> |