自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 BUUCTF pwn 五月刷题

actf_2019_babystack典型的stack pivot,告诉了输入时候栈的地址,我们可以通过伪造ebp,通过两次leave将esp指向开始时候的栈地址。注意的是这里system("/bin/sh")有问题,换了one gadget才成功,不是很清楚为什么。from pwn import *context.log_level = "debug"context.terminal ...

2020-05-04 10:23:23 767

原创 BUUCTF pwn 四月刷题

BUUCTF四月刷题[OGeek2019]bookmanager这道题程序看似比较复杂,实际上好好分析程序的结构和逻辑之后,还是一个堆溢出,在updata函数中更新text时候可以更新0xFF长度的内容,造成溢出。这类题比较重要的是一定要弄清楚程序中的各种结构再下手。libc泄漏的手段还是通过small bin free进unsorted bin之后打印出main_arena附近的地址;ge...

2020-04-07 16:23:29 916 1

原创 babyfengshui_33c3_2016题解

这道题还是比较基础的堆题,泄漏libc和get shell都比较基础。需要注意的是以下几点:输入长度限制的绕过方法值得学习一下。泄漏libc时将free got表中写入puts.plt是不可行的,因为这道题的输入结束时候会带上\x00,这样就会破坏free got表的下一项fgets got,导致程序运行失败。我最后本机上运行成功,但是远程打不通,后来经过发现是因为libc的版本不一样,导...

2019-12-09 23:08:36 950

原创 安恒2018.10 level1思路讲解

程序功能分析主程序是一个菜单,只有两个选项。一个是create,另一个是show。没有关于free的函数,所以可能会用到house of orange的技术来创造一个unsorted bin。int play(){ int choice; // eax int result; // eax help(); choice = get_choice(); if ( choi...

2019-12-08 11:27:43 463

原创 2017 insomni'hack wheelofrobots

程序分析是一个64位程序,没有开启PIE。并且是一个菜单式的程序。add robot一共有六个robot可以添加。可以看到,添加一个robot,会在bss端上写入一个指向robot name的指针,in use位。并且每次的选择也是写入bss端上。还有一个count来限制add robot的次数,最多3次。这里有个漏洞。choice读入的时候能向bss端上读入五个字节。观察bss结构的...

2019-12-04 10:25:22 280

原创 2016 ZCTF note2 题解

程序分析先查看程序开启的保护,可以看到没有开启PIE。并且也是一个经典的菜单程序。new note函数可以看到,我们一共能申请四个堆块,堆块的指针,数量都存储在bss端上。我们能申请超过0x80的堆块,并在其中写入内容,这里的大小被限制了。但是我们进入my_read函数后就能发现for循环的条件中,size为int类型,而i是unsigned int类型。我们都知道,在c语言中,无符号变...

2019-12-01 16:30:57 971 2

原创 2014 hack.lu oreo

程序分析这是一个经典的菜单程序checksecadd函数建立了一个rifle结构体。struct rifle { description //从0字节开始 name //从25字节开始 pre_rifle_ptr //从52字节开始} //总共56字节并且注意到description和name都能读入56个字节,也就是说pre_rifle_ptr是能被完全控制的。并且有一...

2019-11-25 19:24:24 492

原创 2015 9447 CTF : Search Engine

程序分析index a sentence首先读入size大小的sentence,数据读入到malloac出的一个chunk中。对sentence中的每个word建立对应的结构体,也是分配到堆中,结构体中的组成为:struct word { word ptr //指向每个word的起始地址 word size //每个word的大小 sentence ptr //指向句子的起始地址...

2019-11-25 16:55:20 547 2

原创 HITCON-training lab 10 hacknote题解

基本信息首先,我们通过checksec来查看程序的基本信息和开启的防护。该程序是一个32位程序,并且开启了canary和nx。运行程序之后发现是一个菜单类型的程序。静态分析add note函数首先申请了一个8字节的chunk,其指针记录在bss段上。这个8字节的内容是一个结构体struct node { 指向print note content函数的指针 指向content的指针...

2019-11-19 23:25:53 781

原创 off by one --- Asis CTF 2016 b00ks题解

确定漏洞点首先,checksec查看开了哪些保护,其中PIE会使我们的调试难度稍稍增加。再执行程序之后是一个经典的菜单选择,可以大概判断是与堆的利用有关。通过用ida反编译之后查看,发现有一个关于读的函数会多读入一个\x00,造成了一个null off by one的漏洞。程序分析create 函数创建了book name的堆创建了book description的堆创建了b...

2019-11-18 19:17:07 643

翻译 malloc用到的系统调用

malloc用到的系统调用malloc在调用的过程中会用到brk和mmap这两个系统调用来获取内存。brkbr调用k通过增加program break location(brk)地址来获取内存。初始的时候brk地址和start_brk地址指向同一个地址。When ASLR is turned off, start_brk and brk would point to end of data...

2019-11-08 10:01:59 1586

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除