老文章(2009-01-19 13:06),但仍有学习价值,遂转发……

关于53KF:

    网上客服(WWW.53KF.COM)是国内领先的网站在线客服系统,由六度公司投资创办,致力于成就国内最大的网页对话工具提供商。已经有22万网站用户在使用53KF系统。

漏洞描述:

    在使用53kf即时通讯系统时,服务端对发送的消息都没有进行严格过滤,导致用户在发送数据过程中可以精心构造代码进行跨站攻击。未经过滤的恶意代码发送到客户端时,可能导致在使用者的浏览器会话中执行任意HTML和脚本代码。

漏洞细节:

//发送访客消息,点发送按钮
156function sendmsg() {
157 try{textCounter(document.getElementById("input1"),1000)}catch(e){}
158 msg=document.getElementById("input1").value;
159 if (msg.trim()=="") {
160 return;
161 }
162 msg=UBBEncode(msg);
163 document.getElementById("input1").value="";
164 display_msg("<font color=\"#666666\">"+infos[13]+": "+getTime2()+"</font><br>&nbsp;&nbsp;"+UBBCode(msg.trim()));
165 try{msg=msgFilter(msg);}catch(e){}
166 if(usezzdy=="1"){
167 var rmsg=sendtext(msg);
168 display_msg("<font color=\"#666666\">"+infos[57]+":</font><br>&nbsp;&nbsp;<font color=\"#0000CE\">"+rmsg+"</font>");
169 }else{
170 if (typeof(rec_stat)!="undefined" && rec_stat==1){
171 push_info("post","REC",mytempid,"11",UBBCode(msg.trim()),getTime());
172 display_msg("<font color=\"#666666\">"+infos[29]+":</font><br>&nbsp;&nbsp;<font color=\"#0000CE\">"+UBBCode(UBBEncode(lword_prompt))+"</font>");
173 }
174 else{
175 qstmsg(UBBCode(msg.trim()));
176 }
177 }
178 if (talk_fee_type==1)
179 {
180 talk_fee_type=0;
181 url="http://www.53kf.cn/v5_talk.php?talk_fee_type=1&arg="+arg+"&style="+style;
182 rpc(url);
183 }
184
185 if(istalktype==1)
186 {
187 istalktype=0;
188 url="http://www.53kf.cn/istalk.php?companyid="+company_id+"&istalk=1";
189 rpc(url);
190 }
191}

    在164行的位置,下断点(如使用firebug),可以重新定义msg内容。如,我们定义msg = "<iframe width=100 height=100 src=http://www.g.cn></iframe>"。攻击者可以注入任意恶意代码,对网站使用53KF系统的用户实施攻击。具体利用方法不再说明。

补丁相关:

    漏洞已通知厂商,暂时没有补丁。

相关资料:

http://www.securityfocus.com/archive/1/500169/30/0/threaded
http://www.securityfocus.com/bid/33341/info

附图: