参见英文答案 > 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] 举报,一经查实,本站将立刻删除。