专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
计算机与网络安全  ·  十大先进网络安全威胁检测技术 ·  22 小时前  
51好读  ›  专栏  ›  看雪学苑

看雪.WiFi万能钥匙 CTF 2017第四题 点评及解题思路

看雪学苑  · 公众号  · 互联网安全  · 2017-06-09 18:01

正文

请到「今天看啥」查看全文



看雪 CTF2017 第四题设计思路


考点

malloc_consolidate+unlink+rop


运行环境

1. amd64(作者本地测试为kali,远程测试环境为ubuntu16.04),无libc要求,已经上传远程测试libc

2. 开启aslr


编译方式

gcc -no-pie main.c -o main ; strip main


题目说明

题目可以给出 bin 与 libc 供下载,也可以仅给出 bin 文件,通过查找 libc-db 的方式找到对应 libc 版本号(作为一只 pwn 狗,建议给出 libc,省去大家查 libc 的浪费的生命)


设计思路:

1. 首先给用户输入姓名,此时以 malloc 一个 chunk 的方式存储用户的输入

2. 给了 4 个功能,create、delete、edit、show,其中show功能无效

3. create 函数可以申请一个小于 4096 字节的 chunk,并往里面写入数据,然后置flag位为1,同时用一个全局变量 number 来记录已申请的 chunk 个数,number不得大于4。

4. delete 函数可以 free 一个指针并置 flag 位为 0,但是不检查是否已经 free 这个指针。

5. edit 检查 flag 位,只能修改已经 flag 为 1 的 chunk。

6. 数据结构如下:

漏洞点

1. uaf,在dele一个指针后没有清零,可以再次 free 这个 freed 的指针。







请到「今天看啥」查看全文