Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
expat_2_1_0_CVE-2024-28757 — 面向流的XML解析的C库,专注于分析和复现Expat 2.1.0中的CVE-2024-28757漏洞。 | Kitploit
工具/GitHubGitHub/saurabh2088/expat_2_1_0_cve-2024-28757
静态分析漏洞分析代码分析漏洞利用模糊测试二进制分析
GitHubsaurabh2088/expat_2_1_0_cve-2024-28757

expat_2_1_0_CVE-2024-28757

面向流的XML解析的C库,专注于分析和复现Expat 2.1.0中的CVE-2024-28757漏洞。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
192年前尚未审核

Expat, 发布版 2.1.0

这是 Expat,一个由 James Clark 编写的用于解析 XML 的 C 库。 Expat 是一个面向流的 XML 解析器。这意味着在开始解析之前,您需要向解析器注册处理程序。当解析器在正在解析的文档中发现相关结构时,这些处理程序会被调用。开始标签就是您可能注册处理程序的结构类型的一个例子。

Windows 用户应使用 expat_win32bin 包,其中包含预编译的库和可执行文件,以及供开发者使用的源代码。

Expat 是自由软件。您可以根据本软件附带的 COPYING 文件中的许可证条款进行复制、分发和修改。该许可证与 MIT/X Consortium 许可证相同。

次版本号为奇数的 Expat 版本(上述发布版中的中间数字)是开发版本,应视为测试版软件。次版本号为偶数的版本旨在成为正式产品级软件。

如果您从 CVS 仓库检出并构建 Expat,则需要运行一个脚本,该脚本使用 GNU autoconf 和 libtool 工具生成 configure 脚本。为此,您需要 autoconf 2.58 或更新版本。像这样运行脚本:

    ./buildconf.sh

完成此步骤后,请遵循与从源码发行版构建相同的说明。

要从源码发行版构建 Expat,首先在顶层发行版目录中运行配置 shell 脚本:

    ./configure

您可以向 configure 提供许多选项(可以通过运行 configure --help 发现这些选项)。但最有趣的一个是设置安装目录的选项。默认情况下,configure 脚本会将 libexpat 安装到 /usr/local/lib,将 expat.h 安装到 /usr/local/include,并将 xmlwf 安装到 /usr/local/bin。例如,如果您希望安装到 /home/me/mystuff/lib、/home/me/mystuff/include 和 /home/me/mystuff/bin,可以这样告知 configure:

    ./configure --prefix=/home/me/mystuff
    

另一个有趣的选项是启用行号、列号以及整体字节索引的 64 位整数支持:

    ./configure CPPFLAGS=-DXML_LARGE_SIZE
    

然而,这样的修改将是对 ABI 的重大更改,因此不建议一般使用(例如作为 Linux 发行版的一部分),而是用于具有特殊要求的构建。

运行 configure 脚本后,运行 "make" 命令将构建项目,"make install" 会将文件安装到适当的位置。请查看 "Makefile" 以了解额外的 "make" 选项。请注意,您需要具有对安装目录的写权限。

如果您有兴趣构建 Expat 以提供 UTF-16 编码的文档信息,而不是默认的 UTF-8,请遵循以下说明(在运行 "make distclean" 之后):

    1. 对于以 unsigned short 输出 UTF-16(版本/错误字符串以 char 输出),运行:

           ./configure CPPFLAGS=-DXML_UNICODE

       对于以 wchar_t 输出 UTF-16(包括版本/错误字符串),运行:

           ./configure CFLAGS="-g -O2 -fshort-wchar" \
                       CPPFLAGS=-DXML_UNICODE_WCHAR_T

    2. 编辑 MakeFile,将:

           LIBRARY = libexpat.la

       改为:

           LIBRARY = libexpatw.la

       (注意库名中额外的“w”。)

    3. 运行 "make buildlib"(仅构建库)。
       或者,为了跳过步骤 2,运行 "make buildlib LIBRARY=libexpatw.la"。

    4. 运行 "make installlib"(仅安装库)。
       或者,如果跳过了步骤 2,运行 "make installlib LIBRARY=libexpatw.la"。
       

支持使用 DESTDIR 或 INSTALL_ROOT,其中 INSTALL_ROOT 是 DESTDIR 的默认值,Makefile 的其余部分仅使用 DESTDIR。工作方式如下: $ make install DESTDIR=/path/to/image 覆盖了 Makefile 中设置的 DESTDIR,而以下两种方式 $ INSTALL_ROOT=/path/to/image make install $ make install INSTALL_ROOT=/path/to/image 都使用 DESTDIR=$(INSTALL_ROOT),即使 DESTDIR 最终在环境中定义也是如此,因为变量设置优先级为:

  1. 命令行
  2. Makefile 内
  3. 环境

注意:这仅适用于 Expat 库本身,目前不支持构建 xmlwf 和测试的 UTF-16 版本。

Solaris 用户注意:"ar" 命令通常位于 "/usr/ccs/bin" 中,该目录不在默认的 PATH 中。您需要将其添加到 PATH 中以供 "make" 命令使用,并且可能还需要切换到 GNU make(/usr/ccs/bin 中的 "make" 似乎无法正常工作——显然它不理解 .PHONY 指令)。如果您使用 ksh 或 bash,请使用以下命令构建:

    PATH=/usr/ccs/bin:$PATH make

当将 Expat 与使用 autoconf 进行配置的项目一起使用时,您可以使用 conftools/expat.m4 中的探测宏来确定如何包含 Expat。有关更多信息,请参阅该文件顶部的注释。

参考手册位于此发行版的 doc/reference.html 文件中。

该项目的主页是 http://www.libexpat.org/。那里有链接可以将您连接到错误报告页面。如果您需要在无法使用浏览器时报告错误,也可以通过电子邮件将错误报告发送到 [email protected]。

有关 Expat 未来发展方向讨论发生在 [email protected]。此邮件列表和其他 Expat 相关列表的存档可在以下网址找到:

    http://mail.libexpat.org/mailman/listinfo/
下载工具