我发现Linux中存在命令注入漏洞。系统不允许任何空格字符,含义
以下命令有效:
;ls
但我想为命令提供空格,例如:
;ls -l
由于不允许使用空格,因此无法使用。我尝试了多种选项,例如十六进制表示空格、八进制、使用 /NULL 字符 /a、/t 等,但均无效。
简而言之,是否有可能在 bash shell 中输入多个不带空格的 shell 命令?
更详细地说,这是直接与 Linux 对话的 webapp。无论我在 webapps 中输入什么,它都会反映在 Linux 命令提示符中。如果我输入
;ls -a (it does not work due to space)
;ls;ifconfig; (it works and shows both commands)
答案1
以下行不包含空格,但简单地bash
说它应该运行ls -l
:
IFS=_;command='ls_-l';$command