[SUCTF 2018 招新赛]unlink
Problem: [SUCTF 2018 招新赛]unlink 思路 unlink到heap_list修改chunk0的指针指向got_free,修改chunk0的内容,即修改got_free的内容为system,劫持got表getshell EXP from pwn import * context.log_level = 'debug' context.terminal = [...
Problem: [SUCTF 2018 招新赛]unlink 思路 unlink到heap_list修改chunk0的指针指向got_free,修改chunk0的内容,即修改got_free的内容为system,劫持got表getshell EXP from pwn import * context.log_level = 'debug' context.terminal = [...
Problem: [LitCTF 2024]heap-2.31 思路 填满tacahe,利用unsortbin泄漏出free_hook,利用uaf修改tacahe的fd实现任意内存地址读写,劫持free_hook EXP from pwn import * context.log_level = 'debug' context.terminal = ['tmux','splitw'...
Problem: [LitCTF 2024]heap-2.27 思路 通过unsortbin泄漏libc地址,根据地址找到free_hook函数所在。 delete函数中存在uaf,使得我们能够修改已经释放的堆块,因此,我们可以通过修改堆块的fd申请到任意内存位置的堆块,实现free_hook劫持。 需要了解unsortbin生成条件,free_hook劫持原理。 EXP from ...
Problem: [LitCTF 2024]heap-2.23 思路 edit功能存在一个UAF,通过该漏洞修改fd达到申请任意位置区块的目的,再利用edit功能修改对应区块地址的内容,达到利用目的。 我这里选择了劫持__molloc_hook函数,需要注意的是,我们需要找到一个区块匹配所需要的结构体,详细可以调试看看mallo_hook-35这个位置,再往后填充,将one_gadge...
pwntools中shellcode使用与配置 bamuwe@qianenzhao:~$ checksec mrctf2020_shellcode [*] '/home/bamuwe/mrctf2020_shellcode' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary fou...
从Forest学习Windows下的渗透 前置知识 一,关于LDAP服务 基础介绍 LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种用于访问和维护分布式目录信息服务的协议。它允许用户和应用程序通过一个统一的接口访问和管理目录信息。LDAP服务的主要特点和功能包括: 目录结构:LDAP使用树状结构来组织目录信息,类...
函数参数劫持 32位泄露libc 32位程序的传参是栈的后四位开始,要注意的是,32位下write,put的ret位置是紧跟函数后面的 payload1 = b'A'*(0x88+0x4)+p32(elf.plt['write'])+p32(elf.sym['main'])+p32(1)+p32(elf.got['write'])+p32(4) ...
program bamuwe@bamuwe:~$ checksec program [*] '/program' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX unknown - GNU_STACK missing PI...
from pwn import * #context.log_level='debug' Lib = ELF('./glibc/libc.so.6') elf = ELF('./rocket_blaster_xxx') #io = process('./rocket_blaster_xxx') io = remote('83.136.254.221',56354) #io = gdb.deb...
栈迁移 one-gadgets 64泄露libc 在read函数中存在变量buf的溢出,但是长度受到了限制,只能溢出两个栈空间 在后面可以往&bank写入内容,而&bank正好位于.bss段上,可以写入且内存中位置不会改变 没有后门函数,考虑泄露libc,因为溢出空间有限,所以采用one-gadget这样只要溢出两个空间就可以拿到shell ...