hu1y40's blog

hu1y40'blog
天堂的穹空遍布地狱之火的颜色,但也是天堂。
  1. 首页
  2. FUZZ
  3. 正文

Fuzzing101 8

2023年10月7日 1115点热度 0人点赞 0条评论

AdbeRdr

0x00 环境准备

本实验均使用项目自带的虚拟机。

0x01 实验

1.1 环境准备

目录创建

cd $HOME
mkdir fuzzing_adobe && cd fuzzing_adobe

安装afl-qemu

sudo apt install ninja-build libc6-dev-i386
cd ~/Downloads/AFLplusplus/qemu_mode/
CPU_TARGET=i386 ./build_qemu_support.sh
# 安装完把afl-qemu-trace丢到/usr/local/bin下

安装依赖:

sudo apt-get install libxml2:i386

配置编译选项,并编译

./configure --prefix="$HOME/fuzzing_vlc/vlc-3.0.7.1/install" --disable-a52 --disable-lua --disable-qt
make -j$(nproc)

下载并安装AdbeRdr9.5.1-1_i386linux_enu.deb:

wget ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.5.1/enu/AdbeRdr9.5.1-1_i386linux_enu.deb
sudo dpkg -i AdbeRdr9.5.1-1_i386linux_enu.deb
# 安装报错就重新安装软件依赖
sudo apt-get install libgtk2.0
sudo apt --fix-broken install

语料库创建。

wget https://corpora.tika.apache.org/base/packaged/pdfs/archive/pdfs_202002/libre_office.zip
unzip libre_office.zip -d extracted
#复制小于2kn的文件加快模糊测试过程
mkdir -p $HOME/fuzzing_adobe/afl_in
find ./extracted -type f -size -2k \
-exec cp {} $HOME/fuzzing_adobe/afl_in \;

重新编译该文件。

make vlc-demux-run -j$(nproc) LDFLAGS="-fsanitize=address"

配置AFL_LLVM_ALLOWLIST告诉哪些部分需要插桩:

wget https://github.com/antonio-morales/Fuzzing101/blob/main/Exercise%207/Partial_instrumentation

重新编译vlc

CC="afl-clang-fast" CXX="afl-clang-fast++" ./configure --prefix="$HOME/fuzzing_vlc/vlc-3.0.7.1/install" --disable-a52 --disable-lua --disable-qt --with-sanitizer=address
AFL_LLVM_ALLOWLIST=$HOME/fuzzing_vlc/vlc-3.0.7.1/Partial_instrumentation make -j$(nproc) LDFLAGS="-fsanitize=address"

构建 fuzzing harness:

cd test
make vlc-demux-run -j$(nproc) LDFLAGS="-fsanitize=address"
cd ..

1.2 FUZZING

1.2.1 第一种

ACRO_INSTALL_DIR=/opt/Adobe/Reader9/Reader ACRO_CONFIG=intellinux LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/opt/Adobe/Reader9/Reader/intellinux/lib' afl-fuzz -Q -i ./afl_in/ -o ./afl_out/ -t 2000 -- /opt/Adobe/Reader9/Reader/intellinux/bin/acroread -toPostScript @@

对闭源应用程序进行模糊测试的最简单方法就是使用-Q 参数运行 afl-fuzz 。

运行 afl-fuzz 时需要小心,因为它/opt/Adobe/Reader9/bin/acroread是一个 shell 脚本。真正的二进制路径如下/opt/Adobe/Reader9/Reader/intellinux/bin/acroread。

但如果您尝试执行它,您将收到如下错误:acroread must be executed from the startup script。这就是为什么我们需要设置ACRO_INSTALL_DIR和ACRO_CONFIGenvvars。我们还将设置LD_LIBRARY_PATH定义在其中搜索动态可链接库的目录。

fig:

1.2.1 第二种

安装 valgrind 和 kcachegrind:

sudo apt-get install valgrind
sudo apt-get install kcachegrind

Valgrind 和 KCacheGrind 是两个与性能分析和调试相关的工具,通常用于检测和解决软件中的内存错误和性能问题。

生成callgrind报告:

ACRO_INSTALL_DIR=/opt/Adobe/Reader9/Reader ACRO_CONFIG=intellinux LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/opt/Adobe/Reader9/Reader/intellinux/lib' valgrind --tool=callgrind /opt/Adobe/Reader9/Reader/intellinux/bin/acroread -toPostScript [samplePDF]
kcachegrind # 查看

fig:

随后开启Fuzzing:

AFL_QEMU_PERSISTENT_ADDR=0x08546A00 AFL_QEMU_PERSISTENT_GPR=1 ACRO_INSTALL_DIR=/opt/Adobe/Reader9/Reader ACRO_CONFIG=intellinux LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/opt/Adobe/Reader9/Reader/intellinux/lib' afl-fuzz -Q -i ./afl_in/ -o ./afl_out1/ -m none -t 2000 -- /opt/Adobe/Reader9/Reader/intellinux/bin/acroread -toPostScript @@

1.3 FUZZING

fig:

1.4 分析

AFL_USE_QASAN=1 ACRO_INSTALL_DIR=/opt/Adobe/Reader9/Reader ACRO_CONFIG=intellinux LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/opt/Adobe/Reader9/Reader/intellinux/lib' /usr/local/bin/afl-qemu-trace -- /opt/Adobe/Reader9/Reader/intellinux/bin/acroread -toPostScript crash1.pdf

记得crash文件一定要以pdf为后缀。

fig:这里的洞对不上。。。

标签: FUZZ 漏洞
最后更新:2023年10月7日

hu1y40

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • AdbeRdr
    • 0x00 环境准备
    • 0x01 实验
      • 1.1 环境准备
      • 1.2 FUZZING
      • 1.2.1 第二种
      • 1.3 FUZZING
      • 1.4 分析

分类目录

  • 0day安全
  • Bypass
  • C++Prime
  • CTF
  • DoS
  • DoS
  • FUZZ
  • iot
  • JSONP
  • MISC
  • MISC
  • PHP伪协议
  • Python
  • REVERSE
  • sqli-labs
  • SQL注入
  • Trick
  • UAF
  • WEB
  • WEB
  • XXE
  • 书籍阅读
  • 二进制
  • 代码阅读
  • 信息搜集
  • 信息泄露
  • 加密与解密
  • 双重释放漏洞
  • 反序列化
  • 命令执行
  • 命令执行
  • 堆溢出
  • 密码学
  • 弱加密
  • 提权漏洞
  • 整数溢出
  • 文件上传
  • 未分类
  • 栈溢出
  • 格式化字符串漏洞
  • 模型
  • 汇编语言
  • 渗透测试
  • 漏洞分析
  • 漏洞利用
  • 漏洞战争
  • 漏洞挖掘
  • 病毒分析
  • 越界读取
  • 路径遍历
  • 逻辑漏洞
  • 配置不当
  • 钓鱼
  • 靶场
最新 热点 随机
最新 热点 随机
加密算法 2023年度总结 RTSPServer StackOverflow Vulnerability FUZZ 总览篇 MP4Box 无限循环漏洞 CVE-2023-40477 Winrar RCE漏洞分析
加密算法 PHP反序列化 CVE-2022-4565 Hutool资源消耗漏洞 钓鱼手法 针对GitHub仓库的RepoJacking攻击 bugku 白哥的鸽子

COPYRIGHT © 2023 hu1y40's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2021009673号-1