目录

代码

简介

目录结构

Linux平台(Ubuntu测试)

编译

工具安装

下载编译

查看版本

Windows平台(Win10测试)

cygwin安装

编译

选项

使用举例

Hello World!

json数据

添加json数据

使用radamsa进行fuzz

脚本编写


代码

radamsa

简介

Radamsa是用于健壮性测试(又称为模糊测试)的测试用例生成器。它通常用于测试程序对格式错误和潜在恶意输入的承受能力。它通过读取有效数据的样本文件并从中生成令人感兴趣的不同输出来工作。radamsa的主要卖点是,它已经在真正重要的程序中发现了许多错误,它易于编写脚本,并且易于启动和运行。

目录结构

目录结构1

目录结构2
  • bin 一些测试的shell脚本等
  • c    库、头文件以及一对库的一些测试
  • doc 文档
  • rad 一些.scm文件(一种支持DRM(Digital Rights Management 数字版权保护)的新兴媒体格式)
  • tests 测试目录,包含一些脚本及抓的网络包

Linux平台(Ubuntu测试)

编译

工具安装

sudo apt update

安装

sudo apt-get install gcc make git wget

下载编译

git clone git@gitlab.com:akihe/radamsa.git && cd radamsa && sudo make && sudo make install

develop版本

develop版本

它有很多分支,我下载的develop版本。

查看版本

radamsa --version

版本

develop版本应该和master,v0.6是一样的,master和v0.6应该更稳定些。

Windows平台(Win10测试)

cygwin安装

标题

标题

标题

阿里云镜像

上面的截图在选择包之后出现,有的人的软件有列表,我的是空的,自己Add上。

标题

标题

选择好后悔安装,上面以gcc和make为例,建议使用后方的命令去安装gcc make和wget

标题

安装命令

进入到安装包目录,使用以下命令会自动到达gcc make wget的页面。

setup-x86_64.exe -q -P wget -P gcc-g++ -P make -P diffutils -P libmpfr-devel -P libgmp-devel -P libmpc-devel

安装完成,打开Cygwin.bat查看。

版本

编译

编译成功

想要不通过Cygwin运行,需要将依赖放到exe的目录中,然后使用cmd命令

cygwin1.dll在cygwin64安装目录的bin目录中,radamsa.exe路径在radamsa的bin中。

同一目录下

cmd命令调用

cmd命令调用radamsa.exe

选项

radamsa用法
用法:radamsa [参数] [文件]  
参数 含义
-h | --help 展示帮助信息
-a | --about radamsa介绍
-V | --version 版本
-o | --output <arg> 输出模式,例如out.bin /tmp/fuzz-%n.%s、-、:80或127.0.0.1:80或127.0.0.1:123/udp [默认-]
-n | --count <arg> 要生成多少个输出(数字或inf)[默认1]
-s | --seed <arg> 随机种子(数字,默认随机)
-m | --mutations <arg> 要使用哪些突变[ft = 2,fo = 2,fn,num = 5,td,tr2,ts1,tr,ts2,ld,lds,lr2,li,ls,lp,lr, lis,lrs,sr,sd,bd,bf,bi,br,bp,bei,bed,ber,uw,ui = 2,xp = 9,ab]
-p | --patterns <arg> 要使用的突变模式[od,nd = 2,bu]
-g | --generators <arg> 要使用的数据生成器[random,file = 1000,jump = 200,stdin = 100000]
-M | --meta <arg> 将有关生成文件的元数据保存到此文件
-r | --recursive 包括子目录中的文件
 -S | --seek <arg> 从给定的测试用例开始
-T | --truncate <arg> 仅占用每个输出的前n个字节(主要用于UDP)
-d | --delay <arg> 输出之间睡眠n毫秒
 -l | --list 列出突变,模式和生成器
-C | --checksums <arg> uniqueness过滤器中的最大校验和数(0禁用)[默认10000]
-H | --hash <arg> 用于唯一性检查的哈希算法(stream,sha1或sha256)[默认stream]
-v | --verbose 显示生成过程中的进度

使用举例

Hello World!

echo 'Hello World!' | radamsa

hello world

json数据

sudo apt install jq

标题

添加json数据

nano test.json

不习惯nano的加,可以用vim

内容

数据如下

{"test": "test","array":["item1: lady","item2: killer"]
}

检查语法

jq . test.json

没有问题会输出,有问题根据提示改。

检查无误

使用radamsa进行fuzz

radamsa test.json | jq .

结果

有时fuzz后不符合json格式便会报错。

脚本编写

为了更有效的进行fuzz,编写一个小脚本。

vim jq-fuzz.sh
#!/bin/bash
while true; doradamsa test.json>input.txtjq . input.txt>/dev/null 2>&1if [ $? -gt 127 ]; thencp input.txt crash-`date +%s`.jsonecho "Crash found"fi
done

