PHP-zlib协议

[题目信息]:

题目名称题目难度
PHP-zlib协议1

[题目考点]:

zlib: 的功能类似 gzopen(),但是其数据流还能被 fread() 和其他文件系统函数使用。

[Flag格式]:

SangFor{J5u2yaCzHtmCTKukEMHVnKPKGJZOnnqY}

[环境部署]:

docker-compose.yml文件或者docker tar原始文件。

http://分配ip:2057

[题目writeup]:

1、实验主页

2、题解分析

<?php
highlight_file(__FILE__);
error_reporting(0);
function filter($file){
    if(preg_match('/filter|\.\.\/|http|https|data|data|rot13|base64|string/i',$file)){
        die('hacker!');
    }else{
        return $file;
    }
}
$file=$_GET['file'];
if(! is_file($file)){
    highlight_file(filter($file));
}else{
    echo "hacker!";
}  

分析代码逻辑,与上一题相同。首先定义了filter()方法对用户输入进行验证和过滤,不能含有正则表达式当中的字符串,并且过滤了上一题所使用的filter。

在第二个if条件判断中,如果传入的值不是正常存在的文件,并且通过filter()方法检验通过即可调用highlight_file打印源码。

可以使用其他协议进行绕过,例如zlib协议

?file=compress.zlib://flag.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值