Vim 的交换文件中会泄露哪些敏感信息?

信息安全 数据泄露
2021-08-18 09:34:53

通常情况下,当在某处批量上传文件时,作者忘记了一些文件正在被Vim打开并上传它们的交换文件。这会泄露一些敏感信息吗,可能是关于作者的机器或网络?

2个回答

vim 交换文件包含作者的用户名、运行 vim 的计算机的机器名以及编辑文件的某些部分。

就我个人而言,我不在乎是否有人可以读取我的机器名称或用户名。但我认为不好的部分是“已编辑文件的部分”部分:

在编辑数据库配置文件时,您可能会泄露您的凭据。大多数系统将此类数据存储在安全文件中,并禁止查看此类文件,例如通过规则中的规则.htaccess或使用 php 文件(解释后为空)。但我从未见过例如“config.php.swp”文件的规则,php(或任何其他)解释器也不会在这里提供帮助。因此,用户可以以纯文本形式查看此文件。这可能会产生后果。

一个例子: Wordpress 可以通过两种方式进行更新:或者您允许网络服务器在其文件夹中写入访问权限,或者您为其自己的网络空间提供一个 ftp 登录。这样,Wordpress 可以通过 ftp 进行自我更新。Wordpress 将此 ftp 登录信息保存在数据库中,而 db 凭据位于名为 wp-config.php 的文件中。

在最坏的情况下,有人可以查看 wp-config.php.swp 访问您的数据库并最终获得对 wordpress 实例的完整 ftp 访问权限,这只是因为有人忘记正确退出 vim 或正在通过更改处理此文件。

下载 .swp 文件

C:\Users\user\Desktop\stuff\image-resize>curl http://mydomain/.smtp_config
    .php.swp -o .smtp_config.php.swp
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Cur
    rent
                                     Dload  Upload   Total   Spent    Left  Spe
    ed
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--
    100 12288    0 12288    0     0   387k      0 --:--:-- --:--:-- --:--:--  3
    87k

解码

C:\Users\user\Desktop\stuff\image-resize>vim -r .smtp_config.php.swp  -c ":
w swpout.php" -c ":q!"

得到

  C:\Users\user\Desktop\stuff\image-resize>cat swpout.php
    <?php

    $config = array(
       "uname"=>"uname",
       "pass"=>"pass",
       "host"=>"hostname",
       "port"=>"57"
    );

攻击者可以下载没有 php 扩展名的文件(普通 php/appache 配置)并对其进行解码。