如何用短信完成XSS?

简介:

Verizon Messages(Message+)是Verizon推出的一款开放跨平台信息交换应用程序,它允许用户在更多的无线设备中交换和共享信息。目前,该软件客户端支持跨平台使用,包括移动设备、桌面设备和Web端,并提升了VZW文字短信的用户体验度。

Verizon的邮件信息服务是跨平台的,此前只能够通过采用电话拨号的方式进行发送和接收,而新的应用程序将允许用户通过互联网在更多的无线设备上接收消息,并允许用过通过计算机对邮件账户进行管理。此外,跨平台的统一消息的应用程序可能有助于防止客户移动到其他网络,并与其他应用程序如iMessage、黑莓信使和Skype开展竞争,这也有助于提升Verizon的市场竞争力。

但是这款应用除了SMS短消息之外,还提供了一些其他的额外功能,而这些功能是我非常感兴趣的。

Verizon Messages(Message+)

在我安装好了Android端App并完成注册之后,我又登录了Web端App并开始使用这款应用。使用了一段时间之后,我发现该应用会通过Web端和移动端的接口显示包含链接的消息预览通知。这些链接支持图片和视频等资源,但我更感兴趣的是应用将会如何解析这些链接。

我感觉从Web端App着手会比较容易一些,所以我自己给自己发送了一些测试链接。

Verizon Messages(Message+)

这样一来情况就很明朗了:Web端的HTML页面就是负责解析这些链接的服务器端,解析完成之后便会返回URL地址的Open Graph属性。下面给出的是响应数据的部分内容:

 
  1.  
  2.        "webPreview":{ 
  3.  
  4.               "valid":true, 
  5.  
  6.               "url":"http://money.cnn.com/2017/05/13/technology/ransomware-attack-nsa-microsoft/index.html", 
  7.  
  8.               "title":"Ransomware: World reels from massive cyberattack", 
  9.  
  10.               "description":"Organizations around the world were digging out Saturday from whatexperts are calling one of the biggest cyberattacks ever. ", 
  11.  
  12.               "imageUrl":"/vma/web2/attachment/WebPreview.do?id=KDvS9ip4Afj6fPMTClAzqhegDyT9mSaM0zrQQfrBu8EbtJ0Xu_DyughZu53i-vOLkSeEpbLIk756f4o6igDFp0VHU5kVYFnJoeshsfy7eR3Q8XGwTY_rsu3FHEAAI4DJEmqYl7yBEqeWKSTYUnl48LRpXAokSGi1LWdWZqP0Bovl_EVMpdWB2JfnUz8Qxb0d&mdn=3026323617", 
  13.  
  14.               "imageDim":{ 
  15.  
  16.                      "width":420, 
  17.  
  18.                      "height":236 
  19.  
  20.               } 
  21.  
  22.        } 
  23.  

正如你所看到的,响应信息中包含UI界面预览信息图片所对应的Open Graph属性。请注意,上面的“imageUrl”实际上是Verizon的服务器所返回的代理图片(并非来自外部服务器),而这种代理技术可以让服务商更好地控制显示在用户浏览器中的图片内容。

Verizon的服务器所返回的代理图片

由于预览属性“attachment”是异步获取的(内容呈现在客户端),因此我决定在这里用DOMXSS攻击向量尝试一下,因为开发人员有可能会忽略这个影响因素。接下来,我又给自己发送了一些测试链接,这一次的链接中包含一些特殊字符,我想看一看这一次WebApp将如何处理和呈现这些内容。我在测试链接的查询字符串中插入了一些单引号,此时我突然发现我貌似可以利用单引号来破坏上述锚点元素的href属性。下面是一个简单的Payload示例:

 
  1. http://i.imgur.com/0wmSPiU.jpg?'onmouseover='alert(document.cookie)'style='position:fixed;top:0;left:0;width:100%;height:100%;'class='1'target='2 

下面是网页解析的结果:

通过让锚点以內联的形式强制覆盖用户的整个屏幕,我们可以利用“onmouseover”事件在打开消息的一瞬间触发代码执行:

这也就意味着,攻击者可以利用一个精心制作的文字短信来控制目标用户的整个页面,这将导致攻击者完全控制用户的会话以及所有相关的功能,包括伪造用户身份发送和接收SMS消息。

因为我的PoC已经可以正常工作了,所以我开始分析应用的javaScript源码并尝试找到导致该问题出现的原因。

注意其中“href”属性的值都被单引号包裹起来了,虽然现在也有几种方法能够解决这个问题,但在这里最合适的方法应该是使用DOMAPI。

 
  1. var a =document.createElement('a'); 
  2. a.setAttribute('href',g); 
  3. a.innerText = b[f].original; 

披露

我将PoC以及问题的测试截图/视频发送给了Verizon,与往常一样,Verizon的技术人员迅速给我提供了回复,并感谢我将漏洞及时上报给他们,然后迅速修复了这个问题。

更新

貌似Verizon最终还是选择了使用DOM API来解决这个问题。


Verizon最终还是选择了使用DOM API来解决这个问题


作者:Alpha_h4ck
来源:51CTO

相关文章
|
2月前
|
SQL 安全 数据库
XSS平台搭建及利用
XSS平台搭建及利用
90 1
|
存储 SQL JSON
AntiSamy:防 XSS 攻击的一种解决方案使用教程
AntiSamy:防 XSS 攻击的一种解决方案使用教程
671 0
AntiSamy:防 XSS 攻击的一种解决方案使用教程
|
8月前
|
前端开发 JavaScript 安全
前端学习笔记202307学习笔记第五十七天-模拟面试笔记网络-xss和csrf攻击
前端学习笔记202307学习笔记第五十七天-模拟面试笔记网络-xss和csrf攻击
58 0
|
10月前
|
SQL JSON 缓存
XSS 基础入门二 XSpear:XSS 安全漏洞自动扫描工具
你还在手动测试网站 XSS 安全漏洞检查吗?那么麻烦,又不一定全面解决,为了你的产品,为了在公司摸点鱼,不如尝试一下 XSS 自动扫描工具,为你的产品、工作保驾护航,减低你的工作压力,一起来试试吧!
545 0
XSS 基础入门二 XSpear:XSS 安全漏洞自动扫描工具
|
机器学习/深度学习 JavaScript 网络安全
【网络安全】实操XSS订单系统漏洞(利用盲打)
实操XSS订单系统漏洞(利用盲打)
241 0
【网络安全】实操XSS订单系统漏洞(利用盲打)
|
11月前
|
安全 前端开发 程序员
逻辑漏洞中一些自己总结关于验证码的漏洞挖掘
逻辑漏洞中一些自己总结关于验证码的漏洞挖掘
386 0
|
11月前
|
存储 SQL 监控
某xxphp网站后台存储型XSS漏洞分析
某xxphp网站后台存储型XSS漏洞分析
|
存储 安全 JavaScript
某教程学习笔记(一):16、XSS漏洞
某教程学习笔记(一):16、XSS漏洞
108 0
某教程学习笔记(一):16、XSS漏洞
|
存储 SQL JavaScript
手把手教你实现 XSS 攻击
XSS 攻击理论知识学习完成的同学可以参考这篇一些攻击实现,理论背的再好还是要实践呀
|
存储 弹性计算 安全
阿里云的运用——搭建属于自己的xss平台
在校期间搭建一个属于自己的xss平台
962 0
阿里云的运用——搭建属于自己的xss平台