zoukankan      html  css  js  c++  java
  • # 20155207王雪纯 实验一 逆向与Bof基础

    20155207王雪纯 实验一 逆向与Bof基础

    实践目标

    本次实践的对象是一个名为pwn1的linux可执行文件。
    该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。
    该程序同时包含另一个代码片段,getShell,会返回一个可用Shell。正常情况下这个代码是不会被运行的。我们实践的目标就是想办法运行这个代码片段。我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode。

    实践内容

    1、手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。

    2、利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。

    3、注入一个自己制作的shellcode并运行这段shellcode。

    实践1.直接修改程序机器指令,改变程序执行流程

    • 反汇编:命令:objdump -d pwn1
    • 若将call 8048491
      修改过程:
      vi打开编辑文件;
      :%! xxd将二进制文件转换为十六进制编辑模式
      /找到修改位置
      i进入编辑模式
      :%! xxd -r转回二进制模式
      :wq保存退出
      4.与修改前对比

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

    • 反汇编以了解程序基本功能
    • 确认输入字符串哪几个字符会覆盖到返回地址

    实践3.注入Shellcode并执行

    • shellcode就是一段机器指令(code)
      通常这段机器指令的目的是为获取一个交互式的shell(像linux的shell或类似windows下的cmd.exe),
      所以这段机器指令被称为shellcode。
      在实际的应用中,凡是用来注入的机器指令段都通称为shellcode,像添加一个用户、运行一条指令。

    暂时没做出来,出现了问题在解决

  • 相关阅读:
    "INVALID" is not a valid start token
    Win+R 快速启动程序
    assert False 与 try 结合 在开发中的使用
    token的分层图如下
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError
    获取控制台的错误信息 onerror
    状态git
    icmp
    git commit前检测husky与pre-commit 提交钩子
    git diff
  • 原文地址:https://www.cnblogs.com/lnaswxc/p/8602714.html
Copyright © 2011-2022 走看看