ICode9

精准搜索请尝试: 精确搜索
  • [BUUCTF] wdb_2018_semifinal_pwn12021-10-16 13:00:41

    wdb_2018_semifinal_pwn1 总结 其实就是很简单的UAF的题目,只是结构体和分支比较复杂一点,所以逆向难度增加了。利用其实很简单。 题目分析 checksec 远程环境为libc-2.23-so。 结构体 主要涉及到两个结构体。一个是玩家信息的结构体: struct __attribute__((aligned(8))) User {

  • 攻防世界pwn高手区stack2 lea调整栈帧导致偏移错误2021-10-14 14:02:45

    Stack2 这题废话很多,说白了就一个数组越界的漏洞可以利用,没有对下标v5做限定,所以可以利用数组越界,直接越过canary,利用留下的后门getshell 刚开始看ida以为位移是0x74所以exp如下 from pwn import * p = remote('111.200.241.244', '50928') # p = process("./stack2") # c

  • buuoj Pwn writeup 281-2852021-09-06 12:01:45

    281 ciscn_2019_final_6 storage game里面有个输入函数 显然有个off by null。 exp #coding:utf8 from pwn import* r = remote('node4.buuoj.cn',26021) libc = ELF('./64/libc-2.27.so') def resume(): r.sendlineafter('>','0')

  • 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

  • actf-2019-onerepeater2021-08-24 20:02:24

    深夜写题 int __cdecl main() { int v1; // [esp+Ch] [ebp-40Ch] char buf; // [esp+10h] [ebp-408h] sub_804864B(); while ( 1 ) { while ( 1 ) { puts("What you want to do?\n1) Input someing exciting to repeat!\n2) repeating!!!\n3) Ex

  • qwb2021 pwn复现2021-08-09 20:35:27

    babypwn exp from pwn import * from z3 import * context.log_level='debug' p=process(["/root/glibc-all-in-one-master/libs/2.27-3ubuntu1_amd64/ld-2.27.so","./babypwn"],env={'LD_PRELOAD':'/root/glibc-all-in-one-m

  • 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

  • hitcontraining_uaf2021-06-15 21:30:13

    国际惯例 IDA 主函数没啥特别的 有后门 add del show 思路 首先我们创建两个chunk,再free掉,之后add一个8字节的chunk,并添加后门,在通过show功能调用后门函数。 WP from pwn import* r=remote('node3.buuoj.cn',26891) def add(size,content): r.sendlineafter('choice

  • ciscn_2019_es_42021-06-14 18:02:58

    目录ciscn_2019_es_4总结EXP引用与参考 ciscn_2019_es_4 总结 很基础的unlink,只记录下exp,不对题目做过多的分析。注意一点,对于含有tcache bin的glibc版本,需要先把tcache bin填满,再unlink。 EXP from pwn import * int16 = lambda x : int(x, base=16) LOG_ADDR = lamda: x, y: log

  • buuoj Pwn writeup 171-1752021-06-09 09:30:48

    171 wdb_2018_1st_babyheap add edit 只能编辑三次。 show free 简单的uaf。 我们可以通过unlink来泄露地址,劫持free_hook。 要注意的是它自己写的一个输入函数。 要么就回车截断,要么就输入32个。所以我们在写exp的时候如果是32字节,就不要加回车,如果不够32个字节,就一定要

  • 虎符2021线下赛pwn writeup2021-05-13 12:01:16

    jdt   一个图书管理系统,但并不是常规的堆题。edit和show函数可以越界。edit函数和show函数相互配合泄露libc基地址,将main函数的返回地址覆盖成onegadgets拿shell。 from pwn import * p = process('./pwn') elf = ELF('./pwn') libc = ELF('./libc.so.6') context(os='linux'

  • _IO_2_1_stdout_泄露内存2021-03-25 20:33:09

    在做heap时有时候并没有自带的输出模块,所以打_IO_2_1_stdout_成了一种常用手段。一般只出现在glibc2.23版本下glibc2.27下aslr随机的位数比较多爆破概率比较小,没算错的话应该时1/4096,而2.23的情况下是1/16。 这里记录两道例题,也忘了是哪里的题了,反正模板题。以便以后快速复现

  • BSidesSF CTF 2021 Pwnzoo2021-03-09 08:35:36

    检查一下开启的保护机制:   用ida分析一下程序: 主函数是这样的:   走到construct_animal()函数: 申请了一个堆块,用以存储动物结构体,看起来这个堆块上有函数指针 并且会把anmial->name初始化为0x24个空格,下面change_name时会用到   main函数调用完construct_animal()后,会调用cha

  • buuoj Pwn writeup 76-802021-02-24 20:29:26

    76 0ctf_2017_babyheap 保护 菜单堆。 allocate 堆的结构很明显了。要注意的是flag是四个字节。 fill 又是输入大小可以随便写。 又可以溢出。 free free的还是很干净的。 dump 平平无奇输出函数。 那么我们首先要考虑泄露libc的地址。泄露地址的方法只能去考虑unsorted bin

  • BIT 常态化在线CTF系统 pwn题目2021-01-29 19:32:34

      偶然得到这个平台,发现是BIT的CTF平台,应该是平时的阶段性的训练题目。看了看题,其他方向的题目感觉都是入门题,但是pwn题目,发现还是比入门题难一点点的,来记录一下。 pwn1   栈上任意位置的读写操作,只能一字节一字节读写,算好偏移,还是挺好做的。   比较坑的是,远程的libc被改了

  • axb_2019_heap-format_string + off-by-one2020-10-24 19:32:18

    axb_2019_heap 简单题,格式化字符串泄漏栈地址 算上rsp,格式化字符串参数是栈顺序+6-1 edit有off by one 构造unlink chunk0 chunk1 chunk2 构造成这样,然后free1就行了 from pwn import * local = 0 binary = "./axb_2019_heap" libc_path = '../libc-2.23.so' port = "27201" i

  • 2020第五空间部分wp2020-06-26 13:36:57

    我是废物~,我个人的话出了4个题。分别是pwn类的twice,of,misc类的loop,re类的rev,写下wp,后续的话可能会更新pwn类的pwnme的wp,由于我环境搭建没打好,pwnme本来也是个简单题来着。 等环境整好了复现出来了在更新pwnme吧,现在先把现有的wp贴上去。 twice 程序循环两次,第一次泄露canary

  • 0ctf_2017_babyheap2020-05-16 19:03:41

    0ctf_2017_babyheap 首先检查一下保护 IDA 分析好的代码如下 首先申请了一块内存地址用来存放结构体数组,地址随机。 堆题常见的几个功能。我们来看看add 这里申请内存用的是calloc struct block{ unsigned int inuse; unsigned int size; char * chunkptr; } 这

  • 高校战“疫”网络安全分享赛pwn部分wp2020-03-11 12:02:24

    高校战“疫”网络安全分享赛pwn部分wp 博客地址 easyheap 刚复现的第一题,并且在刚开始的时候连洞都找不到…可真是当头一棒。 漏洞在申请的大小大于0x400时,return。这时ptr[i]没有被释放,接下来就是常规劫持ptr[i]堆块上的指针为got表。修改got表。来实现利用。 # -*- codi

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

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

ICode9版权所有