关于AfterShock–CVE-2014-7169 测试脚本的解释

本文详细解析了一种利用Bash Shell脚本的语法特性进行命令注入的方法,通过巧妙构造环境变量,使shell解释器在遇到特定语法错误时,能够执行预设的命令。这一技巧涉及对shell语法的深入理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脚本的解析

env X='() { (a)=>\' sh -c "echo date"; cat echo

(1)

X='() { (a)=>\’ 这个不用说了,定义一个X的环境变量。但是,这个函数不完整啊,是的,这是故意的。另外你一定要注意,\’不是为了单引号的转义,X这个变量的值就是 () { (a)=>\

(2)

其中的 (a)=这个东西目的就是为了让bash的解释器出错(语法错误)

(3)

语法出错后,在缓冲区中就会只剩下了 “>\”这两个字符

(4)

于是,这个神奇的bash会把后面的命令echo date换个行放到这个缓冲区中,然后执行

(5)

后面的 cat echo是查看文件echo的内容

(6)

执行相当于 >\

其中的 \ 在Shell中相当于换行

(7)

相当于 >echo date

(8)重定向(在Shell中 >A B 相当于 B > A)

相当于 date > echo 生成echo文件

(9)结束

 

转载于:https://www.cnblogs.com/sxmcACM/p/3998912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值