论PHP常见缝隙第二弹:常见的包罗缝隙 8090安适门户
包罗一般也就分为LFI、RFI,即local file inclusion和remote file inclusion
LFI对付LFI的话,因为很多都限制了包罗的后缀结尾必需为.php,Include ($a.'.php')例如这种的。
所以我们想包罗我们的图片马儿的话,那么就需要截断后面的这.php
00截断。需要gpc off && php<5.3.4
长文件名截断。横竖这个我很少告成。
转换字符集造成的截断。这个对包罗的话根基用不上。
还有一些cms限制包罗的后缀必需为.php,例如下面一段简单的代码
$include_file=$_GET[include_file]; if ( isset( $include_file ) && strtolower( substr( $include_file, -4 ) ) == ".php" ) { require( $include_file ); }对通报过来的截取了后面4个字符,然后判断是不是“.php”,如果是“.php”才进行包罗。
这里可以用zip(或者phar)协议嘛(固然这个也是找laterain学的,哈哈)。
首先新建一个1.php,里面随便写个phpinfo吧,
然后压缩成.zip,接着把zip的名字改成 yu.jpg。
然后把这个.jpg上传上去 然后包罗:
对付一些LFI找不到上传图片的处所的话,也有很多牛发过了一些不能上传图片LFI的技巧,各类包罗日志、环境变量啥的,这里我就也不久不多说了。
RFI下面再来说RFI。
如果能RFI的话,那么就是最便利的了。包罗长途文件,或者又是php://input data啥的,各类伪协议。
但是也都知道RFI最大的限制条件就是需要allow_url_include on且“变量前不决义路径”或者“常量”。
而Allow_url_include默认都是off,那么无论是allow_url_include on 还是“变量前无路径”或者“常量”,那都是RFI的硬伤。
这里介绍一种在allow_url_include off的情况下也能rfi的技巧,但是告成率也并不太高。
首先在php.ini里看一下allow_url_include:
; Whether to allow include/require to open URLs (like or ftp://) as files. allow_url_include = Off翻译过来就是,允许包罗url,例如、ftp://之类的协议。当off的时候必定就是不允许去包罗这样的协议。
这里我们先来测试一下:
<?php include($_GET[yu]);首先 allow_url_include && allow_url_fopen 都为on的时候
告成RFI。
然后 allow_url_include 为 on,allow_url_fopen 为off
直接包罗长途文件掉败。这时候我们用一下伪协议尝尝。
再次告成rfi。
当allow_url_include && allow_url_fopen 为off的时候。
伪协议掉败。
而包罗文件的方法:
URL file-access is disabled in the server configuration,说明也不允许包罗。
然而,必定还有不少人记得很久以前的阿谁星外无可执行目录的时候,操作长途挪用cmd继续提权。
阿谁操作的是共享文件,然后在星外主机上来执行。
那么这里我们也尝尝:
包罗共享文件告成!这里只本地测试了,没具体测试长途。
但是由于445的原因 可能根基都掉败。
转载自:,在原文根本上有简单整理改削。
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/12601.html