当前位置: 首页 > news >正文

RCE-Labs超详细WP-Level9

分析源码

  • 与前几关不同的语句依旧这个函数
    preg_match("/[A-Za-z\"%*+,-.\/:;=>?@[\]^`|]/", $cmd)
    
  • 这关WAF过滤了更多的字符
    • 只剩下了 数字, \, 单引号, 和 $, 空格等可以使用

解题分析

  • 这里就想到了 bash 终端可以将八进制转义作为命令进行执行
    • 注意的是, 这里要求的是 bash
    • 所以在注释中, 探姬就说了, 这个靶场的 Dockerfile 通过执行如下命令
      RUN ln -sf /bin/bash /bin/sh
      
    • 首先要知道 PHP 的 system 命令执行的是 /bin/sh, 而 /bin/sh 只是个软连接
    • 而靶场使用的底层镜像 php:7.3-fpm-alpine 默认指向的 /bin/busybox
      • /bin/busybox 不是 bash, 并不支持八进制转义
    • 所以要通过上述命令重新定义软链
  • 那接着就讲一下如何使用八进制转义进行命令执行
    • 使用 $'' 的格式可以进行八进制转义进行命令执行
      • 比如
        ls -> $'\154\163'
        
    • 但是如果要是命令中带有参数也是吗
      • 比如
        ls -l -> $'\154\163\40\55\154'
        
      • 尝试了一下, 发现不行
    • 如果带有参数的话, 空格需要单独拿出来
      • 比如
        ls -l -> $'\154\163' $'\55\154'
        

解题步骤

  • 上文大概简述了解题思路
    • 探姬贴心的在靶场中留了一个 exp.php
      • 而这个 EXP, 就来源于探姬写的工具(下面是在线网址和项目地址)
        • https://github.com/ProbiusOfficial/bashFuck
        • https://probiusofficial.github.io/bashFuck/
  • 使用 exp.php 生成 payload
    • 在这里插入图片描述

    • 这个 exp.php 其实包含了后面几关

  • 这个时候直接拿 payload 去用就可以了(真的吗)
    • 记得上面说的, 带有参数的命令, 空格要单独拿出来吗?
  • 所以最后 payload 如下
    $'\143\141\164' $'\57\146\154\141\147'
    
  • 在这里插入图片描述

扩展

$'...'的用法

处理特殊字符

echo $'Hello\nWorld'  
# 输出:
# Hello
# World

使用 Unicode 或十六/八进制字符

echo $'\u4F60\u597D'  # 输出 "你好"
echo $'\xE4\xBD\xA0\xE5\xA5\xBD'  # 也是 "你好"

处理引号和退格

echo $'It\'s a test'  # 输出:It's a test
echo $'ABC\bD'  # 输出:ABD (\b 退格,去掉 C)

结合变量

name="World"
echo $'Hello\n'$name  
# 输出:
# Hello
# World

相关文章:

  • tomato靶场通关攻略
  • C++编译问题——1模板函数的实现必须在头文件中
  • 生成式AI+安全:API防护的“进化革命”——从被动防御到智能对抗的技术跃迁
  • 得物 Android Crash 治理实践
  • Vim忍者速成秘卷:让你的键盘冒出残影の奥义
  • 鸿蒙OS开发ForEach循环渲染
  • qt中再函数中开辟的内存,要不要手动释放?
  • 实现图形界面访问无显示器服务器
  • 【面试】JVM
  • 侯捷C++课程学习笔记:详解多态(五)
  • 【后端】【django drf】django自动导出优雅的api文档的写法
  • easy-poi导出and导入一对多数据excel
  • 基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)
  • mov格式视频如何转换mp4?
  • GESP2024年3月认证C++三级( 第三部分编程题(2)完全平方数)
  • PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建
  • USB数据采集卡 Labview采集卡 32路AD模拟量采集 DAQ卡
  • 前瞻技术新趋势:改变未来生活方式的技术探索
  • 一个简单的PHP框架
  • 在 Qt 中自定义控件样式:使用 QProxyStyle 代理和修改绘制元素
  • 蒲慕明院士:好的科普应以“质疑、讨论公众关切的科学问题”为切入点
  • 海外市场,押注中国无人驾驶龙头
  • 玛丽亚·凯莉虹口连唱两夜,舞台绽放唤醒三代人青春记忆
  • 广州医药集团有限公司原党委书记、董事长李楚源被“双开”
  • 东部沿海大省浙江,为何盯上内河航运?
  • 高途一季度净利润同比增长1108%: “与吴彦祖一起学英语”短时间内就实现了盈利