文件包含漏洞(Local File Inclusion,LFI)是一种常见的 web 应用程序漏洞,攻击者利用该漏洞可以读取本地服务器上的敏感文件,或执行任意代码,从而实现对系统的控制。 PHP伪协议 PHP 伪协议是一种特殊的 URI 协议,可以绕过通常的协议限制,直接访问本地文件和执行 PHP 代码。
file_get_contents: 把整个文件读入一个字符串中。该函数是用于把文件的内容读入到一个字符串中的首选方法。 func=file_get_contents&p=index.php 得到php源码,进行代码审计。 <?php$disable_fun=array("exec","shell_exec","system","passthru","proc_open","show_source","phpinfo","popen","dl","eval...
file_put_contents() 在实例中可以发现,file_get_contents()的$filename参数不仅仅为文件路径,还可以是一个URL(伪协议)。 该协议语法为:php://filter:/<action>=<name> 我们可以通过构造含有漏洞的语句,查看想要看的代码: file=php://filter/convert.base64-encode/resource=index.php 。 #3: 对php协议进行...
http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b http:// & https:// 协议 条件: allow_url_fopen:on allow_url_include :on 作用:常规 URL 形式,允许通过 HTTP 1.0 的GET方法,以只读访问文件或资源。CTF中通常用于远程包含。 用法:http://example.com http...
不同的Web语言,其文件读取漏洞的触发点也会存在差异,本期以读取不同Web文件漏洞为例进行介绍,具体的漏洞场景请读者自行查阅,在此不再赘述。PHP标准函数中有关文件读的部分不再详细介绍,这些函数包括但可能不限于:file_get_contents()、file()、fopen()函数(及其文件指针操作函数fread()、fgets()等),与...
目前遇到的是file_get_contents其他情况具体而定 八、is_numeric绕过 空格、\t、\n、\r、\v、\f、+、-能够出现在参数开头,“点”能够在参数任何位置,E、e只能出现在参数中间。 九、php5,3,29,这里可以直接用%0b绕过\s(空白字符)的匹配 十、既是0又是1的情况 ...
1、fopen/file_get_contents 每次请求都会重新做DNS查询,并不对 DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen /file_get_contents 好很多。
file_get_contents可以获取远程数据,但常用网络协议已经被正则过滤,因此需要选取其他协议。查阅PHP支持的协议和包装,发现RFC 2397的data协议可用。巧合的是,file_exists对于data指向内容判断为不存在。 最终构造url为: http://www.ctf.com/3.php?^.^=data://text/plain;charset=unicode,(●'◡'●) challenge ...
_);class ctfshow{ function __wakeup(){ die("private class"); } static function getFlag(){ echo file_get_contents("flag.php"); }}call_user_func($_POST['ctfshow']);例题分析:直接调用ctfshow类中的getFlag方法就好,payload为post:ctfshow=ctfshow::getFlag**补充:**call_...
ctf中关于php伪协议的考查 1 php://input协议 第一个例子 flag.php <?php$flag = 'flag{flag_is_here}'; test1.php <?php include('flag.php'); $a= $_GET["a"]; if(isset($a)&&(file_get_contents($a,'r'))=== 'this is test'){...