完成GitHub上squirrel 的运行(数据库的模糊测试)

article/2025/9/11 1:01:00

文章目录

  • 一、squirrel的介绍
    • squirrel链接
    • 建议下载Ubuntu 18.04
    • 编译安装clang/llvm(建议9.0以上)
    • 将squirrel的文件下载到Ubuntu上
    • 下载docker(建议按照dockerfile步骤直接在外部搭建环境)
    • Dockerfile创建镜像
    • 按照dockfile搭建时时有可能出现以下报错
    • dockerfile中命令解析成命令行
      • 运行AFL测试MySQL

一、squirrel的介绍

用虚拟机完成数据库的模糊测试,但是不够完善

squirrel链接

链接:link

建议下载Ubuntu 18.04

到官网下载

编译安装clang/llvm(建议9.0以上)

教程网站:link
该网站clang版本为6.0

将squirrel的文件下载到Ubuntu上

 wget https://github.com/s3team/Squirrel.git

squirrel编译前的准备:在Ubuntu命令行运行命令

sudo apt-get -y update && apt-get -y upgrade
sudo apt-get -y install gdb bison flex git make cmake build-essential gcc-multilib g++-multilib xinetd libreadline-dev zlib1g-dev
sudo apt-get -y install clang libssl-dev libncurses5-dev
cd ~
git clone https://github.com/google/AFL.git
cd AFL
sed -i  's/#define MAP_SIZE_POW2       16/#define MAP_SIZE_POW2       18/' config.h
make
cd llvm_mode/
make

下载docker(建议按照dockerfile步骤直接在外部搭建环境)

链接: link.

Dockerfile创建镜像

下载完成后在:~/Squirrel-master/DNAME/docker页面下打开命令行

过Docker命令就可以完成构建。

docker image build -t <Name:tag> <file path>
例如现在要通过已经写好的Dockerfile,构建一个jspang的镜像,就可以使用下面的命令构建。
docker image build -t jspang .

按照dockfile搭建时时有可能出现以下报错

1、不能打开网站请添加图片描述
解决办法 :打开dockerfile文件将网址中http改成git即可。

2、要根据报错安装相应缺少的包

dockerfile中命令解析成命令行

1、WORKDIR相当于命令行中cd 命令

WORKDIR /home/mysql   ##相当于cd   /home/mysql 

2、USER root 就是管理员模式 相当于 sudo su

3、COPY

作用:复制内容到镜像
格式: COPY <src> <dest>  
详解:复制本地主机的 <src>下内容到镜像中的 <dest>,目标路径不存在时,会自动创建。
<src>:可以是 Dockerfile 所在目录的一个相对路径(文件或目录)
<dest>:可以是镜像内绝对路径,或者相对于工作目录(WORKDIR)的相对路径

相当于命令行中将文件和文件夹复制的操作

4、ENV(配置环境变量)

ENV CC=/home/mysql/AFL/afl-clang-fast 
在命令行上相当于:export  CC=/home/mysql/AFL/afl-clang-fast

运行AFL测试MySQL

记得在afl_fuzz.c 上修改路径
请添加图片描述
修改完make一下

打开squirrel里MySQL中docker里的run.py(实际上就是脚本)

打开命令行
第一步:cd /usr/local/mysql/ 用root权限
第二步:/usr/local/mysql/bin/mysqld  --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=fuckerr.err --pid-file=fuckpid.pid &
第三步:/usr/local/mysql/bin/mysql -u root 如果不存在test1,则创建数据库;如果不存在,创建数据库
这样就进入了MySQL数据库 写exit退出数据库
第四步: kill -9 `pidof mysqld`
第五步:cd /home/cailianjiangnan/Squirrel-master/MySQL/AFL
第六步:export LD_LIBRARY_PATH=/home/mysql/mysql-server/bld_orignal/lib
第七步:./afl-fuzz -i /home/cailianjiangnan/Squirrel-master/MySQL/docker/input -o fuzz_output aaa
此时会出现SHM_ENV_VAR: xx
新建个命令行:cd /usr/local/mysql#
输入命令:export __AFL_SHM_ID=xx
再令建一个命令行:cd /home/cailianjiangnan/Squirrel-master/MySQL/AFL
/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --log-error=fuckerr.err --pid-file=fuckpid.pid --max_execution_time=1000 --user=root
然后到第七步的命令行中随便输一个字母按回车即可出现fuzz界面

