【XSS】XSS漏洞详细指南
概述
XSS的三种类型
执行任意 JS 代码的方式
在原始HTML中注入绕过手法
在 HTML标记内注入绕过手法
在JavaScript代码中注入绕过手法
其他绕过手法
XSS常见有效载荷
检索Cookies
窃取页面内容
键盘记录器
查找内部IP地址
端口扫描器
自动填充密码捕获
窃取 PostMessage 消息
窃取 CSRF 令牌
XSS Fuzz payload
概述
跨站脚本攻击(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,攻击者通过在网页上注入恶意脚本代码,从而在用户的浏览器上执行恶意操作。这些脚本可以是 JavaScript、HTML 或其他网页脚本语言。一旦用户在受感染的网页上进行交互,如点击链接或填写表单,恶意脚本就会在用户浏览器上执行,从而导致多种安全问题,包括但不限于:
窃取用户信息:攻击者可以利用 XSS 漏洞窃取用户的敏感信息,如用户会话 cookie、登录凭证等。
会话劫持:通过获取用户的会话信息,攻击者可以冒充合法用户,执行未授权的操作。
网页篡改:攻击者可以修改网页内容,显示虚假信息,诱导用户点击恶意链接或下载恶意文件。
钓鱼攻击:攻击者可以伪装成合法网站或服务,诱骗用户输入敏感信息,如用户名、密码、信用卡信息等。
XSS 漏洞通常出现在没有充分验证用户输入的地方,比如网站的搜索框、评论区、表单提交等。预防 XSS 攻击的方法包括对用户输入进行严格过滤和转义,使用安全的开发框架和编程语言,以及定期对网站进行安全审计和漏洞扫描。
XSS的三种类型
要成功利用 XSS,首先需要找到的是在网页中反映您控制的值,这个值有三种类型:
中间反射:如果参数的值甚至路径的值在网页中反映,可以利用反射型 XSS。
存储和反射:如果发现控制的值已保存在服务器中,并且每次访问页面时都会反映,可以利用存储型 XSS。
通过 JS 访问:如果发现控制的值正在使用 JS 访问,您可以利用DOM XSS。
执行任意 JS 代码的方式
1、原始 HTML
如果输入在原始 HTML页面上反映,可以直接用一些 HTML 标签以执行 JS 代码:<img , <iframe , <svg , <script ...
2、在 HTML 标签属性内部
从属性和标签中闭合逃脱并创建新的 HTML 标签以滥用,例如:"> 被编码或删除),取决于标签,您可以创建执行 JS 代码的事件:" autofocus onfocus=alert(1) x="
如果无法从属性中逃脱(" 被编码或删除),则取决于您的值反映在哪个属性中(您是否控制所有值或仅部分值),您将能够滥用它。例如,如果您控制像 onclick= 这样的事件,您将能够使其在单击时执行任意代码。另一个有趣的例子是属性 href,您可以使用 javascript: 协议来执行任意代码:href="javascript:alert(1)"
如果您控制类名,Angular 执行 XSS 的奇怪示例:
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Gherbirthday0916/article/details/138494063