我嘗試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 腳本的功能是否足夠好。