ICode9

精准搜索请尝试: 精确搜索
  • hitcon_ctf_2019_one_punch2021-09-05 16:35:33

    hitcon_ctf_2019_one_punch 总结 仍然是tcache stash unlink的利用,这里总结两种思路: 任意地址分配时,先放5个,然后再凑2个出来 写堆地址的时候,放6个,伪造一下bk即可 利用思路 只有punch分支才能用malloc,其他分支都是calloc,因此要想办法使得punch的条件成立,即tcaceh bin[0x220]的个

  • bbctf_2020_write2021-09-05 16:35:06

    bbctf_2020_write 总结 题目可以任意地址写任意值,但是没有退出,因此可以考虑劫持rtld_global结构体中的一些函数指针。 利用exit函数的两个hook,同时观察寄存器状态,构造system("/bin/sh")拿shell。 这里出现的rtld_global结构体,可以伪造,可以修改。比如在house of banana中就能利用

  • jarvisoj_itemboard2021-09-05 16:33:51

    jarvisoj_itemboard 总结 基础的UAF的题,只记录下exp吧。 Exp from pwncli import * cli_script() p:tube = gift['io'] elf:ELF = gift['elf'] libc: ELF = gift['libc'] def new(name, length, desc): p.sendlineafter("choose:", "

  • nsctf_online_2019_pwn12021-09-05 16:31:46

    nsctf_online_2019_pwn1 总结 根据本题,学习与收获有: 当off by one遇到calloc的时候,需要多次布局让2个指针,指向同一个0x70的chunk,然后一个先释放,然后利用unsorted bin的分割,使得fd变为main_arena + 88,再用另一个指针去修改fd劫持stdout结构体 分配chunk的时候,可以尽可能的小,对chun

  • R0pbaby2021-08-28 17:34:20

    64位elf,程序无canary,无relro 程序如下(已经重命名): __int64 __fastcall main(int a1, char **a2, char **a3) { int v3; // eax void *v4; // rax unsigned __int64 v5; // r14 int v6; // er13 size_t v7; // r12 int v8; // eax void *handle; // [rsp+8h] [rbp-44

  • 【pwn】V&N2020 公开赛 simpleHeap2021-08-27 11:31:22

    【pwn】V&N2020 公开赛 simpleHeap 1、静态分析 首先libc版本是ubuntu16的2.23版本,可以去buu的资源处下载 然后checksec一下,保护全开 拖入IDA中分析 去除了符号表,通过menu函数分析出有add、edit、show、delete 1.add() add函数分析一遍,发现没什么漏洞,就是普普通通的输入一个需

  • bjdctf_2020_babyrop来自BUUCTF2021-08-26 16:02:50

    这是一道64位的ret2libc和“铁人三项(第五赛区)_2018_rop来自BUUCTF”是一个类型的题目不过payload的构造有一点差别。因为在64位程序中函数的前六个参数保存在寄存器中第七个参数保存在栈中。而在32位程序中函数的参数保存在栈中。 这两个题正好一样的题型但是略有差别。    

  • 【SEED Labs 2.0】Return-to-libc Attack and ROP2021-08-25 12:01:38

    本文为 SEED Labs 2.0 - Return-to-libc Attack Lab 的实验记录。 实验原理 Task 1: Finding out the Addresses of libc Functions 关闭地址随机化 $ sudo sysctl -w kernel.randomize_va_space=0 修改链接 $ sudo ln -sf /bin/zsh /bin/sh 使用 gdb调试 $ touch badfile

  • 水几个pwn2021-08-24 19:58:26

    author: moqizou 2020-羊城杯-signin 签到题目2.23的glibc add - 最多10个chunk然后会malloc(0x28)之后就是namesize结构体如下 0x10 chunk 头 0x8 1 inuse位置 0x8 buf->name_chunk 0x8 23字节的message 0x8 看上面可以溢出 然后会把该chunk指针 存入全局table view 通过

  • c++程序生前死后2021-08-22 22:32:24

    在linux下写一个可执行程序,然后进行反编译   查找main函数入口地址 找到start start函数准备好参数之后立即调用 libc_start_main  libc_start_main做了些什么? 当可执行性程序中的所有段被加载到内存中后,PC指针就指向代码段起始地址,进而执行指令 查找一下这个地址 该函数

  • double free or corruption (!prev)2021-08-06 11:00:35

    环境:linux,g++4.9,qt4.8.7 关闭应用程序时崩溃,下面是qtcreator应用程序输出窗口信息: *** Error in `/home/test/source/Ofd_Pro_Master/build-surSenReader_all-unknown-u8c03u8bd5/surSenReader': double free or corruption (!prev): 0x00000000013248a0 *** ======= Backtrace:

  • [A]onepunch(tcache stash&&seccomp)2021-08-04 19:32:20

    程序调用的是calloc,这个函数不会从tcache中取chunk。所以直接add free 重复填满tcache,利用uaf泄露heap和libc tcache per thread struct是来管理链表上堆块的数量的,大小一共是0x250,在heap开头。其中counts一共占0x40,每一个字节都代表一个大小范围正好对应64个entry,第一个字节

  • PWN题型之栈迁移2021-07-30 19:34:13

    文章目录 前言0x1 :基本知识:0x2 :利用思路 :0x3 :实例讲解总结: 前言 菜鸡总结,如有不对,望各位大佬及时指点,以免误人子弟。 0x1 :基本知识: 想必大家都知道用栈迁移技术来解决的问题了吧———溢出的长度不够,只能覆盖到返回地址,至于后面需要构造的rop链的长度显然是不够的。 如

  • roarctf_2019_easy_pwn2021-07-30 15:32:27

     没有UAF,但是存在着off-by-one 所以先add(0x18)#chunk0和一个(0x10)#chunk1,add(0x90),add(0x10) 为什么是0x18?因为0x18会开辟一个共0x20的chunk,一开始我也以为是一个0x30的大小,但是 在chunk结构中  0x560df2c462b0 -0x560df2c462b8 这片区域中也会被chunk0使用。这样才能更接近chunk

  • 2017 0ctf babyheap2021-07-26 20:02:39

    之前学习了一下lager bins的构建,今天来学习一下堆重叠和堆扩展 先找漏洞点 这里没有对大小进行检查,可以输入任意字节,存在字节溢出 此题的难点在于如何泄露libc,由于add使用calloc的原因,当堆块从bins中拿出来时,会清空堆块 很明显我们要申请大的堆块进入unsorted bins来使main_a

  • 绕过canary的方法——stack smash2021-07-26 07:31:07

    原题找不到源码,这里就讲一下原理 条件:有栈溢出,最好是gets函数(栈溢出的空间比较大) 原理:当程序开启canary保护时若发生栈溢出则会调用canary_check_fail函数 void __attribute__ ((noreturn)) __stack_chk_fail (void){ __fortify_fail ("stack smashing detected");}void __attrib

  • 42021-07-19 01:03:09

    pwn2_sctf_2016 1.ida分析   存在栈溢出漏洞,但是有一个限制输入字符数的保护。      可以看到参数a2从int类型变成了unsigned int类型,可以利用来绕过保护。(一开始一直卡在怎么绕过,麻了)   2.checksec     3.解决 from pwn import * from LibcSearcher import * context.l

  • 22021-07-18 13:01:33

    ciscn_2019_en_2 1.ida分析        在encrypt函数中存在栈溢出漏洞,但是会把输入过滤。 2.checksec    3.解决 from pwn import * from LibcSearcher import * context.log_level='debug' s p=remote('node4.buuoj.cn',27829) elf=ELF('./ciscn_2019_en_2') ret=0x

  • Item Board2021-07-18 01:03:27

    nc pwn2.jarvisoj.com 9887     Hint1: 本题附件已更新,请大家重新下载以免影响解题。   ItemBoard.rar.6da1c739ca3041f37c37a9c0cf99afca   函数free过程中,set_null是空的,程序存在着UAF void __cdecl new_item() { int v0; // eax char buf[1024]; // [rsp+0h] [rbp-4

  • [XMAN]level62021-07-17 21:34:01

    nc pwn2.jarvisoj.com 9885     Hint1: 本题附件已更新,请大家重新下载以免影响解题。   level6.rar.69c5609dc9bab6c458b9c70d23e9445d   之前的guestbook2的32位版本 exp如下: from pwn import * def list_note(): io.recvuntil('Your choice: ') io.sendline('1'

  • 我要学pwn.day72021-07-10 00:02:48

    ciscn_2019_c_1 潜心修炼,从基础开始 这是一道没有system的ROP 解题流程 1.检查文件 $ file ciscn_2019_c_1 ciscn_2019_c_1: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, B

  • ctf-pwn-patchelf-用题目给的libc运行二进制文件2021-07-07 22:34:36

    用给定的libc进行调试 首先根据题目给你的libc,查找相应版本的连接器 然后去glibc-all-in-one中下载相应的ld文件 glibc-all-in-one安装步骤 https://github.com/matrix1001/glibc-all-in-one 使用 查看各unbuntu版本的glibc ./update_list cat list 下载对应版本

  • PHP 生成随机数 mt_rand() 函数2021-07-03 14:34:34

    定义和用法mt_rand() 使用 Mersenne Twister 算法返回随机整数。 语法mt_rand(min,max) 说明如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。 很多老的 libc 的随机数发生器具有一些

  • [星盟 pwn LAB]ret2libc3(从puts定位system)2021-06-18 17:29:58

    文章目录 一、要点二、预备知识三、题目四、解题过程1、检查保护机制2、运行查看效果3、IDA静态分析4、栈溢出的设计5、使用本地libc.so进行分析6、泄露puts的地址、定位system的地址7、编写exp 一、要点 return to libclibc中的地址泄露和定位 二、预备知识 预备知识请

  • wdb_2018_1st_babyheap2021-06-11 21:04:48

    目录wdb_2018_1st_babyheap总结checksec题目分析漏洞分析利用思路最终EXP引用与参考 wdb_2018_1st_babyheap 总结 根据本题,学习与收获有: 一般来说,在libc-2.23.so中,能用unlink的题目,基本可以用unsorted bin attack + IO_FILE劫持IO_jump_t结构执行system("/bin/sh")。不用能unlink

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

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

ICode9版权所有