1.记某次攻防演练:大战UEditor并突破
2.honggfuzz漏洞挖掘技术深究系列(1)——反馈驱动
3.LibFuzzer workshop学习之路(final)
4.安全漏洞漏洞发掘方法
5.微软推出了新的源码开源错误发现工具ProjectOneFuzz
6.有什么常见的模糊测试工具?
记某次攻防演练:大战UEditor并突破
参与某次攻防演练,目标单位存在公开的源码域名备案信息。通过FOFA搜索,源码发现该单位存在端口的源码开放子域名,启动渗透流程。源码目录扫描后,源码期货合约APP源码发现/bin.rar路径可以访问到一个压缩文件,源码下载解压缩后,源码初步判断为.NET形式的源码站点源代码,使用C#语言编写。源码进一步分析dll文件的源码命名规则和.NET格式,判断出主要的源码后端逻辑代码位于xxx.Application.Web.dll文件中。为了解读二进制dll文件,源码使用dnspy进行反编译。源码为帮助网安学习者,源码提供一套免费资料包,包括网安学习路径思维导图、工具包、SRC分析报告、攻防实战技术电子书、CISSP认证资料、CTF实战技巧、大厂面试题集、客户端安全检测指南等。
源码中发现使用UEditor。UEditor的路径为/Utility/UEditor/controller.ashx。尝试访问关键接口,发现返回错误,可能由于WAF或EDR拦截。通过Fuzz方法,发现通过访问/Utility/UEditor/.css?action=catchimage可以绕过拦截,成功访问关键接口。利用UEditor .net版本的任意文件上传漏洞,上传哥斯拉jsp webshell。漏洞利用参考链接:freebuf.com/vuls/...。在上传过程中遇到杀软拦截,使用github.com/Tas9er/ByPas...项目对webshell进行免杀处理,最终成功上传并连接,mqtt系统源码完成UEditor站点的利用。接下来,通过愉快地打内网进行后续操作。
传统的UEditor利用方式通常需要本地编写HTML文件,包含表单以提交马地址至目标服务器。不过,原理基于HTTP请求发送马地址,因此可以直接在Burp Suite中发送请求达到相同效果,省去制作HTML文件的步骤。请求发送后,服务器返回webshell路径。总结,攻防演练过程中,通过信息收集、渗透测试、代码分析、利用漏洞等步骤,成功完成目标系统的利用,展示了攻防技术的实战应用。
honggfuzz漏洞挖掘技术深究系列(1)——反馈驱动
honggfuzz漏洞挖掘技术详解(1)——反馈驱动
反馈驱动是漏洞挖掘技术中的关键策略,它通过追踪样本触发的代码覆盖率,优化输入样本以提升覆盖率,从而增加发现漏洞的可能性。在业界,AFL、libfuzzer和honggfuzz是基于代码覆盖率的三大著名Fuzzer,它们均开源,可在GitHub上获取。
honggfuzz尤其受到关注,其原理与应用将是我们系列探讨的重点。我曾深入研究过honggfuzz的源码并进行二次开发,实践证明其挖掘漏洞的效果显著。系列将详细解析honggfuzz的运作机制,从代码覆盖率的三种衡量标准——函数、基本块和边界,到实际应用中的反馈驱动原理。
在honggfuzz中,ispvm源码解析基本块覆盖率是主要的统计方式。通过编译选项,如添加`-fsanitize-coverage=bb`,可以生成`sancov.map`和`sancov.raw`文件,记录执行过的基本块信息。honggfuzz会分析这些文件,计算覆盖率,根据新路径或链接库加载情况,生成变异样本以触发更多未探索的路径。
honggfuzz诞生于年,与AFL同时期发布,AFL的出现极大地推动了安全领域的发展。尽管AFL源码分析众多,honggfuzz的深度剖析却相对较少,因此我决定编写这一系列文章。个人曾为honggfuzz贡献代码,但未被采纳,于是转向自行开发,为不同平台添加新功能,并借此发现了不少CVE。
后续文章将深入探讨honggfuzz的更多细节,感谢robertswiecki创建出这款强大的工具。这些内容源自公众号:漏洞战争。
LibFuzzer workshop学习之路(final)
libfuzzer workshop是一次深入的fuzzing学习之旅,本文精选最后两个案例 - 针对re2和pcre2的fuzz,深入探讨了链接库选择、插桩编译参数设置及max_len对结果的影响。
以pcre2为例,作为Perl兼容的正则表达式库,其在许多开源软件中被广泛使用。进行源码编译时,需注意通过特定插桩参数优化编译效率。设置如fuzzer-no-link参数来确保不链接主符号,尤其在处理大型项目时,能显著提升fuzz效率。
编译过程中,根据pcre2的传奇 网站源码特性添加了如--with-match-limit和--with-match-limit-recursion限制匹配操作的资源使用和递归深度,以及--enable-never-backslash-C禁用特定正则模式,优化匹配过程。之后,分析提供的harness实现逻辑,结合参数优化执行,很快得到了crash现象。研究崩溃发生的具体位置,定位漏洞所在函数,并一步步追溯其调用链,对整个过程的细节进行了详尽的剖析。
针对re2库的fuzzing,展示了max_len选择对fuzz过程的重要性。不同长度设置下的探测效果差异显著,max_len值决定样本长度范围,从而影响寻找覆盖点的速度。通过对比不同max_len的探测结果,可以清晰地看到其对fuzz效率的影响,合理选择max_len值可以显著提升发现crash的概率。
学习总结指出,在libfuzzer workshop中,libfuzzer作为强大而常用的fuzz工具,其对开源库接口函数的fuzz能力突出。然而,设计合适的harness是挑战,需要深入了解要fuzz的开源库接口,通过逐步优化来接近发现crash的目标。
本文展示了libfuzzer workshop的关键点,从源码准备、参数优化到harness的构造和性能调优,再到深入分析crash定位和漏洞修复策略,全面展示了学习libfuzzer的深度与广度。
安全漏洞漏洞发掘方法
在软件开发中,安全漏洞被视为软件错误的一种,所有软件测试方法都可以用于漏洞的发现。对于漏洞发掘,黑客们运用了一系列可遵循的策略: 首先,fuzz测试,生成word源码也称为黑盒测试,通过构造可能引发程序错误的输入数据,进行自动化的测试,以此寻找漏洞。 源码审计,即白盒测试,利用现代工具如C语言编译器等,对程序内部进行检查,找出隐藏的安全问题。 IDA反汇编审计,类似于源码审计,但面对的是二进制代码,即使无法获得源码,IDA作为强大的反汇编工具,也能帮助我们基于汇编代码进行安全审查。 动态跟踪分析是另一种策略,它记录程序在不同条件下的执行行为,特别是与安全相关的操作,如文件操作,以此检测竞争条件类漏洞,包括污点传播跟踪。 最后,补丁比较也是一个实用的手段,通过对厂商发布补丁前后文件的源码或反汇编码进行对比,可以揭示漏洞的具体细节。 无论哪种方法,关键都在于人工分析,需要全面覆盖流程路径。这可能包括分析设计文档、深入源码、解析反汇编代码,甚至动态调试程序,以确保漏洞的完整发现和修复。扩展资料
漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。是受限制的计算机、组件、应用程序或其他联机资源的无意中留下的不受保护的入口点。微软推出了新的开源错误发现工具ProjectOneFuzz
今天早些时候,Microsoft 更新了Visual Studio Code的C ++扩展,将其扩展到了1.0版。源代码编辑器是在标准MIT许可下可在GitHub上获得的几种Microsoft产品之一。
今天,该技术巨头已经在相同的许可下发布了一个新的开源工具-OneFuzz项目。该新平台将替代Microsoft已停产的安全风险检测服务,该平台被称为“ Azure的开源自托管开发人员测试平台”。
模糊测试本质上是通过严格的测试过程来消除可利用的安全漏洞,该过程涉及用大量随机数据泛滥相关程序。尽管非常有用,但执行起来也常常很复杂。OneFuzz项目试图利用开源LLVM编译器基础结构项目的最新进展,使模糊测试变得更轻松,更连续。
由于上述进步,以前必须连接到连续构建系统的相关机制现在可以直接烘焙到其中。例如,崩溃检测可以通过asan工具内置,而覆盖范围跟踪可以使用SanitizerCoverage(sancov)工具进行烘焙。展望未来,这些更改将使在单个可执行文件中内置多种模糊测试技术,从而可以开发单元测试二进制文件。
然后,Project OneFuzz允许将这些测试二进制文件构建到CI / CD管道和云中的大规模Fuzz工作流程中。该工具的突出功能包括:
可组合的模糊测试工作流程:开放源代码允许用户使用自己的模糊测试工具,交换仪器和管理种子输入。
内置的集成模糊测试:默认情况下,模糊测试器作为一个团队来共享优势,在模糊测试技术之间交换感兴趣的输入。
程序分类和结果重复数据删除:它提供了始终重复的独特缺陷案例。
按需实时发现已崩溃的调试:它使您可以按需或从构建系统中调用实时调试会话。
可观察和可调试:透明的设计允许自省每个阶段。
Windows和Linux操作系统上的模糊性:设计成多平台。使用您自己的OS构建,内核或嵌套的管理程序进行模糊测试。
崩溃报告通知回调:当前支持Azure DevOps工作项和Microsoft Teams消息
该测试框架已在包括Microsoft Edge和Windows在内的其他Microsoft服务和平台中使用。现在,随着OneFuzz项目的可用性扩展到全世界的开发人员,可以在GitHub上访问它。微软欢迎开源社区的贡献,该公司承诺将来会对该工具进行将来的更新。
有什么常见的模糊测试工具?
探索常见模糊测试工具:全面覆盖与定制化选择在当今复杂的软件环境中,确保应用安全至关重要。模糊测试工具作为一种强大的安全测试手段,能够发现潜在漏洞并帮助开发者提升软件质量。这里有几款备受瞩目的模糊测试工具,它们各具特色,满足不同场景的需求。
首先,beSTORM,由Beyond Security打造,作为一款功能强大的模糊测试器,它无需源代码即可运行,适用于各类硬件和软件。无论是物联网设备、航空航天工具,还是低功耗蓝牙设备,只要可编程,beSTORM都能无缝协作。它的广泛兼容性使其成为跨行业应用的理想选择。
紧随其后的是Code Intelligence Fuzz (CI Fuzz),这款预配置的Ubuntu VM,作为持续集成和持续交付(CI/CD)流程的得力助手,能自动检测并修复新代码引入的漏洞。CI Fuzz直接访问源代码,支持C、C++、Java和Go等语言,随着对.NET Core和Python框架的整合,它在漏洞检测方面日益成熟。
Synopsys则提供了定制化模糊测试工具套件,针对不同语言、协议和场景,让开发者能够根据具体需求选购。他们的工具集包括针对DNS服务器到专业应用(如CAN总线或IKEv2)的全方位解决方案,提供详细的文档和支持,确保深度覆盖。
对于免费或开源选项,Peach Fuzzer凭借其全面的安全覆盖,超越了简单的扫描器,用户可以发现已知和未知的威胁,确保了更高的安全防护。同时,Spike Proxy作为专业级Web应用漏洞检测工具,基于Python架构,适用于Linux和Windows,覆盖基础攻击手段如SQL注入和XSS。
而Webscarab,作为一款Java编写的拦截代理,能够深度分析HTTP和HTTPS通信,帮助检测和修复浏览器与服务器间的漏洞。最后,OWASP WSFuzzer,作为一款GPL许可的网络服务测试工具,聚焦于HTTP SOAP服务,为开发者提供了强大的网络服务漏洞检测平台。
无论你是寻求全面覆盖,还是针对性极强的解决方案,这些模糊测试工具都能在你的安全防护网中发挥关键作用,让软件安全无死角。
Fuzz测试:提升自动驾驶安全性
在汽车制造业的发展历程中,技术创新作为支撑,对世界经济、社会发展及人们的生产生活方式产生了深远影响。从福特公司的T型车生产流水线到本田雅阁汽车的车载导航系统,再到现在的泊车辅助系统,汽车产业在技术层面持续革新。然而,随着新技术的加速落地,安全漏洞问题也随之显现。通过物联网实现网络连接的汽车,正面临着与手机、笔记本电脑相似的网络安全威胁。
Fuzz测试,作为解决汽车安全问题的简单有效方法,提供了必要的预防措施。Fuzz测试,亦称模糊测试,是一种自动化软件测试技术,其核心是将自动或半自动生成的随机数据输入到被测设备中,监测异常情况以发现潜在错误。Fuzz测试可应用于白盒、灰盒或黑盒测试,通过变异测试(mutation-based)或生成测试(generation-based)工具,发现先前未能发现的漏洞,包括零日漏洞。
自动驾驶的出现,将汽车技术推向了新的高度。车联网这一概念,作为IoT(Internet of Things)的一种,为汽车带来了便利与快捷,同时也成为了黑客攻击汽车控制系统的主要渠道。黑客通过网络威胁,对车辆进行攻击,可能导致严重的安全漏洞。根据Upstream Security发布的《年全球汽车网络安全报告》,预计在未来几年内,网络黑客攻击可能导致汽车业损失近亿美元。这表明汽车生态中的网络威胁对道路使用者的安全构成严重威胁。
由于自动驾驶尚未广泛普及,汽车制造商通常在既定的平台标准上开发自己的安全协议,导致相对应的安全漏洞未得到充分研究与记录。美国国家标准与技术研究所(National Institute of Standards and Technology,NIST)在自动驾驶汽车系统和组件的漏洞检测(Common Vulnerabilities & Exposures,CVE)数据库中记录的问题数量虽然较少,但特斯拉等涉及智能驾驶的汽车事故频发,凸显了自动驾驶安全问题的紧迫性。
Fuzz测试在自动驾驶和车联网领域发挥着关键作用。通过模拟攻击场景,Fuzz测试能够确保每辆自动驾驶汽车具备抵御试图破坏程序、绕过登录进行远程操作的攻击者的攻击能力。Fuzz测试的几种方法包括基于变异、基于重放和基于语法生成。每种方法都有其优势,能够对通信特定部分进行测试,确保所有数据包不会立即被被测设备阻塞,避免产生序列错误。
Fuzz测试不仅是一种有效的测试方案,也是解决汽车自动驾驶安全问题的关键工具。它不依赖于被测设备的信息和源代码,能够对整个堆栈进行黑盒化处理,从而在开发阶段和预发布阶段发现潜在漏洞。Fuzz测试的优势在于能够通过需要串行连接的协议进行通信,为没有TCP/IP通信的产品提供强大的测试支持。
综上所述,Fuzz测试是提升自动驾驶安全性的有效途径。通过使用Fuzz测试,开发者能够重现安全攻击、理解协议结构,并据此判断哪些部分更容易受到攻击,从而采取更有效的解决措施。当前阶段,Fuzz测试无疑是解决汽车自动驾驶安全问题必要且有效的测试方案。