<?php
highlight_file(__FILE__);
if(isset($_GET['url']))
{
$url=$_GET['url'];
if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url))
{
echo "Sorry,you can't use this.";
}
else
{
echo "Can you see anything?";
exec($url);
}
}

过滤了很多东西,直接读文件和反弹shell不太能用了,并且这里如果直接取反的话是无回显的,所以我们要么写文件要么反弹shell,但是正常写文件的>符号被过滤,反弹shell的bash、nc、&、>等符号都被过滤了,我直接无从下手了

这里就需要绕过关键字过滤,看了一下大佬们的wp

转义符\绕过

转义字符是用于在字符串中表示特殊字符的符号。它通常以反斜杠(\)开头,后面跟随一个特定的字符,以表示该字符的特殊含义或防止其被解释为其他含义。在不同的编程语言或环境中,转义字符的实际含义可能会有所不同,但在许多情况下,它们用来处理以下几种情况:

1. 表示特殊字符:

某些字符在字符串中有特殊的意义,使用转义字符可以让它们被当作普通字符来处理。例如:

  • \':表示单引号字符。

  • \":表示双引号字符。

  • \\:表示反斜杠字符。

2. 代表不可见或控制字符:

转义字符还可以用来表示不可见或控制字符,如:

  • \n:换行符。

  • \t:制表符。

  • \r:回车符。

3. 编码字符:

某些程序或语言支持通过转义字符来表示Unicode字符,如:

  • \uXXXX:表示对应的Unicode字符,其中XXXX是四位十六进制数字。

示例:
 command | tee [OPTION]... [FILE]...  

在PHP中,转义字符在字符串中用来处理复杂的字符:

 $example = "He said, \"Hello, World!\""; // 双引号需要转义
$path = "C:\\Program Files\\MyApp"; // 反斜杠需要转义

tee命令绕过>过滤

我们正常写文件要用到>符号,这里被过滤了,我们可以利用linux系统的tee命令来写文件

tee 命令是 Linux 中一个非常有用的命令行工具,它用于从标准输入读取数据,并将其同时输出到标准输出(通常是终端)和一个或多个文件中。它的名称来自于字母“T”,形象地表示数据分流的过程。

基本语法
 command | tee [OPTION]... [FILE]... 
 
常用选项
  • -a:将输出追加到文件末尾,而不是覆盖文件。

  • -i:忽略中断信号。

使用示例
  1. 基本用法: 将 echo 的输出同时显示在终端和文件中:

     echo "Hello World" | tee output.txt  

    这会将 "Hello World" 输出到终端,并同时写入 output.txt 文件。

  2. 追加到文件: 使用 -a 选项将内容追加到文件中:

     echo "Another line" | tee -a output.txt 
     

    这会将 "Another line" 添加到 output.txt 文件的末尾,而不会覆盖原有内容。

  3. 从其他命令获取输出: 将 ls 命令的输出同时传递给 tee 命令:

     ls -l | tee output.txt  

    这会将 ls -l 的输出显示在终端上,并保存到 output.txt 文件中。

  4. 多个文件: 将输出同时写入多个文件:

     echo "Log message" | tee file1.txt file2.txt  

    这会将 "Log message" 同时写入 file1.txtfile2.txt

解题

知道怎么绕过关键字过滤本题解法就一目了然了

首先查看根目录文件

 ?url=l\s / | tee 1.txt

然后我们访问1.txt就可以看到回显内容,看到flag文件flllllaaaaaaggggggg,我们访问

 ?url=tac /flllll\aaaaaaggggggg | 1.txt

由于la被过滤,所以l和a中间要加转义符,访问1.txt,拿到flag

