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 @@
测试结果

在这里插入图片描述

黑盒测试

配置

首先在下载好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的项目进行测试时,如果是对./node二进制文件直接进行测试的话,会报错。在排了一大堆问题后,只要在./node 后面加一个-d命令即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值