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

polarctf-web-[rce1]

考点:

(1)RCE(exec函数)

(2)空格绕过

(3)执行函数(exec函数)

(4)闭合(ping命令闭合)

题目来源:Polarctf-web-[rce1]

解题:

这段代码实现了一个简单的 Ping 测试工具,用户可以通过表单提交一个 IP 地址,服务器会执行 ping 命令并返回结果。

  1. 命令注入漏洞 (高危)

  • 漏洞位置: $cmd = "ping -c 4 {$ip}";exec($cmd, $res);

  • 问题描述: 代码仅过滤了空格字符,攻击者可以使用以下方式绕过:

    • 使用制表符 %09 代替空格

    • 使用 ${IFS} (Bash 内部字段分隔符)代替空格(本题使用这个)

    • 使用重定向符号 <> 不需要空格

    • 使用 ;&&|| 等命令连接符

  • 攻击示例:

     127.0.0.1;cat${IFS}/etc/passwd127.0.0.1%0als${IFS}-l
  1. 输入验证不足 (中危)

  • 问题描述: 仅检查了是否包含空格,没有进行有效的 IP 地址格式验证

 <?php​$res = FALSE;​if (isset($_GET['ip']) && $_GET['ip']) {$ip = $_GET['ip'];$m = [];if (!preg_match_all("/ /", $ip, $m)) {  # 检测ip是否含有空格,如果不含有则进入里层,m用于存储匹配的数组$cmd = "ping -c 4 {$ip}";exec($cmd, $res);   # 执行cmd命令,res用于存储命令的每一行输出} else {$res = $m;}}?>​<!DOCTYPE html><html><head><meta charset="utf-8"><title>ping</title></head><body><style>html{height:100%;}body{padding: 0;margin: 0;background: url(1.png);background-size: 100% 100%;position: absolute;}</style>​<h1>就过滤了个空格,能拿到flag算我输</h1>​<form action="#" method="GET"><label for="ip">IP : </label><br><input type="text" id="ip" name="ip"><input type="submit" value="Ping"></form>​<hr>​<pre><?phpif ($res) {print_r($res);}?></pre>​<?phpshow_source(__FILE__);?>​</body></html>

用分号闭合ping命令,输入ls,点击"Ping"查看当前目录文件

使用命令查看可疑文件,由于过滤了空格,此处使用${IFS}进行绕过:;cat${IFS}fllllaaag.php

点击"Ping"

成功回显,查看源码获得flag

http://www.xdnf.cn/news/6554.html

相关文章:

  • P1439 【模板】最长公共子序列
  • 第五部分:第五节 - Express 路由与中间件进阶:厨房的分工与异常处理
  • “多维像素”可赋能具身智能非凡感知力——昱感微参加2025松山湖中国IC创新高峰论坛
  • 2026《数据结构》考研复习笔记四(绪论)
  • [AI算法] LLM训练-构建transformers custom model
  • 安卓中0dp和match_parent区别
  • Verilog HDL 语言整理
  • Vue.js教学第二章:Vue实例创建与核心选项全解析
  • 「Mac畅玩AIGC与多模态40」开发篇35 - 用 Python 开发服务对接 SearxNG 与本地知识库
  • C++(16):“”符号
  • 【ARM】MDK如何将变量存储到指定内存地址
  • GESP2025年3月认证C++二级( 第三部分编程题(1)等差矩阵)
  • conda创建环境常用命令(个人用)
  • 优雅使用Gunicorn进程管理FastAPI
  • 硬件厂商的MIB文档详解 | 如何查询OID? | MIB Browser实战指南-优雅草卓伊凡
  • 基于MATLAB-GUI图形界面的数字图像处理
  • 深入理解For循环及相关关键字原理:以Python和C语言为例
  • uni-app x正式支持鸿蒙原生应用开发
  • LeetCode Hot100刷题——合并区间
  • docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)
  • Ubuntu24.04 安装 5080显卡驱动以及cuda
  • 宇树科技申请 “机器人牌照” 商标,剑指机器人领域新高度​
  • 安装Minikube
  • Redis——底层数据结构
  • Tomcat 配置 HTTPS 访问全攻略(CentOS 环境)
  • WebSocket聊天室的简单制作指南
  • 使用IDEA开发Spark Maven应用程序【超详细教程】
  • JMeter 测试工具--组件--简单介绍
  • 解决CLion控制台不能及时显示输出的问题
  • 盲盒软件开发展望:从“随机消费”到“情感经济”,开启下一代娱乐消费革命