我尝试tcsh
使用 American Fuzzy Lop 在 OS X 上进行测试作为练习,但不想意外破坏系统上的任何有用文件。
由于对模糊测试一无所知,我做了以下事情:
我通过brew安装了模糊器。
$ brew install afl-fuzz
作为辅助节点,tcsh
配置脚本似乎忽略了该--disable-shared
标志。
$ ./configure CC=afl-clang --disable-shared --prefix="$HOME"/opt/fuzzy-local ; make
然后给了它一个愚蠢的示例测试脚本:samples/sample.csh
echo '45'
然后我以最天真的方式运行了一段时间的 afl-fuzz。
$ afl-fuzz -i samples -o afl_findings ./bin/tcsh -f @@
我很快发现随机生成的 shell 脚本创建了一些垃圾文件。
$ ls
?d%FF%FFd%A7 ? 5? bin share
?45? 45 afl_findings samples
限制随机生成的 shell 脚本可以执行的操作并阻止它们删除或修改我关心的文件的正确方法是什么?
我继续尝试
$ chown nobody:nogroup afl-findings
$ sudo -u nobody afl-fuzz -i samples -o all_findings ./bin/tcsh -f @@
但我不确定这对于限制随机生成的 shell 脚本的功能是否足够好。