大家好,我是BaCde,过年期间开发了Afuzz这款工具。主要用于自动化Bug Bounty中的一部分,前段时间上传到了Github上。今天我就来给大家介绍一下它与其他同类工具的不同,并欢迎大家试用并反馈问题。
项目地址:
https://github.com/rapiddns/Afuzz
为什么造这个轮子?
在漏洞挖掘中,获得更多的输入点是发现漏洞的重要途径之一。这里其中就包括更多的路径和文件,例如爬虫爬不到的页面。这个时候采用爆破的方式就是一种发现的手段之一。但是目前开源的工具在单一站点,配合手动设置参数,效果非常好,比如dirsearch。在面对大量目标情况下,自动化方式会产生大量的结果,这样就会导致重要的信息被遗漏,而且效率也降低。在这样的情况下,我就想设计和开发一款适用我的自动化漏洞挖系统的模块,于是就有了Afuzz这个工具。
其他工具在多目标场景下的问题是什么?
发现文件路径,比较关键的就是针对404页面的检查和处理。第一是判断状态码,另外就是根据获得404页面内容,与后续的请求内容进行比对。这里会面临如下问题:
首先,当遇到有动态或随机内容(包含请求路径、uuid、eventid、时间戳等)时,因为每次都不同,在目标多时,则没办法有效过滤所以会产生大量结果
因为现在站点防护手段多,因为速率问题会会出现拦截,或者发现攻击行为出现拦截页面,这时也会遗漏,导致产生大量结果。
目录与文件状态和返回不同,单纯的404页面没办法处理目录的情况而产生大量结果。
包含特定关键词的地址,重定向到特定页面或链接。
目前工具大多需要手动设置过滤内容或者参数。不适用于自动化系统环境。
除404页面处理方面,字典固定,对于一些以子域名的部分做目录或备份文件的站点没办法处理。
Afuzz思路是什么?
Afuzz设计和思路是工具简单高效,不需要输入太多的参数,通过提升准确率,更多的判断交给程序代码自动来处理,针对上面的场景和问题新增了些手段来处理,包括:
会优先获取404页面和不存在目录的状态。
移除页面中动态或随机内容,如时间戳、eventid、uuid、请求路径等内容。
通过统计分析的方法过滤掉大量重复内容和页面。对于仍有个别站点仍然出现过多的页面,最多只保留20个结果,大大降低结果数量,提高分析的效率。
黑名单机制,过滤掉waf等拦截页面的内容。
增加白名单机制,对于包含敏感内容的信息,可以方便快速定位。
目录和不同的判断方法。针对302、301等进行处理。
动态字典,根据传入的域名动态生成字典,如sub部分,subdomain、rootdomain、domain等几个部分动态变量。同时也支持后缀的变量.使其字典生成更丰富。
结果展示优化,支持表格和json格式的结果。通过asciitable的形式,结果展示更加友好。结果多时,也更方便处理。同时在结果中还包含了word数,行数,content-type,title等字段。以及是哪种方式命中的,文件还是文件夹,命中哪个白名单规则。
对于黑白名单规则支持匹配header、content、支持正则匹配和包含两种方式。
自动判断所使用的语言和技术,自动选择后缀并生成字典,达到每个站点数量不同,减少无效请求。提升效率。
使用协程方式实现,性能高效,同时支持HTTP2。
关于更多的使用请打开项目地址(https://github.com/rapiddns/Afuzz)查看。如果大家有需要,后续可单独在写一篇使用的文章。
Afuzz表现结果如何?
说了这么多,结果如何呢?通过与dirsearch进行对比,Afuzz展示效果效果和结果更加精准。目前也已经加入到我的自动化系统中,更多结果还在测试中。大家也可以自行进行比对测试,欢迎反馈结果给我。Afuzz会持续进行改进。
Afuzz后续计划?
还是有很多可以进行优化的,比如在404页面比对可以加入dom树的结果比对,字典的优化、多级目录的爆破优化等。也欢迎感兴趣的大佬们,加入进来,欢迎提交。一起完善。
关注我,安全不迷路