首先,我们检查一下程序开了哪些缓解措施
|
接着,对程序作了简单的逆向,发现了几处漏洞点:
- 在获取
author
时,没有用\x00
截断,因为author
和pages ptr
相邻,若pages[0]
已经有数据,则会泄漏堆的指针 - 在
edit
的时候也没有使用\x00
截断,导致可能错误的计算size
,越界写 - 因为
pages
最多含有8个元素,而在add page
的时候错误的判断if ( i > 8 )
导致第九个page
的指针会覆盖掉page[0]
的size