利用XSS漏洞
翻译
原文:https://portswigger.net/web-security/cross-site-scripting/exploiting
- name: 翻译
desc: 原文:https://portswigger.net/web-security/cross-site-scripting/exploiting
bgColor: '#F0DFB1'
textColor: 'green'
2
3
4
# 利用跨站脚本漏洞
使用alert()
函数创建一个弹出窗口,这是 证明你发现了跨站脚本漏洞 的传统方法。但这并不是因为 XSS 与弹出窗口有任何关系;这只是一种证明你可以在给定站点上执行任意 JavaScript 的方法。你可能会注意到有些人使用alert(document.domain)
,这是一种明确 JavaScript 在哪个站点上执行的方法。
有时,你希望更进一步——通过提供完整的漏洞利用,来证明 XSS 漏洞是真正具有威胁的。在本节中,我们将探讨利用 XSS 漏洞的三种最流行和最强大的方法。
# 1利用跨站脚本窃取cookie
窃取 cookie 是利用 XSS 的传统方式。大多数 Web 应用程序使用 Cookie 进行会话处理。你可以利用跨站脚本漏洞将受害者的 Cookie 发送到你自己的域,然后手动将 Cookie 注入浏览器并冒充受害者。
在实践中,这种方法有一些明显的局限性:
- 受害者可能没有登录。
- 许多应用程序对 JavaScript 使用了
HttpOnly
标志以隐藏 cookie。 - 会话可能会因其他因素而锁定,例如用户的 IP 地址。
- 在你劫持会话之前,会话可能会超时。
- name: 实验室-从业者
desc: 利用跨站脚本窃取cookie >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/cross-site-scripting/exploiting/lab-stealing-cookies
bgColor: '#001350'
textColor: '#4cc1ff'
2
3
4
5
6
# 2利用跨站脚本捕获密码
如今,许多用户都有密码管理器,可用于自动填充密码。你可以创建密码输入框,读出自动填充的密码并将其发送到你自己的域。这种技术避免了与窃取 cookie 相关的大多数问题,若受害者在其他账户中 重复使用了相同的密码,则你甚至可以访问其他每个账户。
这种技术的主要缺点是——它仅适用于 “具有密码管理器并且自动填充密码” 的用户。(当然,如果用户没有保存密码,你仍然可以尝试通过 现场网络钓鱼攻击 来获取他们的密码,但这两者并不是完全相同的。)
- name: 实验室-从业者
desc: 利用跨站脚本捕获密码 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/cross-site-scripting/exploiting/lab-capturing-passwords
bgColor: '#001350'
textColor: '#4cc1ff'
2
3
4
5
6
# 3利用跨站脚本执行CSRF
合法用户在网站上可以做的任何操作,你也可以使用 XSS 来代替他做。根据目标网站类型的不同,也许你能够让受害者发送消息、接受好友请求、向源代码存储库提交后门,或者转移一些比特币。
一些网站允许登录用户更改其电子邮件地址,而无需重新输入密码。如果你发现了 XSS 漏洞,则可以使其触发此功能,将受害者的电子邮件地址 更改为 你所控制的电子邮件地址,然后触发密码重置,以获取对该帐户的访问权限。
这种类型的漏洞利用,通常被称为跨站请求伪造(CSRF) (opens new window),这有点令人困惑,因为 CSRF 也可能作为独立漏洞发生。当 CSRF 作为独立漏洞出现时,可以使用反 CSRF 令牌等策略对其进行修复。但是,如果同时存在 XSS 漏洞,则这些策略将失去保护作用。
- name: 实验室-从业者
desc: 利用跨站脚本执行CSRF >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/cross-site-scripting/exploiting/lab-perform-csrf
bgColor: '#001350'
textColor: '#4cc1ff'
2
3
4
5
6