http://chatgpt.dhexx.cn/article/a14YWJUr.shtml

相关文章

连接HiveServer2的图形化工具SQuirrel和Dbeaver

文章目录 SQuirrel SQL Client简介视频演示安装SQuirrel SQL Client启动hdfs和hiveserver2配置SQuirrel SQL Client使用SQuirrel SQL Client访问hive使用Cloudera提供的hive连接驱动进行连接Dbeaver的安装及使用 本文介绍的工具可以通过下面链接下载&#xff1a; 链接&#xff…

squirrel校园二手交易平台

##squirrel校园二手交易平台 &#xff08;适合寻找SSM项目练手的你。&#xff09; 问题汇总&#xff1a; &#xff08;朋友毕设用到了这个二手平台&#xff0c;他自己把后台优化了&#xff0c;我又帮忙实现了一部分功能&#xff0c;只能做到这里了。有兴趣的&#xff0c;自行优…

squirrel sql 使用

前置 安装jdk&#xff08;1.8版本即可&#xff09; 1、官网下载squirrel sql client jar https://sourceforge.net/projects/squirrel-sql/ 2 运行java -jar squirrel-sql-3.6-standard.jar安装 jar包 注意3.0的版本要JDK1.6以上 这里可以改安装目录 这里可以选择插件&#…

[squirrel使用]--Windows安装详解

squirrel在windows下的安装文档 一&#xff0e;下载安装 从网址http://www.squirrelsql.org/下载相应版本的squirrel的安装jar包&#xff0c;比如下载squirrel-sql-3.7-standard.jar双击安装&#xff0c;出现如下安装界面&#xff0c;下一步开始安装 二&#xff0e;配置连接p…

Squirrel状态机-从原理探究到最佳实践

作者&#xff1a;京东物流 郑朋辉 1 简介 Squirrel状态机是一种用来进行对象行为建模的工具&#xff0c;主要描述对象在它的生命周期内所经历的状态&#xff0c;以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件…

squirrel(松鼠)状态机的介绍及使用

squirrel&#xff08;松鼠&#xff09;状态机 依赖 <dependency><groupId>org.squirrelframework</groupId><artifactId>squirrel-foundation</artifactId><version>0.3.8</version> </dependency>状态机描述 参考&#xf…

将图片转换为base64编码

1、base64编码简介 Base64是一种可逆的编码方式&#xff0c;简单来讲就是一种将64个Ascii字符来表示成二进制数据的方法。主要用于将不可打印的字符转换成可打印字符&#xff0c;或者简单的说将二进制数据编码成Ascii字符。Base64是网络上最常用的传输8bit字节数据的编码方式之…

前端理解base64

一、背景&#xff1a;ascii码 字符>二进制 计算机中所有数据的存储都是以二进制模式&#xff0c;比如想要存储abcd需将其转化为二进制&#xff0c;具体用哪些二进制来表示哪个符号*&#xff0c;有一个统一的编码规则&#xff0c;这就是ascii。 ASCII 码使用指定的7 位或8…

Web 图片Base64编码

转载自: 【前端攻略】&#xff1a;玩转图片Base64编码 引言   图片处理在前端工作中可谓占据了很重要的一壁江山。而图片的 base64 编码可能相对一些人而言比较陌生&#xff0c;本文不是从纯技术的角度去讨论图片的 base64 编码。标题略大&#xff0c;不过只是希望通过一些…

base64编码解码器【C++】

