我最近发现,我正在使用的服务器有一个xinetd服务,实际上是一个shell脚本,它调用另一个shell脚本,通过各自的networking连接检索参数。
它做这样的事情:
/execute/another/script $WITH $A $FEW $ARGUMENTS
是什么让我害怕这是一个真正的问题是variables没有以任何方式消毒的事实,因为这是作为根被执行,这是值得重视的。
有人可以请指教? 我也很想知道如何在这种情况下滥用variables来执行其他的东西,有人可以提供例子吗?
我可以看到两种types的攻击。 一个反对脚本本身,通过调用它可以提供特权的数据。 另一个反对bash,通过使用缓冲区溢出或其他bash错误。 一个问题是,bash的devise并不是为了对这种攻击有很好的安全性,因为它希望这个input是由同一个人提供的。
至less我会更新bash脚本,使其能够以普通用户身份运行,并使用sudo或其他Unix机制来处理需要提升特权的事物。
这个怎么样?
export ARGUMENTS='ValidArg&mkdir /var/tmp/hello_there'