AFL++实战(三)-测试nodejs

nodejs

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
简单的说 Node.js 就是运行在服务端的 JavaScript。项目源码

nodejs的下载

apt-get update
sudo apt-get install python g++ make
git clone https://github.com/nodejs/node.git
cd node

有源码测试

配置

对于完整的项目,需要将编译器指定为 afl-clang,然后再进行编译。

export CC=afl-clang
export CXX=afl-clang++
./configure
make

fuzz

正式执行 fuzz 测试的命令如下:

mkdir in
# 在in文件下下创建js语料库
afl-fuzz -m none -i in -o out ./node -d @@

测试结果

AFL++实战(三)-测试nodejs_第1张图片

黑盒测试

配置

首先在下载好nodejs后,对nodejs直接进行编译安装,生成二进制文件。

./configure
make
make test
sudo make install

启用QEMU模式,要先编译。

# 进入到AFLplusplus所在位置
cd qemu_mode
./build_qemu_support.sh

fuzz

afl-fuzz -Q -m none -i in -o out_res ./node -d @@

测试结果

AFL++实战(三)-测试nodejs_第2张图片

注意事项

在用afl++对nodejs的项目进行测试时,如果是对./node二进制文件直接进行测试的话,会报错。在排了一大堆问题后,只要在./node 后面加一个-d命令即可。

你可能感兴趣的:(模糊测试)