10.4 URL跳转与钓鱼
URL跳转事件是比较常见的,比如,登录网站后,从登录页面跳转到另一个页面,这就叫作URL跳转,但是URL跳转怎么和钓鱼联系在一起呢?下面将详细介绍URL跳转与钓鱼。
10.4.1 URL跳转
URL跳转一般分为两种,一种为客户端跳转,另一种为服务器端跳转。两种跳转对用户来说都是透明的,都是指向或跳转到另一个页面,页面发生了变化,但是对开发者来说,其区别是很大的。
1.客户端跳转
客户端跳转也被称为URL重定向,用户浏览器的地址栏URL会有明显的变化,比如,当前页面为http://www.xxser.com/new.php,当单击"登录"按钮后会指向http://www.xxser.com/ login.php,且页面发生了变化,这就是客户端跳转。
比如Index.jsp中含有重定向语句,代码如下:
<%
response.sendRedirect("x.jsp");
%>
当我们在浏览器中打开Index.jsp时,执行到此语句,页面就会发生变化,且URL也会变化,在HTTP协议中表现如下:
GET /index.jsp HTTP/1.1 Host: www.xxser.com Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 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 Cookie: JSESSIONID=B996CBC60FE32DC22CC30579DC34A6BB HTTP/1.1 302 Moved Temporarily Server: Apache-Coyote/1.1 Location: http://www.xxser.com/x.jsp Content-Type: text/html;charset=ISO-8859-1 Content-Length: 0 Date: Wed, 21 Aug 2013 06:33:50 GMT GET /x.jsp HTTP/1.1 Host: www.xxser.com Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 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 Cookie: JSESSIONID=B996CBC60FE32DC22CC30579DC34A6BB |
当浏览器请求Index.jsp后,收到302指示(也叫重定向)就会立刻进行跳转,而用户是感觉不到的。
2.服务器端跳转
服务器端跳转也称为URL转发,服务器端跳转时,用户浏览的地址栏URL是不会变化的,比如,当前页面URL为http://www.xxser.com/new.php,当单击"登录"按钮后,浏览器地址栏的URL没变,但是页面会发生变化。
在Java Servlet中跳转代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("upload.jsp").forward(request, response);
}
服务端跳转在HTTP协议中表现形式如下:
GET /UrlFrowardServlet HTTP/1.1 Host: www.xxser.com Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 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 Cookie: JSESSIONID=B996CBC60FE32DC22CC30579DC34A6BB HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: text/html;charset=gbk Content-Length: 735 Date: Wed, 21 Aug 2013 06:46:32 GMT <html> <head>Upload Jsp</head> ......... |
还有一些跳转不属于转发,也不属于重定向,而是直接向服务器发送请求,比如,一个简单的<a>标签:
<a href= "http://www.xxser.com/news.jsp" >新闻列表</a>
10.4.2 钓鱼
网络中的钓鱼是指钓鱼式攻击,比如,攻击者模拟腾讯网站,或者一些CS架构软件,当用户使用这些软件时,攻击者可以截获用户的账户信息,如图10-27所示,就是一款比较老的QQ密保钓鱼软件。QQ空间钓鱼软件如图10-28所示。
这类钓鱼软件非常多,不仅针对盗取QQ号码,还有淘宝的钓鱼软件、YY的钓鱼软件、新浪的钓鱼软件等,只要与利益相关,都可能存在类似的钓鱼软件。
到目前为止,钓鱼软件已经做得非常完善,几乎与官方的软件完全相同,连域名也非常相似,比如"item.taobao.shoptao.com"、"qq.guanjio.com"、"item.ta0bao0.com"等,这样用户很容易上当。
图10-27 密保钓鱼软件
图10-28 QQ空间钓鱼软件
攻击者的钓鱼网站的传播途径无非是电子邮箱、社交网站等信息交流渠道,时间长了,各厂商也有了防护措施,比如QQ的黑名单策略,攻击者在QQ群、QQ空间中发送恶意URL时,如果此URL不能被识别,或者是恶意URL,QQ将会提示是恶意网站、盗号网站等。这样用户的安全就有了进一步的保障。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。