ICode9

精准搜索请尝试: 精确搜索
  • [PWN]强网杯2022 house of cat2022-09-10 21:00:09

    IDA分析 一个初始化函数,然后进一个while循环,memset 一块空间往里面读入数据交给 sub_19D6 函数处理 初始化函数设置缓冲区,开了沙盒,然后把一个libc的地址存到bss段上,然后给变量 qword_4168 赋值为 64 sub_155E 函数把变量 qword_4168 的值64放到那个 libc 地址中 然后分配一块

  • 2022_长城杯决赛_babypwn2022-09-10 16:30:08

    babypwn 漏洞利用 off by null + house of apple2 EXP ''' Author: 7resp4ss Date: 2022-09-06 09:11:16 LastEditTime: 2022-09-06 15:30:23 Description: ''' from pwn import * p = process('./pwnf') context.log_level = 'de

  • 攻防世界 pwn1 题解2022-09-03 23:00:09

    攻防世界 pwn1 题解 下载附件,file命令识别文件为64位,checksec命令查看程序保护情况,如图,有Canary和NX保护。 在ida64中打开程序,程序的主要功能有两个: 存储用户输入的字符串内容 打印用户输入的字符串内容 特别的注意到,字符串数组大小为136(0x88),而read运行的最大输入大小为0x100

  • 2022 鹏程杯 pwn rainbow_cat2022-07-03 17:04:57

    2022 鹏程杯 pwn rainbow_cat 我也不知道我是怎么搞出来的,学技术还得看winmt大师博客https://www.cnblogs.com/winmt/articles/16440009.html from pwn import* context(os='linux',arch='amd64',log_level='debug') #s = process('./rainbowcat') s = remote

  • 攻防世界pwn题:Recho2022-07-02 19:04:55

    0x00:查看文件信息 一个64位二进制文件,canary和PIE保护机制没开。   0x01:用IDA进行静态分析     分析:主程序部分是一个while循环,判断条件是read返回值大于0则循环。函数atoi()是将一个字符串转换成整型数据,看栗子:   这样子v7可以由我们所决定,所以很明显第15行存在栈溢出。

  • 攻防世界-进阶练习-2021-122022-02-24 22:03:44

    WP XCTF House /proc/self/maps 和 /proc/self/mem 虚拟内存泄露 + ROP or FSOP + 栈迁移 这道题好难 保护全开 程序分析 似乎开了沙盒;检查确认下; 看来不能用execve获取shell了;试试orw。 v8 = (char *)mmap(0LL, 0x10000000uLL, 3, 131106, -1, 0LL);程序先mmap出一块可写的PRO

  • ciscn_2019_final_4(反调试+在栈上伪造堆chunk)2022-02-21 17:31:23

    程序的例行检查我就不放了,这道题我学到了从libc地址获取到栈地址的新思路 来源:(22条消息) ciscn_final_4(反调试+在栈上伪造堆chunk)_seaaseesa的博客-CSDN博客    程序漏洞很明显,uaf漏洞,这道题目开启了沙箱不允许,所以我们通过orw的方式获取到flag 这道题利用了俩个知识点,1在栈

  • 2.32 Safe-Linking 机制2022-02-20 15:35:09

    看 glibc 2.32 源码: /* Safe-Linking: Use randomness from ASLR (mmap_base) to protect single-linked lists of Fast-Bins and TCache. That is, mask the "next" pointers of the lists' chunks, and also perform allocation alignment checks o

  • rop emporium call me (x64)2022-02-10 12:31:01

    这道题惊喜点在于.so文件也可以拖到ida里逆向,服! 下面是题解过程: 左边发现奇怪的callme-one,two,three. 但是人家动态链接了,不知道内容是什么就无法利用,使用ida,把so文件拽里面 告诉我们,按这个参数就correctly了。 下面反倒过程平平无奇了 使用ROPgadget  找到三个参数的pop rdi

  • babyfengshui_33c3_20162022-01-27 18:02:13

    收获:篡改中间name数组的地址来泄露和攻击 from pwn import * context.log_level = 'debug' # context.arch = 'amd64' libc = ELF('./libc-2.23.so') file = './babyfengshui_33c3_2016' elf = ELF(file) shellcode = asm(shellcraft.sh()) local =

  • setcontext+orw2022-01-26 20:03:37

    setcontext+orw 大致可以把2.27,2.29做为两个分界点。 我们先来讨论 2.27 及以下的 setcontext + orw 的写法。 首先 setcontext 是什么?了解过 SROP 的师傅应该知道 pwntools 自带了一款可以控制寄存器值的工具。模板如下: frame = SigreturnFrame() frame.rsp = xxx frame.rdi = x

  • IO_FILE——FSOP、house of orange2022-01-19 20:31:45

    FSOP 是 File Stream Oriented  Programming 的缩写。所有的 _IO_FILE 结构会由 _chain 字段连接形成一个链表,由 _IO_list_all 来维护。而 FSOP 的核心思想就是劫持通过 _IO_list_all 的值来伪造链表和其中的 _IO_FILE 项。除了伪造数据,还有一点就是要想办法去执行,FSOP 选择的是

  • 2020 西湖论剑 pwn mmutag2022-01-19 10:34:08

    libc给的是2.23 pie没开 RELRO没开全。 栈地址堆地址都给了。 两个功能 1 2 主功能的free函数有uaf。 直接利用就好。 exp from pwn import * context(os='linux', arch='amd64', log_level='debug') r = process("./mmutag") elf = ELF("./mmutag") libc =

  • asis2016_b00ks(off-by-null *不一般)2022-01-18 17:02:41

    题目的例行检查我就不放了,将程序放入ida中      程序的输入这里有一个a1=0存在off by null  再进入add页面查看            可以看到程序申请了一个0x20大小的chunk保存着当前2chunk的地址指针和index的信息 所以我们可以通过仿造或者修改指针去达到任意申请和任意写

  • hitcon2014_stkof2022-01-12 11:02:22

    hitcon2014_stkof 使用checksec查看: 开启了Canary和栈不可执行,没有开启PIE。 先运行一下看看,发现是直接可以输入的,什么提示也没有,那么先拉进IDA中看: __int64 __fastcall main(__int64 a1, char **a2, char **a3) { int v3; // eax signed int v5; // [rsp+Ch] [rbp-74h]

  • house of force2022-01-09 10:02:52

    House of force是一个堆的小利用技巧,要想利用它需要满足两个条件: 1、可以通过溢出修改 top chunk 的 size 2、分配堆的大小没有限制 通过把 top chunk 的size 改的很大,再malloc一个特定的size,使 top chunk 的位置 恰好在目标位置 -0x10 的位置上,再进行分配时,即可分配至目标地址。

  • ciscn_2019_s_1(unlink)2022-01-08 22:33:26

    到了考试周,有半个多月没有碰pwn了,趁放假多做一点题弥补一下和pwn师傅的差距 题目的例行检查我就不放了 malloc 函数    可以看到malloc限制了chunk的大小。然后再heap处存chunk的指针便于管理 edit函数    这里存在着漏洞,read时程序没有对v2进行严格的限制存在着堆溢出,然后e

  • de1ctf_2019_weapon(爆破_IO_2_1_stdout)2021-12-15 18:00:06

    (这是我真正意义上的完完全全自己做的第一道堆题目,虽然花了快三个小时,谨以此篇纪念一下) 题目的例行检查我就不放了,将程序放入ida中    程序的逻辑十分简单,漏洞也非常明显    重点是这个程序没有给我们show函数,所以第一时间想到了爆破stdout和house of force这俩方法,但是house

  • hitcon_ctf_2019_one_punch wp2021-12-14 04:02:49

    hitcon_ctf_2019_one_punch 遇到一个比较新的题,涉及到知识盲区,在此记录一下,libc是2.29 Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled 64位程序,依旧保护是全开,具体程序的执行流程在此

  • jarvisoj_level2_x642021-12-05 22:02:26

    jarvisoj_level2_x64 查看保护 溢出,有system sh from pwn import * context(arch='amd64', os='linux', log_level='debug') file_name = './z1r0' debug = 1 if debug: r = remote('node4.buuoj.cn', 26759) else:

  • 从零开始的Linux堆利用(十)——House of Lore2021-12-01 10:34:18

    House of Lore House of Lore主要是在有UAF漏洞的情况下,通过修改smallbins的bk实现在任意位置申请smallbins的利用方法。 不过类似的思想同样也可以用在unsortedbin以及largebin上 实践 直接来看一下目标程序 程序运行起来输出了libc和堆的地址,输入一个username之后进入常规的

  • tcache poisoning(爆破stout获得libc并且熟练使用了realloc)2021-11-26 17:34:21

    这道题目帮助我学习了realloc这个函数,是一道十分经典的题目,我会尽量的把exp的每一步都说清楚 例行检查我就不放了 讲程序放入ida中   比较简单的流程,没有show功能,所有我们需要通过爆破stdout这个函数来获得libc 我先放上我学习的俩位师傅的博客 (16条消息) BUUCTF-PWN roarctf_2

  • pwn1--攻防世界2021-11-10 17:32:40

    这道题目看很多题解是使用 one_gadget  做的,还有的是使用 LibcSearcher 模块做的。我刚开始看见题目给了 libc库,但是我总是打不通。 这道题如果使用 LibcSearcher 来做就是常规的先泄露canary值后按照ret2libc来打就可以了。    来先看一下,程序的主要部分。程序是要我们输入

  • [pwnable] 3x17 wp2021-10-19 12:34:53

    title: 3x17 description: pwnable | elf文件格式 | ROP ##题目考点 elf文件格式ROP ##解题思路 先checksec,amd64,有nx(其实也有canary但没检测出来),没开PIE,拖入ida进行分析,发现扣掉了符号表; readelf -h一下,找到程序入口点,标准的start函数: ; Attributes: noreturn fuzzy-s

  • buu刷题 [HarekazeCTF2019]baby_rop2021-10-06 21:00:20

    这题给我整懵了 我打通了 但是没有flag 附源码 from pwn import * #p = process("./pwn1") p = remote("node4.buuoj.cn",27757) #context.log_level = 'debug' sys_plt = 0x400490 bin_sh = 0x601048 pop_rdi = 0x400683 ret = 0x400479 payload = b'a�

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有