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,像添加一个用户、运行一条指令。

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

  • 相关阅读:
    数据库命令基本操作
    26、驱动模块和桩模块的概念和区别
    图像的均值、均方值、方差、均方差、标准差
    67、反射机制
    66、线程的生命周期
    PHP 的 SAPI 是个什么东西(转)
    无需重新编译安装PHP扩展的方法
    swoole之创建子进程
    swoole之异步文件IO
    swoole之任务和定时器
  • 原文地址:https://www.cnblogs.com/lnaswxc/p/8602714.html
Copyright © 2011-2022 走看看