%20%7B%20%3A%3B%20%7D%3B%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A5%E5%BF%97%E4%B8%8A%E7%9A%84%E7%94%A8%E6%88%B7%E4%BB%A3%E7%90%86%E4%B8%AD.png)
谁能告诉我有人试图用用户代理中的以下代码做什么:
() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 + 7`H;/bin/uname -a;echo @
我有一个脚本,当有人在他们的用户代理中有这个或类似的东西时,它会告诉我 - 一个带有 () { :; 的看起来更卑鄙的字符串。 };它让用户被我的服务器阻止
谢谢
答案1
他们正试图利用炮弹休克。如果他们尝试的路径(他们通常会尝试猜测 cgi 路径)碰巧容易受到攻击,则输出将包含您的 uname。
其余的(文本/纯内容类型、M1337H 第一行和 @ 最后一行)主要是对输出的修饰。提供“Content-type:text/plain”将确保 Web 服务器不会吃掉它,并且 uname 需要位于 M1337H 和 @ 之间,这可能是为了过滤掉合法的非易受攻击的 cgi 确实包含以下内容的情况:机器名称。