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
相关推荐
NoneCoder32 分钟前
CSS 架构与命名规范
前端·css
牧杉-惊蛰6 小时前
Vue3中到达可视区域后执行
前端·javascript·vue.js
GISer_Jing6 小时前
ByteMD详解
前端·javascript
小杨升级打怪中6 小时前
前端面经-VUE3篇(二)--vue3基础知识(二)计算属性(computed)、监听属性(Watch)
前端
IoOozZzzz7 小时前
ES6异步编程中Promise与Proxy对象
前端·javascript·es6
hunandede7 小时前
av_dict_get,av_dict_set,av_dict_set_int
java·前端·javascript
linkingvision8 小时前
Chrome 136 H265 WebRTC 支持 正式版本已包含
前端·chrome·webrtc
Johny_Zhao8 小时前
在Ubuntu Server上安装Checkmk监控系统
linux·人工智能·网络安全·信息安全·云计算·shell·yum源·系统运维·checkmk
帅云毅8 小时前
文件操作--文件包含漏洞
学习·web安全·php·xss·印象笔记
光影少年9 小时前
新手学编程前端好还是后端
前端·后端