radamsa fuzz后的结果保存至input.txt,使用jq进行检验,出错的保存至crash-时间戳.json。

执行权限

chmod +x jq-fuzz.sh
./jq-fuzz.sh

运行结果如下:

各种Crash

Ctrl+C停止

生成的文件

举例

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力

模糊测试-radamsa学习笔记相关推荐

  1. 模糊测试-AFL学习笔记之C/C++

    目录 简介 文档 QuickStartGuide README perf_tips.txt status_screen INSTALL 安装 下载 编译 检查 例子 有源码-标准输入 源代码 编译 f ...

  2. 《安全测试指南》——信息收集测试【学习笔记】

    [信息收集测试] 1.搜索引擎信息收集(OTG-INFO-001) 通过搜索引擎收集以下: · 网络拓扑图和配置 · 管理员和其他员工的归档文章和邮件 · 登录过程和用户名的格式 · 用户名和密码 · ...

  3. 《安全测试指南》——配置管理测试【学习笔记】

    配置管理测试 1.网路和基础设置配置测试(OTG-CONFIG-001) 测试方法:已知服务器漏洞(APache.IIS等).略. 2.应用平台配置测试(OTG-CONFIG-002) 测试方法: a ...

  4. AFL (American fuzzy lop) 二进制程序模糊测试工具学习

    AFL 前言 AFL的安装 AFL运行界面介绍 AFL执行阶段介绍 fuzzing -- 有源码的程序 fuzzing -- 无源码的程序 总结 前言   在学习了一段时间的pwn后,我个人对漏洞挖掘 ...

  5. 使用Metasploit对MSSQL渗透测试步骤——学习笔记

    学习笔记 使用metasploit对MSSQL渗透测试方法(因为本人靶机没有mssql服务,所以只有方法hh) 第一步,使用mssql_ping获取信息 Name: MSSQL Ping Utilit ...

  6. 常见渗透测试靶场学习笔记

    1.DVWA 作为新手,通常第一个听说的靶场应该就是DVWA,部署简单安装完对应版本的PAM(PHP-Apache-MySQL),简单配置后就可以使用. 1.DVWA靶场可测试漏洞:暴力破解(Brut ...

  7. 《软件质量保证与测试》学习笔记【第三章 软件测试过程所需技能】

    目录 第三章 软件测试过程所需技能(软件测试计划书) 前言 3.1软件测试计划 1.软件测试计划书的定义 2.软件测试计划的作用 3.如何制定软件测试计划 4.IEEE测试计划模板 第三章 软件测试过 ...

  8. 《Win测试的学习笔记》——Introduction

    1 常用package介绍 pywinauto:用于Win窗口的自动化操作. pyOpenRPA:RPA操作的测试工具包.

  9. 《Android测试的学习笔记》——Introduction

    1 介绍 对于Android软件的测试,可以使用adb来实现:

最新文章

  1. SCOM2012R2 (5) MONITOR WINDOWS OF WORKGROUP
  2. 演讲实录丨中科大陈小平教授《从封闭性到非封闭性:2020到2035年智能机器的机遇和挑战》...
  3. this.getClass()和super.getClass()得到的是同一个类
  4. MYSQL.版本查看-LINUX
  5. 全球及中国回流冷凝管行业发展前景整体预测及十四五发展趋向展望报告2022-2027年版
  6. SEO算法:如何通过PageRank算法判断SEO排序结果
  7. sigsuspend函数(mysleep函数的改进)
  8. QT【001】- 基础写在前面的话
  9. (95)FPGA二四译码器设计,面试必问(十九)(第19天)
  10. git tag 的基本用法
  11. 首个谷歌TensorFlow安全风险被腾讯找到:攻击成本低、迷惑性强
  12. 第一季度我国电子信息制造业增加值同比增长14.9%
  13. WIFI快连协议层原理
  14. librdkafka自动源码编译
  15. 质量提高90%以上,智能化施工为高铁建设提速增效
  16. SQL Server之——SQL Server 2005 sa 登录失败,该用户与可信SQL Server连接无关联
  17. 风险偏好情绪有所改善,非美低位反弹
  18. linux系统外接硬盘挂载
  19. 基于uniapp开发app,省市区联动
  20. java,循环和判断,黑马程序员作业

热门文章

  1. Facebook看重的UI/UX设计师技能
  2. Mysql 包含 函数
  3. 安装serverspeeder
  4. 密码学之凯撒加密解密算法
  5. 攻防世界之新手进阶Caeser Cipher
  6. C语言实现课堂随机点名系统
  7. 智能养老看护系统--养老院人员定位--智能养老--新导智能
  8. 科研快讯 | 14篇论文被信号处理领域顶级国际会议ICASSP录用
  9. 大龄程序员4000场亚瑟王谈《成人如何学钢琴》
  10. JAVA面试题输出26个英文字母