大汉版通JIS统一身份认证系统后台文件上传漏洞及两处越权漏洞

漏洞详情

披露状态:

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

简要描述:

先祝大家马年吉祥!
说会到JIS,原本以为后台是限制得很死的,无法上传jsp,但是研究了下发现不是这样的……另外还有两处越权,打包发了。

详细说明:

后台文件上传,顾名思义还是需要有管理员的账户,或者确切的说,是需要有“有新建应用权限的账户”。这里用管理员权限来说明。

先看应用管理——新建

image057.png



直接看opr_application.jsp文件:

if(strFileName.toLowerCase().endsWith("gif") || strFileName.toLowerCase().endsWith("jpg")){//cmd.jsp(00)gif轻松过if
file = new File( strLoadPath + "/tmp/" + strFileName);
int m = strFileName.lastIndexOf(".");
strFileName = upload.getFormValue("vc_appmark")+(strFileName.substring(m,strFileName.length()));//cmd.jsp(00)gif,jsp(00)gif获取到了,写文件就截断了都。
fileNew = new File( strLoadPath + "/apppic/"+strFileName);
if(fileNew.exists())
fileNew.delete();
file.renameTo(fileNew);
bulidminpic.setNWidth(85);
boolean bl = bulidminpic.buildMiniature(strLoadPath + "/apppic/"+strFileName);



以上有两个傻逼地方:

1.用了endsWith(我00截断的话你只有这货肯定不行)

2.没有重命名(随机数化)

上传的时候文件名改为cmd.jsp(00)gif,中间的(00)就是00字节

image058.png



看上图下面部分就知道地址会自己返回。.jsp后面部分已经被截断了

附上shell截图:

image060.png

漏洞证明:

这里说两个越权。



随意注册一个用户

登录后访问如下页面:

http://management.ysx.gov.cn/jis/main/onlineuser.jsp?

可以直接看见当前登录的用户及对应的IP。



还有一个日志操作的:

http://management.ysx.gov.cn/jis/manage/log/opr_export.jsp

image053.png

修复方案:

越权的就不说了。文件上传那在判断后缀名的时候,严格一点,加上随机数最好(这个看实际,不能随意就乱做随机数)

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-02-09 09:13

厂商回复:

非常感谢您对大汉产品的关注以及对产品安全方面的指正,涉及问题已在新版本中修复。

最新状态:

暂无


漏洞评价: