-
-
[原创]2019深思杯PWN题解
-
发表于:
2020-10-19 14:55
7231
-
这是19年的山东省网络安全技能大赛的 PWN 题,当时放弃拯救的我,把所有能保存的题目都保存了下来,最近复现一下
首先有一个检测,要把 key 找出来才能进入,使用 angr 就可以
找出来 key 是 xNd9y6
然后看一下位置,第四个
然后, 程序有一个后门,覆盖后面要执行的一个函数的地址为它就能打印出 flag 了
完整 EXP:
free 的时候只是把存放的堆指针的地方给置为 0 了,没有把 chunk 给置为 0
fastbin double free 的时候是这么一个指针
可以把 fd 指针的最后一位改成 \x50,这样再去 malloc 的时候就能申请到 0x603050
然后 free 掉,再 malloc 回来去 show 就能显示出来,然而我们会改掉后面那一位,不过不要紧,后三位基本都是 0x00 的
然后就能计算出 malloc_hook 与 one_gadget 的地址了
在我电脑上 one_gadget 中的 0xf1207 可以用
这个 malloc_addr 是算了个偏移,为了后面申请到 malloc_hook 的时候能有个 size 位绕过检查
然后还是上面的套路,fastbin double free 把 malloc_hook 的地址改为 one_gadget
然后去申请的时候就能拿到 shell 了
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!