JSON注入—Web安全深度剖析(7)

发表于:2015-5-15 09:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张炳帅    来源:51Testing软件测试网原创

分享:
  (51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  那么攻击者如何突破这类检测呢?使用URL跳转就是其方法之一。
  这类通信工具在检测是否是钓鱼网站或是恶意网站时,检测的是URL,而并非是网站的内容。比如,从QQ电子邮箱打开一个URL时,会弹出一个网页提示,如图10-29所示。
  但并不是所有的网站都有提示,比如百度、腾讯、搜狐、淘宝等。显然,这类知名网站是不可能做一些非法钓鱼网站的,所以邮箱也就不再拦截。也就是说,只有当邮箱碰到了"不认识"的网站时才会进行提示。
  这样攻击者就可能会利用URL跳转来躲过恶意检测。比如:http://www.baidu.com/page?= http://www.ta0bao.com。
  
图10-29  Email提示
  那么URL跳转漏洞是怎么产生的呢?比如,一个典型的登录跳转,代码如下:
  <%
  String url =     request.getParameter("url");
  if(!(url==null || "".equals(url) )){
  response.sendRedirect(url);
  }
  %>
  当访问http://www.secbug.org/login.jsp?url=http://www.baidu.com时,就会直接跳转到http://www.baidu.com,其HTTP请求如下:
GET  /login.jsp?url=http://www.baidu.com HTTP/1.1
Host: www.secbug.org
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 SE 2.X MetaSr 1.0
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://www.baidu.com
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 0
Date: Wed, 21 Aug 2013 10:31:24 GMT
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 SE 2.X MetaSr 1.0
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
  注:URL转发不可作为URL跳转漏洞,因为URL转发是无法进行域名跳转的,所以URL跳转漏洞也称为URL重定向漏洞。
  在PHP、ASP、ASP.NET等脚本语言中都有类似的代码进行重定向,比如PHP的重定向操作:
  <?php
  $url=$_GET['url'];
  header("Location: $url");
  ?>
  聪明的你肯定也想到了JavaScript,没错,如果网站本身存在XSS跨站脚本漏洞,那么也是可以跳转的。
  URL跳转漏洞可以说对自身并没有什么危害,但如果存在此漏洞,就极有可能成为攻击者的帮凶。
  下面介绍一个真实的案例:笔者曾在青岛的一家安全公司就职,一天晚上,一位客人(小张)匆匆找上门来说财务人员被诈骗了。当时笔者就问什么情况,小张说有个陌生人(攻击者)只给他发了一个QQ消息,就盗取了QQ号码,然后通知财务人员转账给他,说有一笔交易需要钱,这个QQ号码是小张的私人号码,只有公司内部的少许人才知道。财务人员收到信息后就直接转账,后来才发现"被钓鱼了"。
  笔者很好奇:只发了一个QQ消息就能盗取QQ号?其实,从技术上说是可以实现的,但是也非常困难,于是笔者在经过授权后对笔记本电脑进行检测,最终在一个陌生人的消息中发现了可疑信息,QQ消息显示:张XX,我在腾讯社区参加了网络美女选拔大赛,帮帮忙,投我一票。地址是:http://www.xxx.com/?xxx=c2FkYXNkYXNkYXNk,这里的域名是一个知名的网站。
  打开这个URL后,此时的域名已经变化了。但是页面却是一个真正的美女选拔大赛,不过要登录QQ后才可以进行投票。当时笔者就明白是怎么回事了,原来是钓鱼网站把QQ号盗走了。于是问小张是不是登录QQ投票了。他说是,当时他就很好奇是不是老同学或者没有备注信息的朋友,就回了一条信息"不管认识不认识都祝你成功",然后就投票了。笔者把现在的域名展示给他看,小张一看傻眼了:域名已经变了。
  不过笔者又想,这绝对是针对性的攻击,否则不可能知道小张的名字,并且攻击者在与财务人员聊天的口吻与小张也非常相似,连称呼都一样,是绝对有预谋的,当时我就问QQ有漫游记录吗?他说不知道,没用过,我打开看了一下,发现查看QQ漫游消息记录居然要密码,然后问他是不是登录QQ时曾被顶撞下线?他说前几天他的QQ就被顶撞下线了,以为是自己家人在登录他的QQ。笔者瞬间就明白了,这个攻击者真是精明,盗取QQ后没有立马展开攻击,而是开启QQ消息漫游记录,记录小张的敏感信息,了解小张的一些习惯后,再展开攻击。随后笔者又查询了QQ登录时间,发现每天晚上凌晨1点多钟都会在国外登录,想必肯定是攻击者在偷偷查看聊天记录。
  这就是一次典型的社工+钓鱼。注意,以后不管是熟人还是陌生人给你发带有URL的消息,一定要警惕,否则下一个"被钓鱼"的人可能就是你。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
指定账户恶意攻击—Web安全深度剖析(6)
44/4<1234
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号