模糊命令行参数[argv]

时间:2020-07-25 16:42:09

标签: reverse-engineering argv exploit fuzzing american-fuzzy-lop

我有一个二进制文件,我一直在尝试用AFL进行模糊处理,唯一的事情是AFL仅使STDIN和文件输入模糊化,并且此二进制文件通过其参数pass_read [input1] [input2]接受输入。我想知道是否有任何方法/模糊器允许以这种方式进行模糊检测?

我没有源代码,因此制作线束实际上并不适用。

2 个答案:

答案 0 :(得分:1)

AFL的创建者Michal Zalewski在此post中声明:

AFL不支持argv模糊测试,因为TBH只是在 实践。实验/ argv_fuzzing /中有一个示例,展示了如何执行此操作 一般情况下,如果您确实愿意。

链接到GitHub上的示例:https://github.com/google/AFL/tree/master/experimental/argv_fuzzing

文件argv-fuzz-inl.h中有一些说明(我自己还没有尝试过)。

答案 1 :(得分:0)

纯现金解决方案

例如,让我们生成10个随机字符串并将其存储在文件中

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n 10 > string-file.txt

接下来,让我们从字符串文件中读取2行并将其传递到我们的应用程序中

exec handle< string-file.txt

while read string1 <&handle ; do
        read string2 <&handle

        pass_read $line1 $line2 >> crash_file.txt
done

exec handle<&-

然后,我们会将所有崩溃信息存储在crash_file.txt中,以供进一步分析。

这可能不是最优雅的解决方案,但是如果没有一种工具可以满足当前的要求,也许您会给您带来其他可能性的想法