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

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

缺陷编号:wooyun-2014-084078

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

相关厂商:金和软件

漏洞作者: 疯狂的dabing

提交时间:2014-12-30 13:06

修复时间:2015-03-30 13:08

公开时间:2015-03-30 13:08

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

我司最近在内网部署了一套OA,正式上线前领导让先测下安全性,被人爆菊了就囧了。。黑盒一番,这次是个登录后的SQL注入,不过注入点还是很有意思的。
所测版本为C6V3,官网demo也存在该问题,貌似V2不存在。

详细说明:

OA Search 演示.png


因为是登录后的注入,因此没法给出更多实例,当然审核和CERT验证人员可以从第一个注入中提供的几个实例中,dump数据,然后再去验证是否存在。
./sqlmap.py -u http://oa.inofa.com/C6/Jhsoft.Web.login/AjaxForLogin.aspx --data="type=login&loginCode=admin=&pwd=123" -p loginCode --tamper base64encode.py -D C6 -T Users -C loginCode,PassWord --dump
现在只提供一个帐号供参考:
http://oa.inofa.com/
帐号:gdsw010
密码:20060108
注意数据库中的密码是使用sha1加密的。
注入点就在新闻搜索的地方(见第一张图片),不过这个地方也是在前端做了过滤,特别恶心,没法直接输入验证。
整个参数传输也是采用base64编码,然后解码后程序自己处理参数。在参数末尾有个非常诡异&h还不能去掉,目测是因为程序在后台是以&作为分隔的。

漏洞证明:

sqli 1.png


搜索39,得到两篇新闻。
下面是burp抓到的数据。

sqli 2.png


然后解码。

sqli 3.png


可以看到<MessageTitle ftype='input'>39</MessageTitle>中的39就是注入点。
不过这里先是类似伪静态的注入,然后再用base64编码传输,导致sqlmap没法用,只好写个中转脚本跑一下。

中转脚本.png


中转脚本就像exp,所以不上代码贴图了。。
直接访问看看效果:

中转结果0.png


跟搜索结果一直,证明可以使用。
放到sqlmap里面跑一圈。

中转结果1.png


中转结果2.png


sqlmap已经识别出搜索注入了,剩下就跑吧。
C6的数据库结构在百度文库有一份-,-我就说到这了。。

修复方案:

不要依赖base64编码,这只能提高攻击门槛不能杜绝安全漏洞。
不要拼接sql语句。

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