zoukankan      html  css  js  c++  java
  • 20145225 《网络对抗》逆向及Bof基础实践

    实践目标

    • 本次实践的对象是一个名为pwn1的linux可执行文件。
    • 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。
    • 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。
    • 本次实践主要是学习两种方法:
      • 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
      • 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
    • 现实情况中的攻击目标:
      • 运行原本不可访问的代码片段
      • 强行修改程序执行流
      • 以及注入运行任意代码。

    实践过程

    直接修改程序机器指令,改变程序执行流程

    1.备份

    2.修改可执行文件

    (d8>>c3)

    3.反汇编看一下,call指令是否正确调用getShell

    4.运行下改后的代码,会得到shell提示符#

     

    通过构造输入参数,造成BOF攻击,改变程序执行流

    1.构造输入字符串

    2.将input的输入,通过管道符“|”,作为pwn1的输入

  • 相关阅读:
    Investment_完全背包
    Recaman's Sequence_递推
    MooFest_二维树状数组
    Mobile phones_二维树状数组
    Matrix_二维树状数组
    Get Many Persimmon Trees_枚举&&二维树状数组
    树状数组基础知识
    The Cow Lineup_找规律
    [SOJ] 简单哈希
    sscanf() 函数
  • 原文地址:https://www.cnblogs.com/nizaikanwoma/p/6507256.html
Copyright © 2011-2022 走看看