1988年,在威斯康星大学Barton Miller教授的计算机实验课上(http://pages.cs.wisc.edu/~bart/fuzz/CS736-Projects-f1988.pdf),首次提出Fuzz生成器(Fuzz Generator)的概念,用于测试Unix程序的健壮性,即用随机数据来测试程序直至崩溃。因此,Barton Miller教授也被多数人尊称为"模糊测试之父"。但是,当时更多是为了验证代码质量和程序的稳定性,而非专门用于挖掘安全漏洞,真正用于软件安全漏洞挖掘的开端要从下面两件事说起。
本文主要是向大家推荐一系列,用于fuzzing和Exploit开发初始阶段学习的资源合集,其中将包括相关的书籍,课程 - 免费或收费的,视频,工具,教程,以及一些供大家练习使用的靶机应用。(PS:文内所有链接点击“阅读原文”均可查看)
本文前两节将简要讨论 fuzzing 的基本理念以及 WinAFL 中所用到的插桩框架 DynamoRIO ,而后我们从源码和工具使用角度带你了解这个适用于 Windows 平台的 fuzzing 利
近年来,Fuzzing无疑是漏洞挖掘技术中最热门常见的技术之一,代码覆盖引导的思路成为主流,随之发展起来的各种路径探索技术也应运而生,相关话题的论文也常见于学术与工业顶会上,相信未来几年仍将继续活跃在安全领域之上。笔者日常也多有关注,基于个人的一些洞察与思考,对Fuzzing未来的发展趋势作个简单总结,因个人水平有限,皆为一家之言,仅供参考。
这两件事其实是往着同一目标前进的,就是将Fuzzing引入到CI持续集成中,直观的表现就是,当往代码仓库提交代码后,可被自动编译并完成Fuzzing,最后输出结果以进入下一开发环节。
嘿,猫头虎博主在这里!今天,我们来聊聊Go生态中的一个激动人心的进展 — Fuzzing技术的Beta测试。对于热爱深入探索和挖掘技术细节的你,这将是一个不可错过的话题!
作者:Yuan Tang(Akuity)、Adam Korczynski 和 David Korczynski(Ada Logics)、Jann Fischer(Red Hat)、Henrik Blixt(Intuit)
由于Frida(https://frida.re)动态插桩框架的跨平台、简单易用,现在已经被广泛应用于安全领域。相比Xposed而言,虽不能更底层地去Hook系统进程,但它可以免启动,应对App的hook完全够用,更关键的是,它完全可以用JavaScript来写代码,免去编译的烦恼,调试也方便。
作者:Adam Korczynski、David Korczynski、Sahdev Zala
大家好,猫头虎博主再次出击!🐾 今天我们要一起探索Go 1.18的两个崭新教程。随着Go 1.18的即将发布,这些教程将帮助我们理解和掌握泛型和fuzzing——Go的两大新概念。🚀 让我们一起跳入Go的新世界,探索这些激动人心的新特性吧!
Flux Security 博客系列的下一篇是我们如何在 Flux 及其控制器中实现 fuzzing(模糊测试),以及如何让项目变得更安全。
嗨,猫头虎博主来了!🐱🔍 今天,我们要聚焦Go语言的一个历史性时刻——Go 1.18的发布!这个版本不仅引入了长期期待的泛型支持,还包含了集成到标准工具链中的fuzzing功能,以及全新的Go工作区模式。这确实是Go语言发展过程中的一个巨大飞跃。让我们一起探索Go 1.18的所有细节吧!🚀
为啥叫傻瓜式fuzzing呢,可能我觉得吧,一步一步从最初始的部分去探索和研究将会很好玩,不过有时候也会很难(遇到问题的时候),但是解决每一个问题都会有小小的成就感,继续激励前行,坚持下去总会有收获的,我会把我对fuzzing的探索与研究做成一系列的paper,希望大家同样觉得很好玩,have fun。
Discover Vulnerabilities with Flow Sensitive Fuzzing
"The best alternative to defense mechanisms is to find and fix the bugs."
上篇《honggfuzz漏洞挖掘技术深究系列(1)——反馈驱动(Feedback-Driven)》讲到基于软件的代码覆盖率驱动fuzzing的方式,除了软件还有硬件方式,即基于Intel BTS (Branch Trace Store) 或Intel PT (Processor Tracing) 去计算代码覆盖率,同时要求Linux内核>=4.2,这种方式的最大好处是完全由硬件支配,无所谓软件是闭源还是开源。由于硬件环境受限,我也一直未使用过,有此条件的同学可以试下。
本文要推荐的书籍叫"The Fuzzing Book",一本免费的电子书籍,作者建站提供在线阅读版本,并在Github上开源。
年前曾在微博上推荐过OffensiveCon 2019大会议题,议题列表与介绍可参见官网(https://www.offensivecon.org/agenda/),很多专注于漏洞挖掘与利用的干货分享,目前只有部分议题ppt公开,通过点击文末的“阅读原文”可打包下载(包含8个议题),包括ppt、paper和code。
Umap2是一款由NCC Group和Cisco SAS小组开发的、基于python的USB host安全评估工具。 它拥有第一版所支持的所有功能: umap2emulate:USB设备枚举 umap2scan:用于设备支持的USBhost扫描 umap2detect:USBhost操作系统检测(尚未实现) umap2fuzz:USB host fuzzing 另外,该版本中添加了额外的功能: USBhost fuzzing使用kitty作为fuzzing引擎 Umap2中不仅包含可执行的脚本,而且作为
本文对模糊测试技术进行了综述分析,介绍了开源模糊测试框架Peach的结构、原理及pit文件编写方法,旨在帮助对模糊测试感兴趣的小伙伴能快速入门peach,最后以常见的http协议和工控Modbus协议为例进行了实验。文末搜集了本文所用到的工具和相关资料供大家下载。
对于一些复合文件格式,如果只是单纯的暴力Fuzzing,会导致生成很多无法被解析的文件,因此需要对文件变异作一些定制化的工作,比如docx、doc等office复合文件,docx是个压缩包,doc是个OLE格式,如果fuzz docx自然需要将其zip解压,再针对感兴趣的文件作变异,对于doc最好是作文件格式解析,只对感兴趣的stream作文件变异,这样的fuzzing的有效性才会更高。
AFL-fuzzer用一个全局的map用来存储之前执行时看到的tupes。这些数据可以被用来对不同的trace进行快速对比,从而可以计算出是否新执行了一个dword指令/一个qword-wide指令/一个简单的循环。 当一个变异的输入产生了一个包含新路径(tuple)的执行trace时,对应的输入文件就被保存,然后被用在新的fuzzing过程中。对于那些没有产生新路径的输入,就算他们的instrumentation输出模式是不同的,也会被抛弃掉。 这种算法考虑了一个非常细粒度的、长期的对程序状态的探索,同时它还不必执行复杂的计算,不必对整个复杂的执行流进行对比,也避免了路径爆炸的影响。为了说明这个算法是怎么工作的,考虑下面的两个trace,第二个trace出现了新的tuples(CA, AE)
本文由作者根据其在KCon 2016黑客大会上的演讲内容整理而成。演讲稿链接:Binder fuzzing based on drozer。 文章开始,先来看几个我在工作生活中发现的Android漏洞。其中包括Android系统锁屏密码绕过(影响了所有安全补丁在2016年10月份以前的Android 6.0、6.0.1、7.0系统)、三星手机关机窃听、三星手机越权修改主题、系统拒绝服务漏洞。然后我们再来解释相关的技术知识和实践。 Android漏洞案例 Android系统锁屏密码绕过 先来看下漏洞视频演示:
重制版,新版教程,包含ROP反导绕过DEP技术: https://www.cnblogs.com/LyShark/p/12340479.html
之前GitHub上有人整理过一个叫Awesome-Fuzzing的资料,整理了关于Fuzzing技术的电子书、视频、工具、教程以及用于练习的漏洞程序。整体上不错,但工具上还是不够全,有些不错且希望阅读代码学习的工具,发现未在其中,因此重新整理出下面这一份资源,其中有些还曾二次开发过,有些是还未来得及学习的,写出来权且当作学习计划。
通常,在对IoT设备的固件进行分析时,固件中与提供服务如HTTP、Telnet、RTSP、UPnP等相关的二进制程序是重点分析的对象。因为一旦在这些程序中发现漏洞,其很有可能会被远程利用,进而带来严重的安全隐患。
上周微软开源了一款叫OneFuzz的模糊测试平台,主要是由开发团队驱动的可持续模糊测试平台,通过开发与集成项目对应的Fuzzer工具,在CI构建中持续Fuzz,自动化分析跟踪崩溃,告警通知、远程调试与漏洞重现等功能。
Fuzzing,又叫fuzz testing,中文叫做模糊测试或随机测试。其本质上是一种自动化测试技术,更具体一点,它是一种基于随机输入的自动化测试技术,常被用于发现处理用户输入的代码中存在的bug和问题。
Dapr 团队最近在博客上发布了 Dapr 完成模糊测试审核[1]的文章,该审计是 CNCF 通过模糊测试改善[2]开源云原生项目安全状况的计划的一部分。该审计由 Ada Logics[3] 于 2023 年 5 月和 6 月进行的,Ada Logics 团队为了改善 Daprs 安全状况,并且由于创建了大量模糊器,发现的问题数量很少,一共开发了 39个 fuzzer,发现了3个问题,三个问题的数量非常少,这证明了 Dapr 项目编写良好且维护良好的代码库。这也表明了代码库的成熟水平。 审计中的所有模糊器都是开源的,最初被添加到 CNCF 的模糊测试存储库[4]中,团队已经开始将模糊器迁移到Dapr 仓库中[5]来完善Dapr的测试。
发现看议题材料也不容易啊,有些议题挺有技术深度的,而且内容还特长,长就算了,有些ppt其实只讲了不到一半的内容,另一半都得靠作者演讲才能知道,剩下的只能靠自己脑补或搜索资料了,我只能说真的费脑费时间。
大家好,猫头虎博主来了!🐾 今天我们将一起探讨Go 1.18 Beta 2的新鲜出炉的更新。这个版本继续增强对泛型、fuzzing以及全新的Go工作区模式的支持。一起来看看这些激动人心的进展吧!🌟
在当今人们时间和耐心水平较低的时代,手动提供输入以查找目标中的错误/漏洞的想法可能会让人不知所措。
大家好,猫头虎博主在此!🐯 今天我们要聊聊Go语言的最新动态:Go 1.18 Beta 1的发布。这不仅仅是一个普通的更新,而是Go自版本1以来最显著的变化——泛型的引入!这里,我们将深入探索泛型的世界,看看它如何给Go带来革命性的变化。让我们一起在Go的海洋中潜水吧!🌊
Apple Mail风波才刚刚过去,谷歌又炸出了苹果一波新漏洞,这一操作是否又让苹果用户的信心碎了一地?
疫情下的高考已结束,又快到填志愿的时候了,又有不少知青要加入信息安全这个圈子。为了响应组织号召,撰写此文作为信安行业的入坑指南,希望能对刚入圈的同学有所帮助。
这题docker 报错不能复现(估计主办方提供的不是运行后的 docker 文件),因此简单整理下思路。 这题是应该是仿Insomnihack 2019思路出的题。在这题里,符合以下情况均 failed:
目前流行的fuzzing(如AFL)通常使用较为简单的coverage information,这种覆盖的不准确和不完整给fuzzing带来了严重的局限性。首先,它会导致路径冲突,从而影响fuzzing挖掘出导致新崩溃的潜在路径。更重要的是,它也会影响fuzzing的最优决策。此外,学术界的大部分研究的是Coverage-guided fuzzing,很少有目光真正的投在Coverage上,所以CollAFL做了这一块的内容。
没错,我是做“Bug 赏金”这行的,也有人说应该叫“漏洞奖励”计划,但我觉得还是 Bug 赏金听着比较带劲。在今天的文章中,我想跟大家聊聊在找 bug 这件事上,业余和专业的到底有什么区别。这些都是我的真实经历,包括种种遗憾、惊喜和建议,希望能给各位带来一点启示。最后要强调一点,本文完全是我的主观经验,可能跟您的真实经历有所出入。
作者 Black-Hole 现在光是一个Web前端就有很多的攻击手法。而大多数攻击手法都是基于"客户端"存在的。但是很少有人注意到,所以就有了本文。 想要去找一个新攻击手法时,很多人大多都是研究代码(包括我一开始)。从代码里寻找漏洞。这种方法效率比较低下。所以有人喜欢用fuzzing来大规模的测试漏洞的存在(这个方法的确很不错,范围广,测试全,速度快),而大家别以为我找到一种类似fuzzing那样的技术,我还没有那个实力。这个方法只能说会让fuzzing的速度更快,更加的有效率。 想要挖掘一个新的漏洞,
WAF-A-MoLE是一款功能强大的基于变异的模糊测试工具,该工具可以帮助广大研究人员对基于ML的Web应用防火墙进行模糊测试。
🐆 摘要 嗨,猫头虎博主在这里!🎉 今天我们一起庆祝Go开源发布的第十二个生日。通过搜索词条“Go语言发展历程”与“Go生态最新动态”,我们来深入探讨Go这一年的精彩变化以及即将到来的新特性!
模糊测试是一种自动化的软件测试技术,它通过向程序提供无效、意外或随机的数据作为输入来检测软件中的错误、漏洞或失败。这种测试方法的目的是找到程序处理意外或异常输入时可能会崩溃或表现出异常行为的地方。
来自404实验室安全研究团队的对于VxWorks 工控实时操作系统进行的 Fuzzing 与漏洞挖掘调试、利用的安全探究。 0x00 前言 关于VxWorks,这里引用44CON议题《攻击 VxWorks:从石器时代到星际》探究(http://www.freebuf.com/vuls/78277.html) 一文章中的介绍: VxWorks 是世界上使用最广泛的一种在嵌入式系统中部署的实时操作系统,是由美国WindRiver公司(简称风河公司,即WRS 公司)于1983年设计开发的。其市场范围跨越所有的安全
前段时间一直在研究fuzz工具,这里就写篇文章总结一下下。 在安全测试中,模糊测试(fuzz testing)是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。能够在一项产品投入市场使用之前对潜在的应当被堵塞的攻击渠道进行提示。 模糊测试(fuzz testing)和渗透测试(penetration test)都是属于安全测试的方法,它们有同也有异,渗透测试一般是模拟黑客恶意入侵的方式对产品进行测试,对测试者的执行力要求很高,成本高,难以被大规模应用。 而模糊测试,它能够充分利用机器
(编者注:本翻译不代表登链社区的立场,也不代表我们(有能力并且已经)核实所有的事实并把他的观点分离开来。)
近年来,基于模糊的抽象自动化软件测试经历了一次复兴,特别是反馈驱动模糊以其在有限输入语料库下高效地进行随机测试的能力而闻名(such afl)。尽管取得了许多进展,但有两个常见的问题是 magic numbers 和 checksums,这些问题通常使用 taint tracking 和symbolic execution 等计算开销较大的方法来克服这些障碍。不幸的是,这样的方法通常需要访问源代码、对环境的需求较高(例如,库调用或底层操作系统的行为)或平台指令集的确切语义。
遥想当年,曾有一段时间经常下载国内论文来阅读,主要是关于漏洞挖掘相关方向的,但最后发现,天下文章一大抄,从本科到博士的研究论文有很多如此,另外有些只是做完作业,对研究结果完全无视,此风尤以毕业论文见长。这种情况导致我很长时间内不再看国内的研究论文,尤其是中文写的论文。 近两年,随着Fuzzing技术的崛起,四大顶级学术会议上经常出现Fuzzing技术相关的研究论文,于是常下载阅读,对于长论文还会打印出来。刚好昨晚看到一篇来自滑铁卢大学的文章叫"How to Read a Paper"(点击“阅读原文”获取),其中一些观点跟鄙人的一些阅读习惯相同,但也有一些方式不太认同,请读者自行依据个人习惯取舍。本文更多地是分享计算机相关研究论文的个人阅读方式,特别是那些习惯把论文就从头到尾阅读完的人更该看看。
uniFuzzer是一款基于Unicorn和LibFuzzer的闭源模糊测试工具,该工具当前支持对ARM/MIPS架构的32位LSB ELF文件进行模糊测试,而这样的系统架构和平台一般常见于物联网设备上。因此,广大研究人员可以利用uniFuzzer来对物联网设备进行模糊测试。
领取专属 10元无门槛券
手把手带您无忧上云