首页
学习
活动
专区
圈层
工具
发布

Linux漏洞分析入门笔记-栈溢出

顺序执行:F9 0x01:漏洞简介 1.一个简单的linux x64平台栈溢出漏洞,漏洞定位到vuln函数,如下图: ?         图5 ?         图6 ?         ...产生缓冲溢出漏洞,下好断点后开始动态调试。...而根据Linux X86 32位函数调用约定,参数是压到栈上的。但是栈空间完全由我们控制了,所以控制system的函数不是一件难事情。...Linux系统中对应用程序漏洞防护有三个: SSP(Stack-Smashing Protectot):堆栈防溢出保护,它会在每个函数的栈帧底部添加一个随机字节,每次函数将要返回时,都会这个随机字节进行验证...,如果这个随机字节被篡改,则说明该栈帧发生数据溢出,报出异常,程序终止。

2.2K40

CVE-2020-3119 Cisco CDP 协议栈溢出漏洞分析

最近Cisco CDP协议爆了几个漏洞,挑了个栈溢出的CVE-2020-3119先来搞搞,Armis Labs也公开了他们的分析Paper。...3119这个CVE影响的是Cisco NX-OS类型的设备,去Cisco的安全中心找了下这个CVE,搜搜受影响的设备。发现受该漏洞影响的设备都挺贵的,也不好买,所以暂时没办法真机测试研究了。...在编写利用脚本之前需要注意几点: 1.栈溢出在覆盖了返回地址后,后续还会继续覆盖传入函数参数的地址。...这么短的长度,并不够进行溢出利用。所以我们不能进入到会调用该函数的分支。...经过研究发现,在CDP协议中的DeviceID相关的字段内容都储存在堆上,并且该堆地址就储存在栈上,我们可以通过ret来调整栈地址。这样就能成功向system函数传递任意参数了。

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux漏洞分析入门笔记-CVE_2018_6323_整型溢出

    操作系统   Ubuntu 16.04 /32 位 调试器     IDA pro 7.0 漏洞软件   binutils-2.29.1 0x00: 漏洞描述 1.什么是整数溢出: 在计算机中,整数分为无符号整数以及有符号整数两种...关于整数溢出,其实它与其它类型的溢出一样,都是将数据放入了比它本身小的存储空间中,从而出现了溢出。...0x01: 漏洞分析 1.编译下面代码gcc -c test.c -o test生成elf文件。...图2 3.通过回溯栈调用情况,一步一步追踪函数调用,在关键函数下断点动态调试分析。图3所示产生整数溢出的地方。 ?           图3 ?           ...0x02:总结 1.只要转换成 unsigned long 类型 bfd_size_type ,从而避免整型溢出,防止漏洞产生。

    1K20

    PWN栈溢出漏洞。

    在国内的CTF比赛中,PWN题最常见考点就是缓冲区溢出漏洞,而缓冲区溢出代表就是栈溢出漏洞。 0x01 基础知识 栈是一种先进后出的数据结构,从高地址向低地址增长的内存结构。...0x02漏洞原理 栈溢出漏洞是由于使用了不安全的函数,如C中的 read(fd, buf, nbytes)、gets(s)等,通过构造特定的数据使得栈溢出,从而导致程序的执行流程被控制。...当构造变量char s[12]时,系统就在栈中给s开辟栈空间,可gets(s)函数未限制输入字符长度,可以构造大量的数据来超出变量的空间从而造成溢出,覆盖到s以上的栈空间。 ?...漏洞利用: 查看程序的保护机制: ? 程序在无任何保护的情况下进行解题: ? 输入s的值溢出到返回地址,将返回地址替换成text函数的起始地址。 查看text函数的起始地址。 ?...下期将带来在程序开启不同栈保护机制要如何利用漏洞。

    1.3K21

    PWN栈溢出漏洞。

    在国内的CTF比赛中,PWN题最常见考点就是缓冲区溢出漏洞,而缓冲区溢出代表就是栈溢出漏洞。 0x01 基础知识 栈是一种先进后出的数据结构,从高地址向低地址增长的内存结构。...0x02漏洞原理 栈溢出漏洞是由于使用了不安全的函数,如C中的 read(fd, buf, nbytes)、gets(s)等,通过构造特定的数据使得栈溢出,从而导致程序的执行流程被控制。...当构造变量char s[12]时,系统就在栈中给s开辟栈空间,可gets(s)函数未限制输入字符长度,可以构造大量的数据来超出变量的空间从而造成溢出,覆盖到s以上的栈空间。 ?...漏洞利用: 查看程序的保护机制: ? 程序在无任何保护的情况下进行解题: ? 输入s的值溢出到返回地址,将返回地址替换成text函数的起始地址。 查看text函数的起始地址。 ?...下期将带来在程序开启不同栈保护机制要如何利用漏洞。

    1.2K51

    MIPS漏洞调试环境安装-栈溢出

    MIPS栈溢出 这一部分主要描述MIPS中的栈溢出相关的知识,假设大家已经有一定的x86漏洞利用经验。首先是介绍MIPS汇编的一些和x86不一样的地方,其次是一个简单栈溢出漏洞的利用。...但是没有EBP(栈底指针),进入一个函数时,需要将当前栈指针向下移动n比特,这个大小为n比特的存储空间就是此函数的栈帧存储存储区域。...利用堆栈溢出的可行性:在非叶子函数中,可以覆盖返回地址,劫持程序执行流程;而在非叶子函数中,可通过覆盖父函数的返回地址实现漏洞利用。 栈溢出实例 在有了前面的基础后,最后再介绍一个具体的实例。...首先是源代码,是书上的一个简单栈溢出的代码: #include #include #include void do_system(int code...\n"); } fclose(fp);} 可以看到栈溢出是对于输入的长度没有进行检查,同时代码中存在一个do_system函数,只要我们构造好参数,就可以利用。

    2K50

    网安-演示栈溢出漏洞实验

    实验目的学习和理解栈溢出的原理和危害,了解栈溢出的攻击方式和防范措施2. 实验环境Microsoft Visual C++ 6.0Windows XP3....实验原理如果向栈上声明的缓冲区中复制数据,但是复制到数据量又比缓冲区大的时候,就会发生栈溢出。在栈上声明的各种变量的位置紧临函数调用程序的返回地址。...防范栈溢出的有效方法有:禁止栈执行,从而阻止攻击者植入恶意代码;编写安全可靠的代码,始终对输入的内容进行验证;利用编译器的边界检查实现栈保护。4....栈溢出通常是由于以下原因引起的:递归深度过深:递归函数在执行过程中会不断在栈上分配空间,如果递归深度过深,就会导致栈溢出。局部变量过大:在函数中定义的局部变量如果占用空间过大,也会导致栈溢出。...线程过多:如果在一个进程中创建了过多的线程,每个线程都有自己的栈空间,也会导致栈溢出。为了避免栈溢出,可以采取以下措施:优化代码:尽量减少递归深度,或者使用循环代替递归。

    40300

    CVE-2017-7529 Nginx整数溢出漏洞分析

    随口说说 最近一直在尝试挖教育网站的洞,顺带的也见识了一些之前从未见过的东西,很有兴趣,于是便有了这篇,写下就当作记录 环境搭建 这次玩的东西,CVE编号为 CVE-2017-7529,叫做 nginx...整数溢出漏洞 影响版本: Nginx 0.5.6 – 1.13.2 安装前,需要几个必要的东西 yum install gcc-c++ pcre pcre-devel zlib zlib-devel -...y 然后去官网上下载对应版本,我选的是 nginx-1.13.0 下载链接: https://nginx.org/download/ 下载完之后,拖入linux,解压 ?...漏洞利用 这个漏洞由于负数偏移量,导致头部信息也给返回,导致的信息泄露,也就是,构造一个恶意的range值 先计算一个range值 查看文件的值大小为, 7877 ?...for i in result: if "KEY" in i: print "[+] Nginx Int Overflow(CVE

    5K30

    CVE-2021-3156 sudo堆栈溢出漏洞预警

    前言 近期CVE-2021-3156(sudo堆栈溢出漏洞) ?...国外的Qualys 研究团队在 sudo 发现了堆溢出漏洞,sudo是一种几乎无处不在的非常实用程序,可用于大型 Unix 类操作系统(类似与windows的UAC功能,但是功能更加强大,它还允许用户使用其他用户的安全权限运行程序...ptrace在linux 反调试技术中的地位就如同nc在安全界的地位,瑞士军刀啊!...描述:pkexec是linux左面freedestop上的验证程序,pkexec允许授权用户以PROGRAM其他用户身份执行。...所以说这个漏洞利用条件有两点: 1.找suid降权的程序(我们能控制的,如pkexec) 2.如果利用pkexec(利用条件为桌面的终端linux,通过SSH会话利用此漏洞不成功) exp用的就是pkexec

    1.1K10

    CVE-2024-37079|VMware vCenter Server堆溢出漏洞

    0x01 漏洞描述 由于vCenter Server在DCE/RPC(分布式计算环境/远程过程调用)协议的实施过程中存在多个堆溢出漏洞,具有vCenter Server 网络访问权限的远程威胁者可发送特制网络数据包来触发这些漏洞...CVE-2023-34048的漏洞成因和它是一样的表述。...0x02 CVE编号 CVE-2024-37079/CVE-2024-37080:由于vCenter Server 在执行DCERPC协议时存在堆溢出漏洞,具有vCenter Server网络访问权限的远程攻击者可以发送特制的网络数据包执行任意代码...CVE-2024-37081:由于sudo配置错误,导致vCenter Server存在本地权限提升漏洞,具有低权限的攻击者可以利用该漏洞将账户提升至root权限。..., CVE-2024-37080, CVE-2024-37081 \ 0x04 漏洞详情 https://support.broadcom.com/web/ecx/support-content-notification

    88010

    CVE-2017-7529 Nginx整数溢出漏洞分析2

    漏洞原理 补丁发布的日期是2017年7月11日15:48:23 所以我们可以到 github上去查找修改的地方 ? ?...可以看到做了一定的限制 图一修改,防止因为end的问题,导致 content_length-end后的结果为负数,最后的结果无论如何都是0,而不会是负数了,对cache文件的读取也只能从0开始 图二修改,防止溢出后小于了...size后绕过判断 正常情况下,如果我们 传入一串完整的range,那么他会检查 start,保证不会溢出为负值 ?...因为前面算的end的值是大于文件长度的,所以在这里会被强行等于原始文件的长度,那么到后面计算的时候 就会变成了 7877-(-600)=7877+600=8477 因为需要整数溢出,所以最后size的值得是...所以就相当于是 range2+range1,最后的值刚好就能整数溢出了 ?

    1.1K10

    Netgear R6400 upnp栈溢出漏洞分析

    、基本情况 Netgear R6400 多个固件版本中的upnpd存在栈溢出漏洞(CVE-2020-9373),通过向其udp 1900端口发送构造的ssdp数据包,可能导致DOS或RCE。...# 三、漏洞发掘 由于漏洞比较明显,是upnpd处理ssdp包时直接利用strcpy复制未经过滤的数据导致的栈溢出,通过二进制危险函数审计就可以发掘。...This GDB was configured as "arm-linux-gnueabi"....四、漏洞利用 4.1 地址随机化 每次加载库地址和栈地址都随机,但存在一些规律,而upnpd的地址是不变的,地址随机化bypass常规思路是构造ROP,需要解决以下两个问题。...3、笔者发现同为Netgear的设备WNDR3400v3也爆出类似漏洞,而且已经存在CVE编号(CVE-2019-14363),应该是用了相似的代码。

    2.7K10
    领券