这个ycombinator 线程指出
env X='() { (a)=>\' sh -c "echo date"
允许您删除第一个令牌,然后运行结果,将输出发送到已删除的令牌。我可以看到这个() { (a)=>\'
部分有魔法,但这是一件很难搜索的事情,所以如果有人能解释一下内部工作原理,那就太好了。
在链接的可能重复问题中,变量通过使用导出到环境变量,
env X="() { :;} ;
这真的不一样
env X='{ (a)=>\'
这是我试图了解工作原理的部分。那么,(a)
和=>\'
部分有什么作用呢?显然,它正在做一些非常相似的事情,但不同之处在于它绕过了这个漏洞的第一个补丁,请参阅 chepner 的评论。