XSS概念:通常指黑客通过HTML注入纂改了网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。
XSS有三种:
反射型xss:只是简单地把用户输入的数据反射给浏览器,简单来说,黑客往往需要用户诱使用户点击一个恶意链接,才能攻击成功。
存储型XSS:将用户输入的数据存储在服务器端。
DOM XSS:通过修改页面的DOM节点形成的XSS。
反射型xss
LOW等级:
先利用alert测试是否存在xss
出现弹窗,说明存在xss。
编写PHP文档获取页面的cookie:
<?php
$cookie=$_GET[‘cookie’];
file_put_contents(‘cookie.txt’,$cookie);
?>
编写js代码将页面的cookie发送到cookie.php中
这里的js代码要用url编码
页面跳转,说明js执行成功
接下来查看phpstudy中www目录下是否出现cookie.txt
成功拿到cookie
利用得到的cookie登陆DVWA的首页:
成功登陆
Medium等级:
同样,先利用alert进行弹窗测试
发现页面没有反应,有可能是<script>被过滤了,浏览器虽然会过滤<script>标签关键字,但是只过滤一次,所以可以想办法绕过。
(1)通过构造两个<script>标签,即嵌套:
出现弹窗,说明存xss
(2)也可以大小写混写进行绕过
出现弹窗,说明存在xss
然后利用js代码获取cookie,成功拿到cookie
High等级
还是先利用弹窗测试是否存在xss,像low和medium等级那样操作发现页面并没有出现弹窗。
接下来我们换个标签,img标签和iframe标签(在一个HTML中嵌入另一个HTML):
Img:<img src=x οnerrοr=alert(1)>
Iframe:<iframe οnlοad=alert(1)>
两个都成功的出现弹窗
存储型XSS:
和上面一样的操作,只是要注意的是在这个里面文本框是有长度限制,但是可以借助火狐的插件Tamper Data,在Tamper Data加入写的js代码获取cookie