fuzzing test工具
安全漏洞评估中的模糊测试技术与实战经验分享(八)
安全漏洞评估中的模糊测试技术与实战经验分享引言随着互联网的快速发展,信息安全问题也日益突出。
越来越多的企业和个人开始关注系统和软件的安全性。
而安全漏洞评估是一种常见的手段,用于发现系统和软件中的潜在漏洞,以便及时修复。
而模糊测试技术作为安全漏洞评估中的重要工具之一,可以对系统和软件进行全面而深入的测试,本文将重点探讨安全漏洞评估中的模糊测试技术。
一、模糊测试技术简介模糊测试,也就是Fuzzing,是指通过随机或有针对性地输入异常数据来测试系统和软件的安全性和稳定性。
它模拟了黑客可能使用的攻击手段,尝试注入异常数据来触发系统或软件的漏洞,以便发现漏洞并及时修复。
模糊测试技术的核心思想是构造异常数据,然后将其输入到目标系统或软件中,观察系统或软件的反应,从而发现可能存在的漏洞。
常见的模糊测试技术包括随机模糊测试、基于规则的模糊测试和基于生成模型的模糊测试等。
二、模糊测试技术的实施步骤1. 目标选择:针对具体的系统或软件进行模糊测试时,首先需要确定测试的目标,即选择待测的目标软件或系统。
通常选择一些常见的软件或系统进行测试,如操作系统、浏览器、数据库等。
2. 数据生成:在模糊测试中,关键的一步是生成异常数据。
可以通过随机生成的方式产生异常数据,也可以参考已知的漏洞类型,有针对性地生成异常数据。
生成异常数据时,可以考虑输入的边界情况、特殊字符的使用等。
3. 输入数据:将生成的异常数据输入到目标软件或系统中,模拟黑客攻击的过程,观察系统或软件的反应。
在输入数据时,可以使用自动化测试工具来加速整个过程。
4. 反馈分析:在模糊测试过程中,及时记录系统或软件的反应情况。
例如,是否出现了崩溃、异常信息是否被拦截等。
通过对系统或软件的反应进行分析,可以确定是否存在漏洞。
5. 漏洞验证:当发现了潜在的漏洞后,需要进行验证。
可以尝试重复输入异常数据,验证是否能够复现漏洞。
如果漏洞能够被复现,就需要及时通知相关负责人并修复漏洞。
python中fuzzing库使用方法
python中fuzzing库使用方法Fuzzing 是一种针对软件安全性的测试技术,它通过输入随机、非预期或异常的数据来发现潜在的漏洞和错误。
Python 中有几个流行的 Fuzzing 库,可以帮助开发人员执行这种测试并增强软件的安全性。
下面我们将介绍几个常用的 Python Fuzzing 库及其使用方法。
1. AFL(American Fuzzy Lop):AFL 是一个强大的模糊测试工具,它可以通过对输入进行修改和变异,找出程序中的漏洞和崩溃点。
它使用基于覆盖率的测试策略来生成输入,以尽可能多地覆盖目标程序的代码。
在 Python 中使用 AFL,你需要将目标程序编译为可执行文件,并使用AFL 提供的工具对其进行模糊测试。
2. Peach Fuzzer:Peach Fuzzer 是一个功能强大的模糊测试框架,它支持多种协议和数据格式。
你可以使用 Peach Fuzzer 定义测试用例的结构、范围和约束条件,并指定模糊测试的策略。
它还提供了可视化界面和报告生成功能,方便你查看测试结果和分析漏洞。
在 Python 中使用 Peach Fuzzer,你需要安装框架并编写相应的配置文件来定义你的测试用例。
3. Sulley:Sulley 是一个 Python 编写的模糊测试框架,它使用TCP/IP 协议进行测试,可以针对网络应用进行模糊测试。
Sulley提供了一组丰富的 API,你可以使用它们定义自己的测试用例和模糊测试策略。
它还支持并发测试和分布式测试,可以在多台机器上同时进行模糊测试。
在 Python 中使用 Sulley,你需要安装框架并编写相应的代码来定义和执行你的测试。
这些是 Python 中几个常用的 Fuzzing 库及其使用方法的简要介绍。
选择适合你项目需求和技术能力的库,并遵循相应的使用方法来进行模糊测试,可以帮助你增强软件的安全性和稳定性。
记得在测试期间进行适当的监控和跟踪,及时处理漏洞和崩溃问题,以确保你的应用程序的质量和安全性。
基于fuzzing的Web漏洞检测工具设计与实现
【 to s - ̄ E I E Me d ] -G T H ADIOS IU DE E E O T ONS R E h P T P TI L T I P I I AC I T
P ATCHI OVEI M COPYI NKl LI UNLI NKI APP ED
其 中【 意思是后 面文 法表示的内容进行重复的次数。 n 】 页面名称既请求 的页面不包括后缀 名。对 页面名称模糊通常能发
现未正确保护 的秘密页 。为页面名称设计的文法规则为:
[a e P g 】 a mil n g l mi_n e l gn ea h… d nma a e d n id x o i l f u l a l d
【 I 一 ht : 1 7001ts p p RF ] t / 2 .../ t h p/ e.
R frro t t 示发起请求 的原U L 址 ,对R frrotn值 的 eeec ne  ̄ n R地 eeecnet
模糊可能发现S L . Q  ̄ 漏洞或者进行盗链欺骗。设计的文法规则为 : [ e r c n n _ 【Q ] 目 分析 中取得 的所有链接) R f e o t t + S LI 标 er e】 ( C n nye o t t p 表示当前传输的MI 类型 ,即当前客户端与服务端 et ME 传递 的文件类型 。对C n nt e o t t p 的值进行 模糊通常能发现 We应 用程 e y b
用户定义生成 ,一种是使用 系统 预定义 的模糊数据 ④ 自动分析测 试 结果 ,能够 自动确定大多数常见的We 漏洞。⑤ 可扩 展的预生成模糊 b 数据数据库 。 测 试 目 支持 各种 系统 ,但测 试系统 本身 选择Wi o s 标 n w 。选 择 d C 作为开 发语言。数据 库选择A c s # ce 数据库 ,这样工 具便于携 带能够 s 很方便 的复制到各个个人 电晒上 。
Defensics健壮性测试工具测试方案
Defensics健壮性测试工具测试方案1.前言本文档就CodenomiconDefensics的工控安全测试方案提供说明,就测试原理,测试组网,支持的协议以及测试流程提供帮助,指导测试的进行。
2.测试日程安排N/A3.产品功能介绍CodenomiconDefensics是基于协议级别的专门进行fuzzing测试的健壮性测试工具,专门用于发掘产品当中的未知漏洞。
当前随着APTs高级持续攻击的日益猖獗,网络及工控安全面临前所未有的挑战,大部分的攻击利用的都是设备或系统当中的零日漏洞,这类漏洞由于缺少相应的防护措施以及补丁,往往成为黑客攻击的首选。
而黑客在寻找零日漏洞时往往采用的就是fuzzing技术,Defensics能够先敌而动,在黑客攻击之前发现产品当中隐含的零日漏洞,帮助客户弥补潜在的安全隐患。
CodenomiconDefensics通过构造有序的异常用例集合,来查看系统是否会出现中断或服务失败等现象。
通过采用基于协议建模的构建方法,可以保证对协议所有状态机和字段的覆盖。
而通过智能高效的用例生成策略,可以使测试人员从无限的数据源中摘取出容易诱发系统服务失败的数据。
作为黑盒测试,Fuzzing测试不需要访问源代码,因此可在第三方软件上使用。
通过自动化的用例生成、管理和执行,最大限度地提升测试效率,保证产品的安全质量。
4.测试原理模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。
目前国际上公认找寻未知漏洞的最佳途径就是通过Fuzzing。
Codenomicon公司主推的Defensics产品就是一款基于黑盒的专门针对网络协议进行Fuzzing的安全性/健壮性测试平台。
我们会选取出一系列的有组织的异常数据(畸形报文)发送给被测设备,并通过正常报文的探测来观察被测设备是否还处于正常工作状态。
这里所谓的“有组织的异常数据”是通过一下两个方向来形成的:•缓冲区溢出/溢进,边界值,等等(后续会有具体分类);•根据某种特定网络协议的规约(比如RFC)来对该协议的每一个具体字段,以及整个状态机的所有报文顺序进行遍历,确保代码的高覆盖率。
Defensicsuzz测试软件说明说明书
Improve software robustness, ensure systems interoperability, and identify vulnerabilities, whether you’re procuring software for business operations or building it.OverviewDefensics® fuzz testing is a comprehensive, powerful, and automated black box solution that enables organizations to effectively and efficiently discover and remediate security weaknesses in software. By taking a systematic and intelligent approach to negative testing, Defensics allows organizations to ensure software security without compromising on product innovation, increasing time to market, or inflating operational costs.Key featuresIntelligent fuzzing engineThe Defensics engine is programmed with knowledge on input type, whether it’s an interface, protocol, or file format. Because the engine has a deep understanding ofthe rules that govern communication within the input type, it can deliver targetedtest cases that exploit that input type’s inherent security weaknesses. This intelligent and systematic approach to fuzz testing allows you to reduce testing time without compromising cost or security.Defensics’ logical user interface walks users through each step of the process, making advanced fuzz testing easy.• Choose from five new vertical solution bundles: automotive, ICS, IoT, networking, andtelecom. Vertical solution bundles include foundational protocols in addition to protocolsrelevant to that vertical market.Fits into most development life cyclesDefensics contains workflows that enable it to fit almost any environment from atechnological and process standpoint. Whether you employ a traditional SDL or a CIdevelopment life cycle, Defensics brings fuzz testing into development early, allowingyou to catch and remediate vulnerabilities more cost-effectively. Got an unconventionaldevelopment life cycle? Our experienced Professional Services team can help you identifyfuzz testing checkpoints, define fuzz testing metrics, and establish a fuzz testing maturityprogram.It’s not just about fitting into the development process; it’s also about working withsurrounding technologies. API and data export capabilities allow Defensics to share data foradditional reporting and analysis, making Defensics a true plug-and-play fuzzer.Detailed, data-rich reports for efficient remediation• Contextualized logs. Remediation logs detail the protocol path and message sequencesbetween Defensics and the system under test (SUT) to help you identify the trigger andtechnical impact of each vulnerability.• Vulnerability mapping. Defensics maps each vulnerability to industry standards such asCWE and injection type to enhance information discovery and expedite remediation.• Issue re-creation. Defensics narrows the vulnerability trigger to a single test case so youcan re-create the issue and verify the fix.• Remediation packages. Generate encrypted remediation packages for your softwaresuppliers to facilitate secure, collaborative remediation across the supply chain.Scale fuzz testing with automationFrom scanning for the test target to determining the number of layers to connect to,Defensics offers a rich set of APIs for flexible, scalable automation to meet all your needs:• Test single devices• Set up repeatable automation to ensure test plans are followed every time• Reduce testing times with the latest in scalable virtualizationDefensics reports contain messagesequence logs to help users identify theroot cause of an anomalous reaction.Defensics offers automated capabilitiesthroughout the testing process, such asDevice Explorer, to relieve users of theburden of manual configuration.Authentication, Authorization, and Accounting (AAA)• Diameter Client/Server • EAPOL Server • Kerberos Server• LDAPv3 Client/Server • RADIUS Client/Server • TACACS+ Client/Server • MACsec ServerApplication• FIX• JSON Format • Web Application• WebSocket Client/Server • XML SOAP Client/Server • XML File • XMPP Server • AMQP Server • WAMP Server • OWAMP Server • TWAMP Server Automotive *• CAN Bus • CAN FD • DoIP Server • gPTP Server • SOME/IP • SRP ServerCellular Core• BICC/M3UA • GRE• GTP Prime • GTPv0• PMIPv6 Client/Server • SCTP Client/Server • SMPP• SMS (SMPP injection)• SMS (file injection)• MAP • BSSAP • BSSAP+• CAP • INAP • ISUP• MTP3 / M2UA|M2PA • TCAP / SCCP / M3UA •SBI Client/ServerDefensics Fuzz Testing | Test Suite CatalogCore IP• DHCP/BOOTP Client/Server • DHCPv6 Client/Server • DNS Client/Server • FTP Client/Server • HTTP Client/Server • HTTP/2 Client/Server • HTTP/3 Server • ICAP Server •IPv4 Package–ARP Client/Server –ICMP –IGMP –IPv4–TCP for IPv4 Client/Server •IPv6 Package –ICMPv6 –IPv6–TCP for IPv6 Client/Server • SOCKS Client/Server • Multicast DNS• PPP over L2TP Client • PPPoEEmail• IMAP4 Client/Server • MIME• POP3 Server•SMTP Client/ServerGeneral Purpose• SDK Express• Universal ASN.1 BER • Universal FuzzerICS *• 60870-5-104 (iec104) Client/Server • 61850/Goose/SV• 61850/MMS Client/Server • BACNET • CIP Server • COAP Server• DNP3 Client/Server • MQTT Client/Server • Modbus Master • Modbus PLC • OPC UA Server • Profinet DCP• Profinet PTCP Client/Server • DLMS/COSEM Client/Server •ISASecure Testing SolutionIoT *• Thread • BT• Wi-Fi AP • gRPC •ZigbeeLink Management• LACP (802.3ad)• STP/RSTP/MSTP/ESTPMedia• Archives Package–GZIP –JAR –ZIP• Audio Package–MP3–MPEG4 (M4A/MP4) –OGG –WAV–Windows Media (WMA/WMV)• Images Package–GIF –JPEG –PNG –TIFF• Video Package–H.264 File Suite –H.264 RTP Format –MPEG2-TS–MPEG4 (M4A/MP4) –OGG–Windows Media (WMA/WMV)Medical• DICOM Server • HL7v2 Server• FHIR Client/ServerMetro Ethernet• BFD• CFM (802.1ag, Y.1731)• E-LMI (MEF-16)• Ethernet (802.3, 802.1Q)• GARP (802.1D)• LLDP (802.1AB)• OAM (802.3ah)• PBB-TE Server•Synchronous Ethernet (ESMC)Networking*• BGP• SNMP• IPv4/IPv6• SIP• Metro EthernetPublic Key Infrastructure (PKI)• CMPv2 Client/Server• CSRRemote Management• CWMP (TR-69) ACS• CWMP (TR-69) CPE• IPMI Server• NETCONF• PCP Server• SNMP trap• SNMPv2c Server• SNMPv3 Server• SSHv1 Server• SSHv2 Server• Syslog• TFTP Server• Telnet ServerRouting• BGP4+ Client/Server• IS-IS• LDP• MPLS Server• MSDP• OSPFv2• OSPFv3• Openflow controller• Openflow switch• PIM-SM/DM• RIP• RIPng• RSVP• TRILL Server• VRRP• COPS Client/Server Telecom*• 5G• SMS• Pre-5GTime Synchronization• IEEE1588 PTP Client/Server• NTP Client/ServerUniversal Plug and Play• UPnP Package–UPnP Multicast Eventing–UPnP SOAP–UPnP SSDP Control Point–UPnP SSDP DeviceVoIP• H.323 Client/Server• H.248 GW Binary/Text• H.248 MGC Binary/Text• MGCP Server• MSRP Server• RTP/RTCP/SRTP• RTSP Client/Server• SIP UAC• SIP UAS (+TT)• SIP-I Server• STUN Client/Server• TURN Client/Server• SigComp ServerVPN• DTLS Client/Server• IKEv2 Client/Server• IPSec• ISAKMP/IKEv1 Client/Server• L2TPv2/v3 Client/Server• OCSP Client/Server• SCEP• SSTP• TLS/SSL Client/Server• X.509v3 Certificates• VXLANWireless• Zigbee Package–FuzzBox Zigbee APS–FuzzBox Zigbee MAC–FuzzBox Zigbee NWK• Thread package–FuzzBox Thread 6LoWPAN–FuzzBox Thread MAC• Bluetooth LE Package–ATT Client/Server–Advertisement–HOGP Host–Health–L2CAP Server–LL Peripheral–Profiles–SMP Client/Server• Bluetooth Package–A2DP–AVRCP–BNEP–HFP AG/Unit–HSP AG/Unit–L2CAP–MAP Client–OBEX-Server–PBAP Client–RFCOMM–SDP• Wi-Fi AP Package–802.11 WLAN AP–802.11 WPA AP–802.11 WPA3 AP• Wi-Fi Client Package–802.11 WLAN Client–802.11 WPA Client–802.11 WPA3 Client5G technology• GTPv2-C Client/Server• S1AP/NAS Client/Server• GTPv1 Client/Server• E1AP Client/Server• NGAP/NAS Client/ServerMonitoring and engine capabilities Instrumentation• Valid case• Syslog• Agent• SNMP• Custom scripting at each testing executionSafeGuard checkers• Amplification• Authentication bypass• Blind LDAP injection• Blind SQL injection• Certificate validation• Compressed signer’s name in RRSIG record • Cross-site request forgery• Cross-site scripting• ECDH Public Key validation• Extra cookie compared to valid case• Heartbleed• Information leakage• Insufficient randomness• LDAP injection in response• Malformed HTTP• Remote execution• SQL injection in response• SMP insecure pairing parameters• Unexpected data• Unprotected credentials• Weak cryptographyAnomaly categories• ASN.1/BER anomalies• Credential anomalies• Deep packet inspection• EICAR antivirus test file• GTUBE (generic test for unsolicited bulkemail)• Control plane injection anomalies• Integer anomalies• Network address anomalies• Overflow anomalies• Underflow anomaliesNote: We add test suites frequently. Pleasecontact us for the latest list.。
各类Fuzz软件
各类Fuzz软件众所周知,模糊测试技术已经成为了测试软件质量的重要⼿段。
基于模糊测试技术开发的测试⼯具有很多,其中最长被使⽤⽽且改进也是最多的⼀个⼯具就是AFL(American Fuzz Lop). 本篇⽂章不会赘述如何安装afl,以及如何使⽤afl进⾏简单的fuzz。
由于很多被测程序都有⾃⼰的⼀个⼊⼝,⽽这些⼊⼝有的⼗分清晰,有的则很难挖掘到。
为了解决这个问题,有许多软件项⽬在⾃⼰的代码中会给出⼀个⽤于测试的程序,⼀般叫做test-driver,这个程序⾥⾯实现了该软件项⽬的⼀些主要函数和⽅法,可以⽤来对整个软件项⽬进⾏测试。
但是,⼤部分的test-driver是⼀个shell脚本,⽽afl是⽆法对⼀个shell脚本进⾏fuzz的。
为了解决这个问题,我们可以变换⼀种⽅法来进⾏脚本的fuzz。
具体操作过程如下:⼀. 下载安装shc在Makefile⾥⾯,观察⼀下CC是否是afl-gcc,如果想加ASAN模式,在CFLAG后⾯添加 -fsanitize=address。
make在编译之后,安装:make install⼆. 测试shc在src⽬录下可以看到⽣成的可执⾏⽂件shc,我们随便找⼀个脚本来测试⼀下,在shc/test/ ⽬录下,有若⼲测试脚本,我们利⽤pru.sh这个⽂件进⾏测试,将pru.sh copy到当前⽬录下:cp ../test/pru.sh ./之后运⾏:./shc -f ./pru.sh ./out-f参数指定了要转化的脚本⽂件,第⼆个参数是输出⽂件,我们来看⼀下它们的⽂件类型:1)第⼀个pru.sh⾃然不必说,是shell⽂件:2) out⽂件是⼀个可执⾏⽂件:三. fuzz ⼀个shell脚本有了⽤afl-gcc编译安装好的shc,我们就可以fuzz⼀个shell脚本⽂件了。
具体做法也⼗分简单,对于⼀个软件项⽬来说,⽤afl-gcc编译插桩整个程序,之后,利⽤刚刚的⽅法编译安装好shc,然后利⽤shc将test-driver转化为⼀个C编译成的可执⾏⽂件,这⾥的编译器⽤的还是afl-gcc,这样就给驱动程序进⾏了插桩编译。
fuzzing
fuzzing
利用漏洞检查工具,发送数据到组件,或对指定格式进行填充,完成数以万计的检查任务,来帮助我们发现软件中不期望有的漏洞的行为。
Fuzzing是一种基于缺陷注入的自动软件测试技术。
通过编写fuzzer工具向目标程序提供某种形式的输入并观察其响应来发现问题,这种输入可以是完全随机的或精心构造的。
Fuzzing测试通常以大小相关的部分、字符串、标志字符串开始或结束的二进制块等为重点,使用边界值附近的值对目标进行测试。
主要有两种类型的fuzzing技术:dumb fuzzing 这种测试无需了解协议或文件本身格式,通过提供完全随机的输入或简单改变某些字节去发现问题。
这种方法实现起来较简单,容易快速触发错误,但它的完全随机性会导致产生大量无效的输入或格式。
Intelligent fuzzing 研究目标应用程序的协议或文件格式、功能配置,了解各类漏洞的成因,有目的地编写fuzzer。
编写有效的fuzzer需要花费时间,但能够对某些感兴趣的部分集中测试,因此更有效。
在对目标进行fuzzing的过程中,也可能存在各种问题:校验和、加密、压缩等措施会大大增加fuzzer工具的编写难度;编写智能化的fuzzer依赖目标程序的协议文档,因此协议文档的完整性影响fuzzing测试的效果,等等。
Fuzzing测试过程中需要采取措施记录目标的状态,通常通过日志的方式记录下各种信息,以便后续分析。
目前比较有名的fuzzer工具有SPIKE和Peach,它们提供了对许多协议接口的支持,现有的许多fuzzer都是基于这两个框架实现的。
自动化测试 fuzz用法
自动化测试 fuzz用法自动化测试是软件开发中不可或缺的环节,它可以帮助开发人员快速、准确地发现软件中的错误和缺陷。
其中,fuzz测试是一种常用的自动化测试方法,通过输入大量随机或者边界测试数据来触发软件中的潜在问题,以此来评估软件的稳定性和安全性。
在本文中,我们将介绍fuzz测试的用法,包括其原理、常用的工具和一些最佳实践。
首先,让我们来了解一下fuzz测试的原理。
fuzz测试的核心思想是通过生成大量的随机或者边界测试数据来测试软件的边界情况和异常情况。
通过输入这些测试数据,我们可以触发软件中可能存在的错误和异常行为,从而发现潜在的问题。
与手动测试相比,fuzz测试可以大大减少测试人员的工作量,同时可以发现更多的问题。
接下来,我们将介绍一些常用的fuzz测试工具。
其中,AFL(American Fuzzy Lop)是一种非常流行的fuzz测试工具,它可以自动化地生成测试数据,并通过不断的变异和探索来寻找测试用例中的错误。
AFL的特点是高效、可扩展和易用,它可以应用于各种不同的软件项目。
另外,还有一些其他的fuzz测试工具,如libFuzzer、Peach Fuzzer等,它们也具有各自的特点和适用场景。
选择合适的fuzz测试工具需要根据具体的项目需求和测试目标来决定。
在使用fuzz测试工具进行测试时,我们还需要一些最佳实践来提高测试效果和发现更多的问题。
首先,我们需要对测试目标进行明确定义,明确测试的范围和目标。
其次,我们需要根据测试目标来选择合适的测试数据生成方法,如随机生成、边界测试、模糊测试等。
同时,我们还需要对测试数据进行优化和变异,以便更好地覆盖软件的不同路径和情况。
此外,我们还需要定期监控测试的进展和结果,及时发现并修复测试中发现的问题。
最后,我们还可以使用一些辅助工具来辅助测试,如代码覆盖率工具、静态分析工具等,以提高测试的效果和覆盖率。
总结一下,fuzz测试是一种自动化测试方法,可以帮助开发人员发现软件中的错误和缺陷。
fuzzy工具箱使用规则
Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。
下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器。
首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。
下面我们都是在这样一个窗口中进行模糊控制器的设计。
1.确定模糊控制器结构:即根据具体的系统确定输入、输出量。
这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。
注意这里的变量还都是精确量。
相应的模糊量为E,EC和U,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。
2.输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。
首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后我们为模糊语言变量选取相应的隶属度函数。
在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。
首先我们打开Member Function Edit窗口.然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-3 3],添加隶属函数的个数为7.然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。
3.模糊推理决策算法设计:即根据模糊控制规则进行模糊推理,并决策出模糊输出量。
首先要确定模糊规则,即专家经验。
对于我们这个二维控制结构以及相应的输入模糊集,我们可以制定49条模糊控制规则(一般来说,这些规则都是现成的,很多教科书上都有),如图。
Defensics健壮性测试工具测试方案
Defensics健壮性测试工具测试方案1.前言本文档就CodenomiconDefensics的工控安全测试方案提供说明,就测试原理,测试组网,支持的协议以及测试流程提供帮助,指导测试的进行。
2.测试日程安排N/A3.产品功能介绍CodenomiconDefensics是基于协议级别的专门进行fuzzing测试的健壮性测试工具,专门用于发掘产品当中的未知漏洞。
当前随着APTs高级持续攻击的日益猖獗,网络及工控安全面临前所未有的挑战,大部分的攻击利用的都是设备或系统当中的零日漏洞,这类漏洞由于缺少相应的防护措施以及补丁,往往成为黑客攻击的首选。
而黑客在寻找零日漏洞时往往采用的就是fuzzing技术,Defensics能够先敌而动,在黑客攻击之前发现产品当中隐含的零日漏洞,帮助客户弥补潜在的安全隐患。
CodenomiconDefensics通过构造有序的异常用例集合,来查看系统是否会出现中断或服务失败等现象。
通过采用基于协议建模的构建方法,可以保证对协议所有状态机和字段的覆盖。
而通过智能高效的用例生成策略,可以使测试人员从无限的数据源中摘取出容易诱发系统服务失败的数据。
作为黑盒测试,Fuzzing测试不需要访问源代码,因此可在第三方软件上使用。
通过自动化的用例生成、管理和执行,最大限度地提升测试效率,保证产品的安全质量。
4.测试原理模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。
目前国际上公认找寻未知漏洞的最佳途径就是通过Fuzzing。
Codenomicon公司主推的Defensics产品就是一款基于黑盒的专门针对网络协议进行Fuzzing的安全性/健壮性测试平台。
我们会选取出一系列的有组织的异常数据(畸形报文)发送给被测设备,并通过正常报文的探测来观察被测设备是否还处于正常工作状态。
这里所谓的“有组织的异常数据”是通过一下两个方向来形成的:•缓冲区溢出/溢进,边界值,等等(后续会有具体分类);•根据某种特定网络协议的规约(比如RFC)来对该协议的每一个具体字段,以及整个状态机的所有报文顺序进行遍历,确保代码的高覆盖率。
模糊测试方案
模糊测试方案1. 引言模糊测试(Fuzz Testing)是一种常用的软件测试技术,主要通过将无效、异常或随机的输入数据输入到被测试程序中,来检测目标程序在处理异常或无效输入时的稳定性和健壮性。
模糊测试可以帮助发现和修复软件中的安全漏洞、内存错误和其他潜在的软件缺陷。
本文将介绍一种常见的模糊测试方案,并提供一些最佳实践和建议,以帮助测试人员在进行模糊测试时取得更好的效果。
2. 模糊测试方案步骤2.1 确定目标程序首先,确定需要进行模糊测试的目标程序。
可以选择一些常见的软件,如浏览器、PDF阅读器、解析器等,也可以选择自己开发的软件。
选择目标程序的时候,需要考虑软件的复杂性和安全性,以及测试人员的技术水平和资源限制。
2.2 构建模糊测试框架构建一个稳定且可扩展的模糊测试框架是非常重要的。
一个好的模糊测试框架应该具备以下特点:•支持多种模糊测试方法和策略:包括随机模糊、字典模糊、结构模糊等;•能够自动化生成模糊测试输入;•具备高效的输入变异和变异策略;•可以监控目标程序的崩溃和异常情况,并生成报告;•容易使用和扩展。
2.3 选择模糊测试输入选择合适的模糊测试输入对于测试结果的有效性至关重要。
模糊测试输入应该包含各种类型的数据,如字符、数字、特殊字符、文件格式等。
可以使用现有的模糊测试输入生成工具,如AFL(American Fuzzy Lop)、Peach Fuzzer等,也可以自己编写生成工具。
2.4 执行模糊测试在执行模糊测试之前,确保目标程序在一个隔离的环境中运行,以防止其对系统造成不良影响。
开始模糊测试后,监控目标程序的行为,包括执行时间、内存使用情况、输入错误处理等。
同时,记录模糊测试期间目标程序的崩溃和异常情况。
2.5 整理和分析测试结果模糊测试完成后,对测试结果进行整理和分析是非常重要的一步。
将目标程序的崩溃和异常情况整理成报告,并尽快通知软件开发者以便修复。
同时,对测试过程中产生的随机输入进行记录和分析,可以帮助发现输入的模式和特征。
fuzz——AFL基础使用方法
fuzz——AFL基础使⽤⽅法最近打 ctf 的时候感觉有点遇到瓶颈,就来 fuzz 这块看看。
AFL 全称为 American huzzy loop,是 Fuzzing 最⾼级的测试⼯具之⼀。
这个⼯具对有源码和⽆源码的⼆进制程序均可以进⾏ fuzz 测试。
alf 各位⾃⾏安装即可,值得注意的是,在我本机 glibc2.31 的环境下,编译 alf 前要对 AFL/llvm_mode/afl-clang-fast.c修改⼀下,否则会出现报错,只需把部分内容注释掉即可输⼊ afl-fuzz 出现下图即安装成功我们先看对有源码的⼆进制程序是怎样进⾏测试:在 AFL ⽂件夹⾥会有很多⽬录,我们进⼊ test。
⾸先先把⾃⼰要测试的源码放进去,再建两个⽂件夹分别放测试输⼊的内容和测试输出的内容,我这⾥就建了 fuzz_in , fuzz_out。
在fuzz_in ⾥⾯还要建⼀个⽂件,⾥⾯随便放⼀些字母就⾏(这⾥笔者也不是很清楚为什么)。
在有源码的情况下我们⽤ afl ⾃带的编译器,对其进⾏编译这会使测试更加⾼效。
原因是 afl ⾃带的编译器在编译时会对⽬标程序插桩,故此过程叫插桩编译。
我从其他师傅的博客⾥找了⼀个简单的⼆进制程序来进⾏测试。
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <signal.h>int vuln(char *str){int len = strlen(str);if(str[0] == 'A' && len == 66){raise(SIGSEGV);//如果输⼊的字符串的⾸字符为A并且长度为66,则异常退出}else if(str[0] == 'F' && len == 6){raise(SIGSEGV);//如果输⼊的字符串的⾸字符为F并且长度为6,则异常退出}else{printf("it is good!\n");}return0;}int main(int argc, char *argv[]){char buf[100]={0};gets(buf);//存在栈溢出漏洞printf(buf);//存在格式化字符串漏洞vuln(buf);return0;}对其插桩编译afl-gcc -g -o afl_test afl_test.c我们接下来就可以对其进⾏测试了,此外在 fuzz 前要关闭系统的核⼼转储,确保在 fuzz 的过程中即使出现 crash 也不会停⽌,不然就会出现如下报错我们关闭系统核⼼转储开始测试sudo suecho core >/proc/sys/kernel/core_patternexitafl-fuzz -i fuzz_in -o fuzz_out ./afl_test这上⾯的数字是彩⾊的,注意 overall results ⾥的 cycles results 的颜⾊会随着 fuzz 次数的增加从红⾊到黄⾊到蓝⾊到绿⾊,当他到绿⾊的时候也就说明基本上该有的 crash 都出来了,继续跑下去,发现的东西也很少了,此时我们就可以 crtl+c 结束测试。
安全漏洞评估中的模糊测试技术与实战经验分享(七)
安全漏洞评估中的模糊测试技术与实战经验分享一、引言信息安全日益受到重视,网络攻击也随之增多,使企业和个人面临着越来越多的安全威胁。
在安全漏洞评估中,模糊测试技术是一种常用且有效的手段。
本文将介绍模糊测试的基本原理和相关技术,并分享在实际漏洞评估项目中的一些经验。
二、模糊测试的基本原理模糊测试(Fuzzing)是一种自动化测试技术,通过输入异常、随机或者变异的数据来测试系统是否存在漏洞。
其基本原理是将各种非法或特殊的输入作为测试用例,观察程序对这些输入的反应,从中发现可能的漏洞。
三、模糊测试的技术手段1. 边界值测试:通过输入接近上下限的值来测试系统是否对边界条件有正确的处理。
例如,可以测试一个输入字段对于超过最大长度或小于最小长度的数据是否能正确拒绝。
2. 变异测试:对已有的有效数据进行修改或变异,以测试系统对于异常情况的处理能力。
例如,可以随机修改一个已有的文件,观察系统是否崩溃或出现异常。
3. 随机测试:随机生成测试用例,以覆盖系统的各种可能情况。
例如,可以随机生成各种长度的字符串作为输入,观察系统是否正常处理。
四、模糊测试的实施步骤1. 识别测试目标:确定需要测试的软件或系统。
2. 收集测试数据:收集有效数据和异常数据,构建测试用例集。
3. 编写测试程序:编写自动化脚本或程序,用于自动化执行模糊测试。
4. 执行测试:运行模糊测试程序,将测试用例输入到目标系统中。
观察系统对于这些测试用例的反应。
5. 分析结果:对测试结果进行分析,发现可能的漏洞。
6. 报告漏洞:将发现的漏洞进行整理并报告给系统开发者或相关负责人。
五、模糊测试的注意事项1. 测试用例的选择要有针对性:根据目标系统的特点,选择恰当的测试用例。
不能盲目地生成大量的测试用例,这可能会导致测试效果不理想。
2. 关注程序的异常处理能力:在模糊测试中,需要关注系统对于异常输入的处理能力。
如果系统对异常输入没有正确的处理,可能会导致漏洞的产生。
模糊测试-Fuzzing
发展方向
二、协议格式自动化分析
对文件、协议格式的深刻理解可以帮助测试人员构建出通过率很 高的测试用例, 但这繁琐复杂的测前准备工作也给测试工具开发人员 带来很大的负担, 可以设想, 即使针对一个简单的非公开协议也需要 花费编程人员大量的时间研究目标协议的工作规范, 更何况, 待测试 的网络协议规范很可能是未经公开的. 这就指明了模糊测试技术未来 的另一个发展方向, 即实现文件、协议格式的自动化分析.
执行过程——案例说明
假如根据抓取到的数据包,我们发现被测应用使用的协议如下:
|00 01| GET | 11 | user:dennis 2字节的包头(00 01) 10字节定长的命令(GET) 一个1字节的数据,表示命令参数的长度 不定长的命令参数
根据这些信息,使用模糊测试方法,我们就可以借助通用的模糊测试工具 (如Spike),用模板方式将协议描述出来,并让模糊测试工具自动填充可变字段 的内容,生成大量的测试用例并发送给Test。同时,通过模糊测试工具提供的功 能监视Test,一旦Test出现可被识别的问题(如性能下降,不再响应,或是返回 异常数据等),我们就可以停止模糊测试,并通过日志找到导致问题的请求,进 而确认问题。
发展方向
六、更多平台的支持
目前, 几乎所有的模糊测试工具都只能运行在桌面操作系统上, 而 对于支持智能手机等嵌入式操作系统的模糊测试工具还需要进一步 的研究. 另外, 大多的模糊测试工具还不具有跨平台的能力, 大多只能 测试单一操作系统的软件漏洞. 因此, 研究具有跨平台, 支持多种软硬 件平台的模糊测试工具非常有价值.
执行过程——生成模糊测试数据
(3) 协议变异人工测试 该方法的测试过程是在加载了目标应用程序后, 测试人员仅通过输入不恰 当的数据来试图让服务器崩溃或使其产生非预期的行为. 这种方法不需要 自动化的模糊器, 人就是模糊器. 可以充分利用测试者自身的经验和直觉. (4) 变异或强制性测试 从一个有效的协议或数据格式样本开始, 持续不断地打乱数据包或文件中 的每一个字节、字、双字或字符串. 所以,对应的模糊工具的工作就是修 改数据然后发送. 这种方法几乎不需事先对被测软件进行研究, 测试数据的 生成和发送都可以自动完成. 但由于大量的测试时间都浪费在生成数据上, 因此效率也不高.
软件测试中的模糊测试挖掘未知漏洞的利器
软件测试中的模糊测试挖掘未知漏洞的利器在软件开发领域,软件测试是确保软件质量和稳定性的关键步骤。
然而,传统的测试方法可能无法覆盖所有可能的情况,从而导致未知漏洞被忽略。
为了解决这个问题,模糊测试作为一种自动化测试技术,成为了挖掘未知漏洞的利器。
一、什么是模糊测试1.1 定义与原理模糊测试,又称为Fuzzing,是一种通过自动生成或随机生成输入数据,然后将其作为目标软件的输入进行测试的方法。
其原理是模拟真实环境中的非法或异常输入,来触发软件可能存在的漏洞。
模糊测试通过将大量的随机数据输入到目标软件中,探索其边界条件和异常情况,以此来发现软件中未知的漏洞。
1.2 模糊测试分类模糊测试可以分为以下几种类型:1.2.1 黑盒模糊测试黑盒模糊测试是指测试人员不了解软件内部结构和运行原理,只关注输入输出接口,并通过生成大量随机输入数据进行测试。
1.2.2 白盒模糊测试白盒模糊测试是指测试人员基于了解软件内部结构和运行原理,有针对性地生成测试数据,提高模糊测试的效率和准确性。
1.2.3 灰盒模糊测试灰盒模糊测试介于黑盒和白盒之间,测试人员具有一定的软件内部结构和代码的了解,并结合随机生成测试数据的方式进行测试。
二、模糊测试在挖掘未知漏洞中的应用2.1 发现新的漏洞类型传统的测试方法主要验证软件是否符合预期的功能和性能要求,但无法预测和检测新的未知漏洞。
而模糊测试通过生成大量随机的非法输入数据,可以触发未知漏洞,帮助开发人员发现并修复在正常测试环节中无法发现的漏洞。
2.2 辅助其他测试技术模糊测试虽然可以发现未知漏洞,但无法保证每次测试都能发现漏洞。
因此,模糊测试常常与其他测试技术相结合,如静态代码分析、动态测试、符号执行等,以提高漏洞发现的效率和准确性。
2.3 加速漏洞修复和软件迭代利用模糊测试挖掘出的未知漏洞,可以使开发团队更快地修复这些漏洞并发布更新版本。
通过持续进行模糊测试,可以持续挖掘和修复软件中的漏洞,从而提高软件的质量和稳定性。
fuzzer教程文稿
暴力地发现漏洞 不止可以用来发现溢出漏洞,还可以用来发
掘拒绝服务漏洞,格式化漏洞,甚至是 web程序中的XSS漏洞,注入漏洞等等 Fuzzing技术应用的范围比较广泛
文件型 网络型 接口型
用来实现Fuzzing测试的工具叫做 Fuzzer
成品的Fuzzer工具很多,许多是非常 优秀的,例如:针对文件型Fuzzing 测试的File Fuzzer;以及我们将在后 面一节课中给大家实际演示的 ComRaider
目标分析 需求判断 架构设计 具体实 现 反馈结果
但是,有时我们实际需要进行Fuzzing测 试时,这些成品的Fuzzer工具不能够很
好地发挥其作用原因是:
被测试的目标程序对测试数据有 一定的要求,而实际的Fuzzer 不能灵活调整发送的测试数据
被测试的目标程序过于简单或者 难,而现有的Fuzzer程序不能 提供适合的测试
如何解决这些问题 框架化 智能化
作为一个扩展,我们应该会什么
我们不能仅仅限于学习会那些成品的 Fuzzer,虽然这也是一门技术,作为漏洞 发掘者我们最好能学会编写一个Fuzzer, 这样就可以随时随地的进行安全测试
演示 如何编写出一个最为简
单的Fuzzer工具
虽然简单却贯穿了Fuzzing技术的思想
判断目标程序的需要 提供什么样的数据作为测试 如何实现暴力测试 如何获得结果 完全是一个小型的软件工程思想:
模糊测试-Fuzzing
1
2
3
发数据包 测试工具检 一旦故障被 给目标应 测被测系统 识别,还需 用程序、 的状态(如 要确定所发 打开文件 是否响应, 现的bug是 或发起目 响应是否正 否可被进一 标进程等。 确等) 步利用。
4ห้องสมุดไป่ตู้
5
6
执行过程——识别与确定目标
• 环境变量与参数模糊测试 • Web应用与服务器模糊测试 • 文件格式模糊测试 • 网络协议的模糊测试 • Web浏览器的模糊测试
发展方向
七、模糊测试的智能化
不能发现鉴权绕过和后门等逻辑上的错误一直是模糊测试技术无 法规避的一个重大缺点. 可以研究在生成测试用例的过程中引入知识 或一些人工智能算法, 使得模糊测试工具具有学习的能力,从而在一定 程度上具备发现逻辑漏洞的能力. 模糊测试技术的另一个缺点是不能 对漏洞进行准确定位, 即通过模糊测试技术只能判断出待测软件中存 在何种漏洞并不能准确的定位到程序源代码中是哪一行引发了这个 漏洞, 可以研究通过提高监视器的监测精度等方法来克服这个问题.
执行过程——案例说明
简单起见,假定我们要测试的应用是一个C/S应用的服务端程序,名字叫做 Test。我们知道客户端和Test之间使用基于TCP/IP协议进行通讯。这种情况下,我 们该如何尝试找到应用系统中可能的漏洞? 方法1:
如果我们手头上有Test的源代码,通过代码审查显然可以找到可能的漏洞。 就算没有源代码,通过逆向工程方式,用代码审查的方式也可以达到找到漏洞的 目的。但是,这要求审查者具有足够好的技能,而且,被测应用规模越大,需要 付出的成本也就越高。 方法2:
其他 局限性
如何克服缺陷、 提高漏洞挖掘的 效率?
模糊测试的发展方向
发展方向
Fuzz测试工具使用总结
Fuzz测试工具使用总结在安全测试中,模糊测试(fuzz testing)是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。
能够在一项产品投入市场使用之前对潜在的应当被堵塞的攻击渠道进行提示。
模糊测试(fuzz testing)和渗透测试(penetration test)都是属于安全测试的方法,它们有同也有异,渗透测试一般是模拟黑客恶意入侵的方式对产品进行测试,对测试者的执行力要求很高,成本高,难以被大规模应用。
而模糊测试,它能够充分利用机器本身,随机生成和发送数据;与此同时,又能够引进业内安全专家在安全性方面的建议。
模糊测试其数据具有不确定性,也没有明显的针对性,简单来说就是没有逻辑,没有常理。
只要将准备好的那些杂乱的程序插入其中,然后等待b ug的出现,而出现的漏洞是测试员们先前无法预知的。
模糊测试的执行过程很简单,大致如下:由此可见,模糊测试deep整个执行过程是依靠工具进行的自动化或半自动化测试。
通常在这种情况下,们可以引入模糊测试的方法。
们尝试抓取到客户端和服务器之间的通信数据,根据抓包出来的这些数据分析出客户端与服务器之间的通信协议,然后根据协议的定义,自行编造数据发起攻击,尝试找到可能的漏洞。
相比于直接看targetserver进行代码审计成本要低,而这种关注协议层面的攻击,其效率更高。
但是,这种测试方法,若要进行协议分析难度会很大,而且,人工编造数据成本很高。
所以,们就可以引入fuzz testing,机器生成和发送数据的能力足够强,们可以将生成数据的任务交给机器去完成,解决了人工编造数据成本高的问题。
当然,协议的分析主要还是依赖人工来进行,模糊测试领域内有一些自动化的协议分析手段,但从效率和效果上来说,在面对复杂协议的时候,人工分析的方式更为有效。
1:首先是一款web应用漏洞fuzz工具-teenage mutant ninja t urtles v 1.5现在很多大中型网站都在服务器前段架设了WAF、IPS等过滤设备,常见的SQL 注入、XSS、XXE等都会在这一层面被过滤掉,或者给渗透测试造成了各种不方便。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/page/200 Win32,C,通过配置文件格式进行fuzzing 4-11-11/202714671777
SPIKE
Protocol Informatics Schemer SMUDGE
Slides, whitepaper and code from the last publicly seen snapshot from Marshall Beddoe’s work. XML driven generic file and protocol fuzzer.
名称 Sulley
简介
SPIKE is an attempt to write an easy to use generic protocol API that helps reverse engineer new and unknown network protocols. It features several working examples. Includes a web server NTLM Authentication brute forcer and example code that parses web applications and DCE-RPC (MSRPC). Scratch Scratch is an advanced protocol destroyer (”fuzzer”) which can routinely find a wide variety of vulnerabilities from a simple packet. scratch does complex parsing of binary files to determine what to fuzz with what data. scratch also comes with a framework for fuzzing binary protocols such as SSL and SMB. LXAPI Library Exploit API - A selection of python methods designed for bugtesting and exploitation of local and remote vulnerabilities. It includes a fuzz testing compenent, miscellaneous shellcode methods and a simple GUI. LxAPI is currently a work-in-progress. antiparse antiparser is a fuzz testing and fault injection API. The purpose of antiparser is to provide an API that can be used to model network protocols and file formats by their composite data types. Once a model has been created, the antiparser has various methods for creating random sets of data that deviates in ways that will ideally trigger software bugs or security vulnerabilities. Requires Python 2.3 or later. Autodafe Autodafe is a fuzzing framework that can be used to identify boundary validation and other issues in protocols and applications. Written by Martin dfuz a remote protocol fuzzer/triggerer which can do many things such as sending random data/random sizes, together with the data you want. it has alot of ways to tell the program to use this data by using rule files which will be later parsed by the program itself, and with several options and ways to make it very specific, and very flexible. It’s not only a remote protocol fuzzer as itself, but it is a scripting-like motor on which you can create any kind of payload. Userfriendly.(Unix) Evolutionary A fuzzer which attempts to dynamically learn a Fuzzing System protocol using code coverage and other feedback (EFS) mechanisms. General Written in C, GPF has a number of modes ranging Purpose Fuzzer from simple pure random fuzzing to more complex (GPF) protocol tokenization.
地址 /wpcontent/Sulley%20Fuzzing%20Fr amework.exe /resour ces-freesoftware.shtml
备注 Python的fuzzing框架,包括进程监视、网 框架, 的 框架 包括进程监视、 络监视、 络监视、虚拟机控制 一个C++的接口 fuzz框架,fuzz http server等 比较成熟。
/tools/efs_g Python,fuzzing框架,包含进程调试 pf.html /tools/efs_g C,只有通用的协议 pf.html
/wpcontent/Protocol%20Informatics.zip /Schemer/S chemer.htm /wpcontent/SMUDGE.zip /
/
没有下载到。
/
基于Python的fuzzing框架,主要提供各种各 样的数据变异API
/fuzze 支持sniffer包 自动生成测试数据,基于 r/autodafe-0.1.tar.gz block,自动计算block的大小,带调试器,能 自动监控 危险函数和测试用例间的情况,比 /dfuz/ 一个简单易用的fuzz工具
通过统计的等技术自动识别协议,统计部分 比较新颖,其他部分一般。 基于XML定义格式,协议审计感觉比较麻 烦,建议file可以采用,结合模板的形式。 Python,但是不支持UБайду номын сангаасP Python,基于代理模式,不支持UDP
http://www.cobrabasket.de/bed.html
Perl,仅支持 FTP/SMTP/POP/HTTP/IRC/IMAP/PJL/LPD/ FINGER/SOCKS4/SOCKS5
Pure Python network protocol fuzzer from nd@felincemenace. taof Written in Python, a cross-platform GUI driven network protocol fuzzing environment for both UNIX and Windows systems. Bruteforce This is a collection of scripts to automatically test Exploit Detector implementations of different protocols for buffer overflows and / or format string vulnerabilities, by sending a lot of long strings to a server. EFuzz Efuzz is an easy to use Win32 tcp/udp protocol fuzzer which finds unknown buffer overflows in local and remote services. Uses config files to define the range of malformed requests. Includes C source, zzuf transparent application input fuzzer. Its purpose is to find bugs in applications by corrupting their usercontributed data (which more than often comes from untrusted sources on the Internet). It works by intercepting file and network operations and changing random bits in the program’s input. zzuf’s behaviour is deterministic, making it easier to reproduce bugs.(unix) JBroFuzz a java based stateless network protocol fuzzer for penetration tests. It allows for the identification of certain classes of security bugs, by means of creating malformed data and having the network protocol in question consume the data. fuzzCIRT a simple fuzzer by Dennis Rand. Looks more suited for ASCII protocols than binary ones, but I could be wrong.(pl)