zoukankan      html  css  js  c++  java
  • WinRAR存在严重的安全漏洞影响5亿用户

    WinRAR可能是目前全球用户最多的解压缩软件,近日安全团队发现并公布了WinRAR中存在长达19年的严重安全漏洞,这意味着有可能超过5亿用户面临安全风险。

    该漏洞存在于所有WinRAR版本中包含的UNACEV2.DLL库中,该库负责以ACE格式解压缩档案,而自2005年起WinRAR已经停止更新UNACEV2.DLL,并决定放弃ACE归档格式支持。

    研究人员在其中发现了一个路径遍历漏洞,可以把被压缩文件的文件提取到任意文件夹。攻击者通过利用恶意ACE档案伪装成RAR文件,用户在解压恶意的压缩文档时,WinRAR软件将恶意代码解压至系统自启动目录,当用户下次登陆电脑时系统将自动运行释放的恶意代码。

    漏洞在CVE-2018-20250、CVE-2018-20251、CVE-2018-20252和CVE-2018-20253标识下进行跟踪。该漏洞影响WinRAR 5.61及以前的版本,目前最新版本已经放弃了对ACE格式的支持,从而消除该漏洞。

    小伙伴们快检查一下自己的电脑,如果安装了WinRAR,安全起见一定要马上更新至最新版本。

    说到安全漏洞,网安的朋友们一定不陌生,甚至有很多人是挖洞高手。那么栈溢出漏洞大家是否了解呢?

    今天i春秋就为大家介绍一个在国内的CTF比赛中,PWN题最常见考点——缓冲区溢出漏洞,而缓冲区溢出代表就是栈溢出漏洞,我们一起来学习一下吧。

    基础知识

    栈是一种先进后出的数据结构,从高地址向低地址增长的内存结构。

    函数调用栈是指程序运行时内存一段连续的区域,用来保存函数运行时的状态信息,包括函数参数与局部变量等,是系统栈的一部分。

    在一次函数调用中,函数调用栈中将被依次压入:函数实参、返回地址、EBP。如果函数有局部变量,那就在栈中开辟相应的空间以构造变量。

    ESP 称为栈顶指针,用来指示当前栈帧的顶部。

    EBP 称为栈基址指针,用来指示当前栈帧的底部。

    漏洞原理

    栈溢出漏洞是由于使用了不安全的函数,如C中的 read(fd, buf, nbytes)、gets(s)等,通过构造特定的数据使得栈溢出,从而导致程序的执行流程被控制。

    当程序代码如下时:

    当构造变量char s[12]时,系统就在栈中给s开辟栈空间,可gets(s)函数未限制输入字符长度,可以构造大量的数据来超出变量的空间从而造成溢出,覆盖到s以上的栈空间。

    解题步骤

    例举一道栈溢出的PWN题,根据解题步骤来解答。

    1、逆向工程:

    将PWN题拖入IDA,点击程序入口函数。按F5逆向main函数,查看对应的C伪代码。

    main函数调用vulnerable()函数。

    点击进入vulnerable()函数并F5逆向。

    vulnerable()函数中调用了gets()和puts()函数,而程序的逻辑就运行main函数和vulnerable函数。

    vulnerable函数功能:输入字符串,输出字符串

    程序中主要函数有:

    内置行数:gets、puts、system

    自定义函数:main、test、success

    2、分析代码:

    进行逆向工程拿到C伪代码,代码大致如下:

    gets() 是一个危险函数,因为它不检查输入字符串的长度,而是以回车来判断是否输入结束,所以很容易导致栈溢出。

    3、漏洞利用:

    查看程序的保护机制:

    程序在无任何保护的情况下进行解题:

    输入s的值溢出到返回地址,将返回地址替换成text函数的起始地址。

    查看text函数的起始地址。

    EBP与EBP的距离14H,而栈中的EBP占栈内存4H,所以要覆盖到放回地址需要18H。

    编写脚本如下:

    利用脚本后的栈结构如下:

    所以当函数调用完毕后,执行返回地址时将执行text函数。

    运行脚本,成功运行text函数:

     

    4、getshell:

    分析代码发现程序中有getshell函数,这时就不需要构造shellcode,直接溢出返回地址,让程序执行此函数。

    查看success函数地址:

    脚本如下:

    运行脚本,成功拿到shell:

    以上就是今天的全部内容,大家对栈溢出漏洞都了解了吧,相信对于新手小白来说也是一个学习的知识点,要好好掌握哦!

  • 相关阅读:
    chrome浏览器中安装以及使用Elasticsearch head 插件
    windows10 升级并安装配置 jmeter5.3
    linux下部署Elasticsearch6.8.1版本的集群
    【Rollo的Python之路】Python 爬虫系统学习 (八) logging模块的使用
    【Rollo的Python之路】Python 爬虫系统学习 (七) Scrapy初识
    【Rollo的Python之路】Python 爬虫系统学习 (六) Selenium 模拟登录
    【Rollo的Python之路】Python 爬虫系统学习 (五) Selenium
    【Rollo的Python之路】Python 爬虫系统学习 (四) XPath学习
    【Rollo的Python之路】Python 爬虫系统学习 (三)
    【Rollo的Python之路】Python sys argv[] 函数用法笔记
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/10429942.html
Copyright © 2011-2022 走看看