Joh*_*son 2 security linux exploit vulnerabilities
我需要通过读取用户上传的文本文件来获取变量值。
我正在从一个系统的脚本做:
resourceVersion=`cat userFile.txt`
mkdir $resourceVersion
...
Run Code Online (Sandbox Code Playgroud)
当我以后将该$resourceVersion
变量用作其他命令的参数时,此文件的内容是否会以任何方式损害系统?
编写安全代码的规则 1:您必须清理您的用户输入。
至少传递--
给您 mkdir 子句以防止操纵开关。
目前,它可用于在具有任意权限的任意位置创建目录。
就其本身而言,它可能不会导致违规,但您可以传递以下内容:
-m 0777 /var/lib/mysql/newdb
Run Code Online (Sandbox Code Playgroud)
创建一个任何人都可以写入的新 mysql 数据库。
这里还有一个拒绝服务攻击,因为每个空间都被视为一个新目录。因此您可以传递 32760 个新路径进行处理。
最后,一些伪文件系统以您可能意想不到的方式对新目录敏感。例如在 Fedora 上,像这样的目录/sys/fs/cgroup/newcgroup
可以创建一个新的 cgroup。此外,在 LIO 子系统中,写入目录/sys/kernel/config/target
可用于通过 iSCSI 网络导出块设备(然后可以复制设备的全部内容)。
所以,不,不要这样做。