今年与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> |