0%
ctf-201809 re writeup
TP-Link wr886nv6 固件解析
前言
最近看了@小黑猪的一篇关于TP-Link wr886nv7固件初步分析的文章,由于之前很少分析基于VxWorks系统的固件,所以按照文章的思路动手重现了一下整个过程。
使用binwalk
初步分析
从TP-Link官网下载wr886
的固件,由于没有找到v7版本的固件,所以下载的是v6版本的固件。对下载的压缩包进行解压,然后使用binwalk
对文件wr886nv6.bin
进行分析,如下。
asis-ctf-2016 pwn 之 b00ks
Solve baby_mips with angr
2015强网杯pwn之shellman
堆溢出原理
相比栈溢出而言,堆溢出的原理类似,但是堆溢出的利用则更复杂,因为glibc
堆管理机制比较复杂。
堆溢出的利用主要围绕在bin
中free chunk
的合并过程,在两个free chunk
的合并过程中,有两次改写地址的机会。例如,对于将要合并的chunk P
,在合并发生时,glibc
将chunk P
从binlist
中unlink
掉,其中涉及到以下指针操作:
1 | FD = P -> fd; // FD为相对于P下一个chunk的地址 |