No.14 笔记 | XSS漏洞:原理、类型与防御策略
一、HTML和JavaScript基础
1. HTML基础
HTML概述 :超文本标记语言,用于实现页面跳转和显示数据。结构标准 :包括<!doctype html>
声明文档类型,<html>
根标签,<head>
头部标签和<body>
主体标签等。标签分类 :分为单标签(如<br/>
、<hr/>
)和双标签(如<a></a>
、<html></html>
)。form标签 :用于创建HTML表单,包含输入元素、菜单、文本区域等,用于向服务器传输数据。iframe标签 :允许在同一浏览器窗口中显示多个页面。
2. JavaScript基础
概述 :一种直译式脚本语言,与Java无关,可动态操作HTML内容、响应事件、读写HTML元素等。引入方式 :可通过<script>
标签直接在HTML中编写,也可引用外部文件。常用函数 :包括alert()
、confirm()
和prompt()
。事件类型 :包括鼠标事件、键盘事件和HTML事件,如onmouseover
、onclick
等。
3. Cookie和Session
Cookie :保存在客户端的文本文件,用于记录用户信息,分为本地Cookie和临时Cookie。Session :存储在服务器的类HashTable结构,用于存放用户数据,通过SessionID标识。
二、XSS漏洞原理
定义 :XSS(Cross Site Scripting)是指攻击者将恶意脚本植入网页,当用户访问时脚本被执行。攻击流程 :
攻击者注入JS代码。 用户浏览包含恶意代码的页面。 浏览器执行恶意代码,达到攻击者目的。 危害 :包括弹框骚扰、挂马攻击、会话劫持、Cookie盗取、用户提权、账号盗取、DDOS攻击、蠕虫传播等。
三、XSS漏洞分类与利用
1. 反射型(非持续型)
原理 :恶意脚本附加在URL参数中,前端执行,不存储在后端。攻击步骤 :攻击者构造特殊URL,用户访问后,服务端返回拼接后的HTML,浏览器执行恶意代码。
2. 存储型(持续型)
原理 :恶意代码存储在服务器,当用户浏览相关页面时执行,持久性存储。攻击步骤 :攻击者将恶意代码提交到目标网站,用户访问时,服务端从数据库取出并返回给浏览器执行。
3. DOM型
原理 :XSS代码不需服务端解析,由浏览器端DOM解析触发。攻击步骤 :攻击者构造特殊URL,用户访问后,浏览器端直接执行恶意代码。
四、XSS漏洞绕过方法
大小写绕过 :如<ScRiPt>alert(1)</ScRiPt>
。双写绕过 :如<sc<script>ript>alert(/xss/)</script>
。反引号绕过 :绕过单双引号过滤。关闭标签绕过 :利用<>
关闭标签。超链接标签绕过 :如<a href= >1</a>
。图片链接绕过 :如<img src=1 onerror=alert(1)>
。编码绕过 :利用八进制、十进制、十六进制编码、HTML实体编码、URL编码、base64等,以及空格、回车、换行符、tab、混淆等。
五、XSS漏洞防御
CSP内容安全策略 :禁止加载外域代码、外域提交,禁止内联脚本执行和未授权脚本执行。设置HttpOnly :防止Cookie被窃取。输入输出检查 :在前端和后端进行,采用白名单或黑名单验证,对输出字符进行HTML编码。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199586.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!