首页 > 其他 > 详细

ZCTF2015 pwn试题分析

时间:2016-05-14 16:42:46      阅读:226      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!