Linux 变量操作符“${}“
"${}"是对变量进行处理的一个函数,它可以对变量值进行取长度,截取,替换等操作,也可用于RCE漏洞拼接绕过
·
目录
一、什么是"${}" :
"${}"是对变量进行处理的一个函数,它可以对变量值进行取长度,截取,替换等操作
二、具体用法:
我们用来实验的变量为环境变量$PATH
$PATH 内容如下
1、取长度:
命令 :
echo ${#PATH}
我们可以看到$PATH变量的长度为 142
2、截取字符串
格式为:
${PATH:start:length}
start:起始位置
length:截取长度,可为负数
- 字符串首位置为0
- start参数可不加,默认为0
- 可在 start 参数前加 ' ~ ' 符号,意为从末尾开始计数
- 当length为负数时代表从起始位置截取到倒数第length个字符(包含此字符)(此时倒数第一个的序号为-1)
示例一:
命令 :
echo ${PATH:0:1}
从第0位开始,截取一个字符
结果:
实例二:
命令 :
echo ${PATH::1}
这次没加start参数,默认从0位开始
结果:
实例三:
命令 :
echo ${PATH: ~0:1}
从倒数第0位返回1个字符
结果:
三、替换字符
单替换:
${file/a/b}
将字符串中第一个a替换为b
示例:
命令 :
echo ${PATH/usr/root}
结果:
我们可以看到第一个"usr"变为了"root"
全替换:
${file//a/b}
将字符串所有的a替换为b
示例:
命令 :
echo ${PATH//usr/root}
结果:
我们可以看到字符串中所有的"usr"变为了"root"
四:扩展利用
该函数可用于RCE漏洞中拼接指令使用,具体方法我会在下一篇文章讲到
更多推荐
已为社区贡献1条内容
所有评论(0)