微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 有人可以解释Shell Shock Bash代码吗?

参见英文答案 > Is the behavior behind the Shellshock vulnerability in Bash documented or at all intentional?                                    4个
我在理解以下代码时遇到了问题,这是Shell Shock的“漏洞证明”代码.
有人可以向我解释一下吗?特别是,这部分“(){:;};”

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

解决方法:

env x ='(){:;}; echo weak’bash -c“echo这是一个测试”

env做什么?
 从文档中,env在修改后的环境中运行程序

env [OPTION] … [ – ] [NAME = VALUE] … [命令[ARG] …]

它清楚x是名称/变量和(){:;}; echo vulnerability’是变量的值

现在什么是(){:;};?

导出函数时,bash将其defenition存储为环境变量的值

$x() {echo hello world;}
$export x
$env | grep x
x=() {echo hello world};

现在当x ='(){:;}’表示与写作类似

$x() {:;}
$export x
$env | grep x

那就是我们间接地将导出x导入到由env创建的新环境中
这里:是bash中的null语句

希望能帮助到你

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