美文网首页模糊测试
如何使用AFL-FUZZ进行网络协议软件的模糊测试

如何使用AFL-FUZZ进行网络协议软件的模糊测试

作者: xi4okv | 来源:发表于2017-09-11 11:38 被阅读593次

    AFL-FUZZ模糊测试神器,自由的遗传学算法,导致用例的生成格外有效。
    但是AFL默认支持STDIN和FILE形式的用例,那么如何对一个C/S架构的网络协议软件进行模糊测试呢?

    If testing a network service, modify it to run in the foreground and read from stdin.

    ok,这里是帮助文档的简单描述。

    以下,我要对我在实际中遇到的项目进行描述,从而介绍一下如何使用AFL-FUZZ对网络协议进行模糊测试。

    首先,模糊测试区分黑盒测试和白盒测试,那么如何快速进行模糊测试Demo呢?那自然是黑盒测试更简单便捷,测试用例也更有效。

    老规矩贴代码。
    string data;
    ifstream file;
    file.open(argv[1]);
    file>>data;

    这样,就可以从文件中获取用例,接着呢,自然是跟server段建立连接,并发送。
    这段代码就不献丑了。

    使用AFL进行模糊测试之前需要获取一个有效的用例,OK,wireshark抓取,然后转存Hex
    然后使用python decode("hex") 保存到文件中,放到in目录。

    然后开始进行模糊测试
    afl-g++ -o poc poc.c
    afl-fuzz -i in -o out ./poc @@

    最后短短2分钟,竟然测出两个bug,UAF 和 Double free。

    相关文章

      网友评论

        本文标题:如何使用AFL-FUZZ进行网络协议软件的模糊测试

        本文链接:https://www.haomeiwen.com/subject/kdgxsxtx.html