[SWPUCTF 2021 新生赛]finalrce的更多相关文章

  1. [SWPUCTF 2021 新生赛]jicao

    CTF web安全 阅读代码可知当传入一个post型的参数id与wllmNB相等并且传入一个get型的参数json: 但是这里有一个函数json_decode,上网搜索可知json_decode这个函 ...

  2. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  3. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

  4. Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist

    [ACTF2020 新生赛]BackupFile 尝试找到源代码,加上题目是备份文件,猜测备份文件里面有网站的源代码,御剑扫描一下,就扫到index.php 访问index.php.bak 下载源代码 ...

  6. [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga

    [ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...

  7. [BUUCTF]REVERSE——[ACTF新生赛2020]usualCrypt

    [ACTF新生赛2020]usualCrypt 附件 步骤: 例行检查,无壳,32位程序 32位ida载入,直接看main函数 逻辑很简单,一开始让我们输入一个字符串,然后该字符串经过sub_4010 ...

  8. [BUUCTF]REVERSE——[ACTF新生赛2020]rome

    [ACTF新生赛2020]rome 附件 步骤 无壳,32位程序 32位ida载入,根据提示字符串"You are correct!",找到关键函数func v15 = 'Q'; ...

  9. [BUUCTF]REVERSE——[ACTF新生赛2020]easyre

    [ACTF新生赛2020]easyre 附件 步骤 查壳,32位程序,upx壳儿 脱完壳儿,扔进ida 分析 一开始给我们定义了一个数组, v4=[42,70,39,34,78,44,34,40,73 ...

  10. 2021江西省赛线下赛赛后总结(Crypto)

    2021江西省赛线下赛 crypto1 题目: from random import randint from gmpy2 import * from Crypto.Util.number impor ...

随机推荐

  1. [tldr] 配置windows terminal使用git bash

    windows terminal默认使用power shell作为shell,但是power shell不好用,还是习惯linux的命令行行为. 参考Windows Terminal 配置 Git B ...

  2. Ubuntu20.04搭建k8s v1.23.3版本集群

    前言 服务器统一版本 Ubuntu 20.04 搭建集群最少要两台服务器 每台服务器都需要 docker.环境配置.安装 kubeadm.kubelet 和 kubectl docker 安装 doc ...

  3. Golang入门:Linux上的go语言安装与配置

    Tips:本文以本文撰写时的 Go 语言最新版本,也就是 go.1.19.2 版本为例. Linux 发行版本使用 Ubuntu 22.04.1 LTS 为例来做演示. 安装 C 工具 Go 的工具链 ...

  4. 基于SLAM系统建图仿真,完成定位仿真

    博客地址:https://www.cnblogs.com/zylyehuo/ 基于SLAM系统完成建图仿真,详见之前的博客 基于Gazebo搭建移动机器人,并结合SLAM系统完成建图仿真 - zyly ...

  5. Top 出海 AI 公司招技术!HIX.AI & Pollo.ai | 深圳

    HIX.AI & Pollo.ai 招聘高级海外 AI 产品经理 (25-45K) 岗位职责: 负责Web 端海外 AI 产品的规划与策划,负责产品需求分析及原型设计,并制定方案推动产品研发落 ...

  6. XWorker - 人机协同的共生系统

    这是XWorker的定位,让AI写的,因为动态模型和XWorker对AI本身也有特殊意义,所以让AI写也是可以的.部分是AI的幻觉,如(四.重塑产业实践),XWorker还没实现这些.之所以保留不动, ...

  7. DVWA靶场实战(十三)——CSP Bypass

    DVWA靶场实战(十三) 十三.CSP Bypass: 1.漏洞原理: CSP Bypass全称是Content-Security-Policy,中文叫做绕过内容安全策略.Content-Securi ...

  8. Model Context Protocol

    MCP is an open protocol that enables AI models to securely interact with local and remote resources ...

  9. Codeforces Round 970 (Div. 3)

    A. Sakurako's Exam 分类讨论即可,当a为奇数,无法消去1,或者a==0且b为奇数时,无法消去2 #include <bits/stdc++.h> using namesp ...

  10. 新装ubuntu电脑的一些调整

    必要命令的安装 必要开发工具的安装 更换国内软件源 /etc/apt/sources.list文件,后面添加下面地址用来添加阿里源 deb http://mirrors.aliyun.com/ubun ...