借助Radamsa变异数据(初探)

发布时间 2023-03-22 19:10:53作者: 狒猩橙

Radamsa 介绍

Radamsa是一款测试用例生成器,通常用来测试程序对格式错误和潜在恶意输入的承受能力(对程序进行模糊测试)。它通过你的输入来返回变异后的数据。它的主要卖点是,它已经在真正重要的程序中发现了许多错误。

Radamsa 使用方法

1、可以直接喂给它字符,它就会返回变异之后的数据给你。

2、从文件中读入字符,他返回变异之后的数据。

3、写一个shell脚本,搭配jq来剔除不满足满足json格式的数据,留下满足要求的。

#!/bin/bash
while true; do
    radamsa test.json > ./input.txt
    jq . input.txt 2>&1
    if [ $? -gt 0 ]; then
        cp ./input.txt ./crash/crash-`date +%s`.json
        echo "Crash found"
    fi
done

4、通过 python 里pyradamsa提供的接口,来对数据进行编译

import pyradamsa

base_login_request = open("./input.txt", "rb").read()

rad = pyradamsa.Radamsa()

result = rad.fuzz(base_login_request)

print(result)

总结

合理的利用这个工具,应该可以对我们的fuzz有一定的帮助。