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

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,215评论 2 126
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,951评论 19 139
  • 临近年关,很多的工作就开始处于半停歇状态。比如这防盗门的订做,工厂不再接单,员工纷纷准备返程,一切都在为了迎接春节...
    一缕清风袭来阅读 286评论 2 1
  • 这几年流行早起,积极的人生和早起“勾搭”在了一起。 当我早上7点被闹钟吵醒睡眼惺忪大脑一片浆糊时,群里有的伙伴早读...
    懒虫子的美丽人生阅读 552评论 2 6
  • 天阴天晴天气变幻, 山远山近山水相依; 青山青水清风拂面, 古屋古道古色飘香! 徽山徽水徽杭古道, 昔情昔景昔人不...
    牛牛的快乐阅读 209评论 2 0