码迷,mamicode.com
首页 > 其他好文 > 详细

ZCTF2015 pwn试题分析

时间:2016-05-14 16:43:41      阅读:1549      评论:0      收藏:0      [点我收藏+]

标签:

ZCTF的pwn赛题分析,

PWN100

这道题与SCTF的pwn100玩法是一样的,区别在于这个要过前面的几个限制条件。不能触发exit(0)。否则就不能实现溢出了。

依然是触发canary来leak出内存中的flag。

 

note1

这次ZCTF的题是以一个系列出的,以下三个题都是同一个程序。

首先看了一下程序的大概流程,这个是记事本程序。

1.New note\n
2.Show notes list\n
3.Edit note\n
4.Delete note\n
5.Quit\noption--->>

有这么5个选项。

程序也是通过5个单独的函数来实现的,

技术分享

分别对应了这几个选项。

程序不是简单的通过一个空间去储存数据的,而是把数据块组成了一个链表。

通过sub_400989也就是New note功能我们可以看到每个块的结构。

通过这张图我们可以看到

技术分享

这个块的结构应该是

struct data

{

  byte junk[16];//前16byte用途未知

  byte title[64];//偏移16~80byte处存储title的字符串

  byte type[32];//偏移80~112byte处储存type的字符串

  byte content[256];//偏移112~368byte处储存正文的字符串

}

正好就是分配的堆的0x170=368个字节,充分利用了。

用途未知的那部分应该是用来维护链表的。但是我没怎么看懂它是怎么搞的链表

ZCTF2015 pwn试题分析

标签:

原文地址:http://www.cnblogs.com/Ox9A82/p/5492698.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!