php文件包含漏洞(利用phpinfo)复现

 利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面

再访问http://192.168.80.156:8080/lfi.php?file=/etc/passwd,可以看到该页面是存在文件包含漏洞的。

先讲一下利用phpinfo上传文件,然后在文件包含的原理:

参考链接:https://github.com/vulhub/vulhub/tree/master/php/inclusion

在给PHP发送POST数据包时,如果数据包里包含文件区块,无论访问的代码中是否有处理文件上传的逻辑,php都会将这个文件保存成一个临时文件(通常是/tmp/php[6个随机字符]),这个临时文件在请求结束后就会被删除,同时,phpinfo页面会将当前请求上下文中所有变量都打印出来。但是文件包含漏洞和phpinfo页面通常是两个页面,理论上我们需要先发送数据包给phpinfo页面,然后从返回页面中匹配出临时文件名,将这个文件名发送给文件包含漏洞页面。

因为在第一个请求结束时,临时文件就会被删除,第二个请求就无法进行包含。

但是这并不代表我们没有办法去利用这点上传恶意文件,只要发送足够多的数据,让页面还未反应过来,就上传我们的恶意文件,然后文件包含:

1)发送包含了webshell的上传数据包给phpinfo,这个数据包的header,get等位置一定要塞满垃圾数据;

2)phpinfo这时会将所有数据都打印出来,其中的垃圾数据会将phpinfo撑得非常大

3)PHP默认缓冲区大小是4096,即PHP每次返回4096个字节给socket连接

4)所以,我们直接操作原生socket,每次读取4096个字节,只要读取到的字符里包含临时文件名,就立即发送第二个数据包

5)此时,第一个数据包的socket连接其实还没有结束,但是PHP还在继续每次输出4096个字节,所以临时文件还未被删除

6)我们可以利用这个时间差,成功包含临时文件,最后getshell

具体步骤:

在网上找的脚本:https://github.com/vulhub/vulhub/blob/master/php/inclusion/exp.py

利用该脚本上传我们的恶意文件

接下来只要运行脚本就可以成功上传我们的文件了

http://192.168.80.156:8080/lfi.php?file=/tmp/g&1=system(%27cat%20/etc/passwd%27);

原文地址:https://www.cnblogs.com/xiaoqiyue/p/10158702.html

时间: 2024-10-08 01:15:09

php文件包含漏洞(利用phpinfo)复现的相关文章

PHP文件包含漏洞利用

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

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

文件包含漏洞利用

文件包含可以利用的方式 (1) 直接进行文件的遍历读取:(读取敏感信息) 在获悉中间件 IIS.apache与第三方集成包等程序默认安装路径的情况,可以直接利用文件包含结合目录遍历进行"配置文件的读取" include.php?file=../../../etc/pass include.php?file=../../../xampp/htdocs/config.php (2)解析符合php规范的任何文件:(本地包含配合文件上传) 可以利用文件包含函数可以解析任何符合PHP规范的文件的

文件包含漏洞

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

PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的一种攻击手段.本文对PHP文件包含漏洞的形成.利用技巧及防范进行了详细的分析,并通过一个真实案例演示了如何利用PHP文件包含漏洞对目标网站进行渗透测试,最终成功获取到网站的WebShell. 1. PHP文件包含漏洞介绍 首先,我们来介绍下何为文件包含漏洞.严格来说,文件包含漏洞是“代码注入”的一种

DVWA篇四:文件包含漏洞

1      测试环境介绍 测试环境为OWASP环境中的DVWA模块 2      测试说明 2.1  什么时远程文件包含漏洞 什么才是"远程文件包含漏洞"?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. 涉及到的危险函数:include(),require()和include_once(),require_once() Include:包含并运行指定文件,当包含外部文件

网站安全(7) —— PHP文件包含漏洞介绍

其原理就是注入一段用户能控制的脚本或代码,并让服务端执行.文件包含漏洞可能出现在JSP.PHP. ASP等语言中,原理都是一样的,本文只介绍PHP文件包含漏洞. 要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件: 1. Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 (文件包含函数还有 include_once().require().require_once()) 2. 用户能够控制该动态变量 现在来看一段简单的文件包含代码: ? 1 2 3 <?ph

CVE-2020-1938 Apache-Tomcat-Ajp 文件包含漏洞复现

此文转自 Apache Tomcat会开启AJP连接器,方便与其他WEB服务器通过AJP协议进行交互.由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器.此漏洞为文件包含漏洞,攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件,如:webapp配置文件.源代码等 影响版本:Apache Tomcat=6 ,7 <= Apache Tomcat < 7.0.100 ,8<= Apache Tomcat < 8.5.51  9<=

2019-11-12:Discuz3.2漏洞文件包含漏洞复现

*文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. Discuz3.2漏洞文件包含漏洞复现,由于创建专题时未对 ,静态化名称,做任何限制引发此漏洞问题,问题出在代码中的函数check_seccode(),该函数在/source/class/helper/helper_seccheck.php中,作用是检查验证码是否正确.在后台的防灌水功能中可以设置验证码类型,对应的变量是$_G['setting']['seccodedata']['