我是一名软件工程师,并且一直在观看很多关于 XSS 的视频。
但是我不明白如果它在客户端运行并且不在包含数据库和许多重要文件的服务器端执行,它是多么危险。
我是一名软件工程师,并且一直在观看很多关于 XSS 的视频。
但是我不明白如果它在客户端运行并且不在包含数据库和许多重要文件的服务器端执行,它是多么危险。
如果存在 XSS 漏洞,以下是攻击者可以做的事情。
- 广告劫持- 如果您设法在网站上存储 XSS,只需将您的广告注入其中即可赚钱;)
- Click-Jacking - 您可以在页面上创建隐藏的覆盖,以劫持受害者的点击以执行恶意操作。
会话劫持- 如果 cookie 中不存在 HTTP ONLY 标志,则 JavaScript 可以访问 HTTP cookie。
内容欺骗- JavaScript 可以完全访问 Web 应用程序的客户端代码,因此您可以使用它来显示/修改所需的内容。
凭证收集- 最有趣的部分。您可以使用精美的弹出窗口来获取凭据。WiFi 固件已更新,请重新输入您的凭据以进行身份验证。
强制下载- 所以受害者没有从 absolute-safe.com 下载您的恶意 Flash 播放器?不用担心,尝试从受害者正在访问的受信任网站强制下载会更有运气。
Crypto Mining - 是的,您可以使用受害者的 CPU 为您挖掘一些比特币!
绕过 CSRF 保护 - 您可以使用 JavaScript 发出 POST 请求,您可以使用 JavaScript 收集和提交 CSRF 令牌,您还需要什么?
键盘记录- 你知道这是什么。
录制音频- 它需要用户授权,但您可以访问受害者的麦克风。感谢 HTML5 和 JavaScript。
拍照- 它需要用户授权,但您可以访问受害者的网络摄像头。感谢 HTML5 和 JavaScript。
地理位置- 它需要用户授权,但您可以访问受害者的地理位置。感谢 HTML5 和 JavaScript。与带 GPS 的设备配合使用效果更好。
窃取 HTML5 网络存储数据- HTML5 引入了一项新功能,即网络存储。现在网站可以在浏览器中存储数据以供以后使用,当然,JavaScript 可以通过 window.localStorage() 和 window.webStorage() Browser & System 访问该存储
指纹识别- JavaScript 让查找浏览器名称、版本、安装的插件及其版本、操作系统、架构、系统时间、语言和屏幕分辨率变得轻而易举。
网络扫描- 受害者的浏览器可能被滥用以使用 JavaScript 扫描端口和主机。
崩溃的浏览器- 是的!你可以用……东西淹没浏览器来崩溃浏览器。
窃取信息- 从网页中获取信息并将其发送到您的服务器。简单的!
重定向- 您可以使用 javascript 将用户重定向到您选择的网页。
Tabnapping - 只是一个花哨的重定向版本。例如,如果超过一分钟没有收到键盘或鼠标事件,这可能意味着用户是 afk,您可以偷偷地将当前网页替换为假网页。
截 屏 - 再次感谢 HTML5,现在您可以截取网页截图。盲目的 XSS 检测工具在它很酷之前就已经这样做了。
执行操作- 您正在控制浏览器,
也许一个现实生活中的例子将有助于理解一个看似很小的安全漏洞,如 XSS,是多么危险。
作为安全评估的一部分,我公司的任务是尝试访问 CEO 的个人电子邮件。我设法通过一些 OSint 获得了它的个人电子邮件地址,现在人们可以使用许多信息窃取恶意软件之一的自定义版本进行鱼叉式网络钓鱼,但我将信息收集阶段延长了一点。
事实证明,这位 CEO 喜欢船只,并且正在一家船只销售网站上出售他们的一艘。该网站似乎很业余,我注册并愚弄了一下。我发现了什么?该站点允许您管理您的密码,并在密码字段中预先填写当前密码,受此启发,我对该站点进行了更多调查。我遇到了一个存储的 XSS 漏洞:当你回答一个提议时,你可以在其中放置任意 HTML 代码,包括脚本,它将在阅读器浏览器中执行!
看起来很“无害”,不是吗?如果将它与密码管理不善结合起来怎么办?
所以我制作了一个脚本来获取密码页面(这是一个域内请求,满足 SOP),提取密码和客户端信息(UA、OS 等)并将其发送给我的 C&C。然后仔细地写了一封电子邮件,告知他们我的“购买意向”,从而向 CEO 灌输了一种冲动。
一天后,我收到了他们用来登录船只网站的密码。正如预期的那样,它与他们的电子邮件使用的密码相同(没有 2FA,我不记得这是否是一件事)并且我能够访问网络邮件(客户端信息用于模拟合法访问,以防有必要保持低调)。
长话短说,攻击不是一个简单的步骤,它是由小的征服组成的。如果你给你的对手一步的空间,你永远不会知道他们能从那里做什么。XSS 是攻击者的空间,正如您已经看到的那样。
攻击者控制的代码在客户端的 Web 应用程序的上下文中运行,可以完全控制客户端的操作,还可以读取 HTML 页面的 DOM 等。
这意味着它既可以窃取此页面内的秘密(密码等),也可以在登录客户端时执行操作(例如购买东西、在邮件客户端中发送炸弹威胁等)。请注意,这种活动通常可以对客户隐藏,因此他/她不会意识到他/她当前受到攻击。
XSS 攻击不会对服务器造成危险。这对您拥有服务器的原因是危险的。不是技术意义上的,而是非常人性化的,因为来自您网站的任何类型的 XSS 攻击通常都会以您的声誉而告终。几个测试用例: