首页
社区
课程
招聘
[看雪读书月]软件漏洞挖掘Fuzz工具之三-入门篇
2008-8-3 11:17 13291

[看雪读书月]软件漏洞挖掘Fuzz工具之三-入门篇

2008-8-3 11:17
13291
【文章作者】: condor
【作者邮箱】: cracker@vip.qq.com
【作者主页】: http://hi.baidu.com/linshifei
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

    一些朋友反馈不是很理解什么是fuzz,这里就补充做一个介绍。另外,响应kanxue的号召,
该主题参加 读书月活动。

What is Fuzz Testing?
Fuzz testing or Fuzzing is a software testing technique, often used to discover security weaknesses in applications and protocols. The basic idea is to attach the inputs of a program to a source of random or unexpected data. If the program fails (for example, by crashing, or by failing in-built code assertions), then there are defects to correct. It should be noted that the majority of security vulnerabilities, from buffer overflows to cross-site scripting attacks, are generally the result of insufficient validation of user-supplied input data. Bugs found using fuzz testing are frequently severe, exploitable bugs that could be used by a real attacker. This has become even more true as fuzz testing has become more widely known, as the same techniques and tools are now used by attackers to exploit deployed software. This is a major advantage over binary or source auditing, or even fuzzing’s close cousin, fault injection, which often rely on artificial fault conditions that are difficult or impossible to exploit.
   

简单的理解就是 黑盒测试的一种方法。
我目前接触的简单的分为 协议fuzz和文件fuzz。
fuzz 测试可以发现很多问题,当然引起关注的是安全问题,这里
列出一些fuzz 曾经发现的安全漏洞

dfuz:  

Updated: September 2005
Software        Found        Time for success        Tools used        Added (dd/mm/yy)
Microsoft RPC        DoS        Around 30 min        dfuz, windbg        17/12/04
File 3.41        Buffer overflow        Around 4 hours        dfuz, bash        17/12/04
Helix Server 9.0.2        DoS        5 mins        dfuz        17/12/04
Winaxe 6.8        Integer overflow        45 mins        dfuz, windbg        17/12/04
Ipswitch Products        Memory management errors        Relative        dfuz, windbg        17/12/04
Realplayer 10 GOLD        Pointer hijacking error        10 mins        dfuz, ida pro, gdb        17/12/04
libpng3 1.2.7        Memory management error        6 hours        dfuz, awk, bash        17/12/04
WS-FTP        Buffer overflow        45 secs        dfuz        17/12/04
Dfuz的使用方法,接下来我会发文章专门介绍。

Taof的战绩::http://theartoffuzzing.com/joomla/index.php?option=com_content&task=view&id=20&Itemid=37

Savant Web Server fuzzing (HTTP protocol): This video shows a buffer overflow on the Savant Web Server when a long GET request is made.

Vulnerability:

      CVE-2002-1120

      BID 5686

WarFTPd FTP Server fuzzing (FTP protocol): WarFTPd 1.65 FTP server is vulnerable to a buffer overflow in the authentication process. The video demonstrates the use of TAOF to recreate the bug.

NaviCOPA Web Server fuzzing (HTTP protocol): NaviCOPA web server is vulnerable to a buffer overflow when a client sends a GET request against the ‘cgi-bin’ folder followed by a long string.

这个是一款支持windows UI界面工具,使用方便,是菜鸟入门,探亲访友,装腔作势的好工具-_-

这里列出了一些工具 ,我接下来可能要介绍的

名称        简介        备注
Sulley        Sulley is a fuzzer development and fuzz testing framework consisting of multiple extensible components        Python的fuzzing框架,包括进程监视、网络监视、虚拟机控制
SPIKE        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).         一个C++的接口 fuzz框架,fuzz http server等比较成熟。
Autodafe        Autodafe is a fuzzing framework that can be used to identify boundary validation and other issues in protocols and applications. Written by Martin Vuagnoux.        支持sniffer包 自动生成测试数据,基于block,自动计算block的大小,带调试器,能自动监控 危险函数和测试用例间的情况,比较好的一个。
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. User-friendly.(Unix)        一个简单易用的fuzz工具
taof        Written in Python, a cross-platform GUI driven network protocol fuzzing environment for both UNIX and Windows systems.        Python,基于代理模式,不支持UDP
更多的到这里找吧,我懒得转了
http://hi.baidu.com/linshifei/blog/item/fdd838fb5c2e868c9f5146ad.html

condor 认为 Fuzz 的关键技术在于:如何产生Fuzz数据
我个人总结了下产生Fuzz数据的方法,后续有机会我会通过相关工具介绍过程。
1 清楚包格式情况下,使用Fuzz工具描述包格式
2 根据sniffer包 ,自动生成测试数据
3 分析程序流程结构,针对各个分支构造Fuzz包 。
之前接受的google 的Bunny 属于这一类,不过它是结合编译器,自动的遍历的。
4 统计分析自动识别协议包,并构造Fuzz包

貌似,图片和表格的格式乱了,传个word到附件。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (8)
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
vxasm 6 2008-8-3 11:29
2
0
很好,期待LZ的更多后续文章。
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixupeng 2008-8-3 12:06
3
0
好东东啊
雪    币: 177
活跃值: (64)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hemp 2008-8-13 09:00
4
0
收藏了,谢谢
雪    币: 122
活跃值: (38)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
herx 2 2008-8-14 14:11
5
0
很好,向楼主学习。。
雪    币: 205
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rainler 2008-9-16 09:32
6
0
一定要好好研究一下
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yamu 2008-9-23 14:24
7
0
收藏了 来留言 对lz的辛苦表示感谢
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqduanzhi 2008-9-26 21:08
8
0
看不懂啊`
  汗 ``
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ryebread 2008-9-27 20:10
9
0
期待有更好更深入的介绍
游客
登录 | 注册 方可回帖
返回