谁能告诉我有人试图用用户代理中的以下代码做什么:
() { :; }; 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 确实包含以下内容的情况:机器名称。