藉助Radamsa變異資料(初探)

狒猩橙發表於2023-02-01

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有一定的幫助。

相關文章