在线编码解码工具https://base64.us/所有结果可以使用上述网站检验。 什么是base64编码&#xff1f; base64编码是一种编码方式 用64 1 个字符表示字符 本质是将三位8比特字符扩增为四位8比特字符&#xff0c;但是这么说开始可能很闷逼。 给个图&#xff0c;这个编码是以3字…

前端图片在线转换Base64 图片编码Base64

首先讲一下什么是图片Base64编码&#xff1a; 简单来说&#xff0c;图片的base64编码就是可以将一副图片数据编码成一串字符串&#xff0c;使用该字符串代替图像地址。 为什么要用Base64&#xff1f; 我们知道&#xff0c;我们所看到的网页上的每一个图片&#xff0c;都是需…

理解图片base64编码

什么是编码解码 编码&#xff1a;利用特定的算法&#xff0c;对原始内容进行处理&#xff0c;生成运算后的内容&#xff0c;形成另一种数据的表现形式&#xff0c;可以根据算法&#xff0c;再还原回来&#xff0c;这种操作称之为编码。 解码&#xff1a;利用编码使用的算法的…

【HTML5】------- 图片Base64编码详解

引言   图片处理在前端工作中可谓占据了很重要的一壁江山。而图片的 base64 编码可能相对一些人而言比较陌生&#xff0c;本文不是从纯技术的角度去讨论图片的 base64 编码。标题略大&#xff0c;不过只是希望通过一些浅显的论述&#xff0c;让你知道什么是图片的 base64 编码…

记录:Base64编码步骤详解

文章目录 具体转换步骤实例演示&#xff1a;AbC实例演示二&#xff1a;字节数不足三个例&#xff1a;A例&#xff1a;8H ASCII编码表Base64编码表 具体转换步骤 第一步&#xff0c;将待转换的字符串每三个字节分为一组&#xff0c;每个字节占8bit&#xff0c;那么共有24个二进…

对图片进行base64 编码

原文地址&#xff1a;https://www.cnblogs.com/coco1s/p/4375774.html 引言 图片处理在前端工作中可谓占据了很重要的一壁江山。而图片的 base64 编码可能相对一些人而言比较陌生&#xff0c;本文不是从纯技术的角度去讨论图片的 base64 编码。标题略大&#xff0c;不过只是希…

php将图片转成base64编码,利用PHP将图片转换成base64编码的实现方法

利用PHP将图片转换成base64编码的实现方法 先来说一下为什么我们要对图片base64编码 base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一。base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字…

Hex编码与Base64编码

Hex编码与Base64编码 什么是明文什么是编码Hex编码Hex编码实现细节自定义Hex编码 Base64编码Base64编码实现细节自定义Base64编码 什么是明文 介绍什么是编码之前&#xff0c;首先了解下什么是明文&#xff0c;表示其本身意思的&#xff0c;他就是明文 比如你看到"E6988…

Base64编码linux服务器与网页编码不一致问题

一、起因 在一次环境变量注入的时候&#xff0c;使用Base64将密码编码传入&#xff0c;但是传入后无法登录&#xff0c;但是登录到容器内&#xff0c;使用明文却能登录 二、排错过程 出现这种问题&#xff0c;首先判断密文是否有误&#xff0c;但是在linux服务器内反复base64&…

mysql 图片base64_关于图片的Base64编码

什么是Base64编码 Base64编码是一种图片处理格式,通过特定的算法将图片编码成一长串字符串,在页面上显示的时候,可以用该字符串来代替图片的url属性。 base64编码就是长得像下面这样子的代码: thunder://QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvc3NsbTFfbG9nby5naWZaWg== 上面…

前端Base64编码

Base64编码 什么是Base64编码 我们所看到的网页上的每一个图片&#xff0c;都是需要消耗一个 http 请求下载而来的&#xff0c;不管如何&#xff0c;图片的下载始终都要向服务器发出请求&#xff0c;要是图片的下载不用向服务器发出请求&#xff0c;而可以随着 HTML 的下载同…