2018强网杯之opm

0x01程序分析

2018强网杯之opm_第1张图片

程序开启了PIE,说明got表和plt表位置需要通过泄露得到。

题目一共可以存放下标为0-9一共10个role,游全局变量0x202130存放。Add函数添加role的管理结构,并将该结构指针存放于全局变量0x2020e0中。输入“S”则调用print的函数指针显示role管理结构所指向的内容。

2018强网杯之opm_第2张图片

Add函数,为每一个添加的role分配一个结构用于管理,并将该结构地址返回存放于全局变量0x2020e0中。

2018强网杯之opm_第3张图片

0x02利用思路

Add函数中第一个gets用来修改name指针存放的位置,第二个gets修改显示的内容。

  泄露heap地址

通过变量覆盖修改role[1]的指针为0x55xxxx0050,将role[1]的信息存放到0x55xxxx

你可能感兴趣的:(2018强网杯,CTF-PWN-堆溢出,CTF-PWN-栈溢出)