网安入门16-XSS(三种类型)
什么是XSS漏洞——来自Google Gemini
XSS漏洞,全称跨站脚本攻击(Cross-Site Scripting),是代码注入的一种。它允许恶意用户将代码注入到网页上,原理是攻击者将恶意代码注入到可信网站的页面中,当用户浏览该页面时,恶意代码就会被浏览器执行,从而达到攻击者的目的。
XSS攻击的常见危害包括:
- 盗取用户敏感信息,如Cookie、账号密码等;
- 控制用户浏览器,进行钓鱼攻击、重定向等;
- 篡改网页内容,进行欺诈等。
XSS漏洞的常见类型包括:
- 反射型XSS:攻击者将恶意代码通过URL参数、表单提交等方式注入到目标网页中,当用户访问该网页时,恶意代码就会被执行;
- 存储型XSS:攻击者将恶意代码注入到数据库等存储介质中,当用户访问包含恶意代码的网页时,恶意代码就会被执行;
- DOM型XSS:攻击者利用JavaScript代码动态地将恶意代码注入到网页中,当用户访问该网页时,恶意代码就会被执行。
XSS漏洞的防范措施包括:
- 对用户输入进行严格的过滤和验证;
- 对输出内容进行转义处理;
- 使用安全的编码规范;
- 更新浏览器和Web服务器软件。
我的理解
跨站脚本攻击XSS(Cross Site Scripting,XSS),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意JS代码,当用户浏览该页面时,嵌入Web里面的JS代码会被执行,从而达到恶意攻击用户的目的。
虽然泄露个人信息较为严重,但是实战难以利用,比较鸡肋,最大的危害就是能窃取用户Cookie资料,从而执行任意操作,在挖洞中应该比较常见。
反射型XSS
这是一个查询你最喜欢的球星的页面,输入kobe,就回显愿你和kobe一样,那我随便输,都会在前端的Javascript中复现,这个时候思路就来了
输入作者的名字,原封不动的回显输入的东西
接着你变成黑客,输入经典的<script>alert(1)</script>
,神奇的东西出现了
上方弹出了一个大大的1,而下方没有回显,说明语句进入了代码中执行
存储型XSS
看到一个留言板,先故技重施
弹了个1,可以看到留言列表中多了一条记录,并且查看源代码是原封不动的存入数据库中的
接下来就是见证存储型的危害了,换一个浏览器访问同一个的URL,也直接弹1!
DOM型XSS
DOM型XSS全称Document Object Model,使用DOM动态访问更新文档的内容、结构及样式。
HTML标签都是节点,节点组成了节点树。通过HTML DOM 可以对树上的所有节点进行修改。
服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞。
下面看一个DOM将html转换为树状结构体,深入的理解DOM结构标准:
所以说DOM型xss可以在前端通过js渲染来完成数据的交互,达到插入数据造成xss脚本攻击,且不经过服务器,所以即使抓包无无法抓取到这里的流量,而反射性与存储型xss需要与服务器交互,这便是三者的区别。