Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload

文章目录

  • 安装
  • 使用
  • 如何创建自定义 sample?
  • 如何添加自定义 payload?
    • XXE payloads
    • XSS payloads
  • 功能和计划

docem是一个用于向docx,odt,pptx等(任意包含大量xml文件的zip)文件中嵌入XXE/XSS Payload的工具。许多常见的文档格式(例如doc,docx,odt等)都只是一个zip文件,其中包含了一些xml文件。

_|_|_| 

_| _| _|_| _|_|_| _|_| _|_|_| _|_|
_| _| _| _| _| _|_|_|_| _| _| _|
_| _| _| _| _| _| _| _| _| _|_|_| _|_| _|_|_| _|_|_| _| _| _|version 1.3

该工具是ShikariSenpai和ansjdnakjdnajkd对文档内部结构进行协作研究的side project。

Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload插图

那为什么不将XXE payloads嵌入其中呢?

这项伟大的研究是由Will Vandevanter (_will_is) 完成的。要创建带有嵌入payloads的文档,我们可以使用一个名为oxml_xxe的工具。

但是,当你需要在不同的位置创建数百个payloads文档时,使用oxml_xxe并不方便。这也是Docem被创建的主要原因之一。

它的工作方式如下:你指定sample文档 – 该文档具有一些magic_symbols(在下图中为፨(在程序中为常量XXCb8bBA9XX)),如果你使用XXE payload,则将其替换为对 payload的引用;或者将被你的XSS payload所替换。

此外,payload_type有三种不同的类型 – 每种类型都决定了如何处理对文档中给定文件的各个magic_symbol。在用法部分对各个payload_type进行了描述。下面是一个小的工作方案:

Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload插图(2)

Payload modes

Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload插图(4)

程序界面

Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload插图(6)

安装

pip3 install -r requirements.txt

使用

python3 docem.py --help

必要参数

xss – XSS – 跨站点脚本

xxe – XXE – 外部XML实体

-s – sample文件或sample目录的路径

-pm – payload模式

可选参数

per_document -默认模式,将payload嵌入所有文件中的所有位置并创建新文档

per_file – 对于各个payload,文档中的各个文件,以及文件中的所有位置嵌入payload并创建新文档

per_place – 对于各个payload,文件中的各个位置嵌入payload并创建新文档

-pt – payload类型

-pf – payload文件

-kt – 不要在tmp中删除临时文件夹

-sx – sample扩展名-当sample是目录时使用

-h – 打印帮助信息

示例:

./docem.py -s samples/xxe/sample_oxml_xxe_mod0/ -pm xss -pf payloads/xss_all.txt -pt per_document -kt -sx docx
./docem.py -s samples/xxe/sample_oxml_xxe_mod1.docx -pm xxe -pf payloads/xxe_special_2.txt -kt -pt per_place
./docem.py -s samples/xss_sample_0.odt -pm xss -pf payloads/xss_tiny.txt -pm per_place
./docem.py -s samples/xxe/sample_oxml_xxe_mod0/ -pm xss -pf payloads/xss_all.txt -pt per_file -kt -sx docx

如何创建自定义 sample?

通过新文件

1.提取你的文档example.docx

2.在要嵌入payload的地方添加magic symbols(魔术符号)- ፨

3.将你的新sample压缩到example_modified0.zip中

4.重命名扩展名 – example_modified0.docx

5.使用新创建的sample

如何添加自定义 payload?

XXE payloads

文件中的字符串

{"vector":"<!DOCTYPE docem [<!ENTITY xxe_canary_0 \"XXE_STRING\">]>","reference":"&xxe_canary_0;"}

vector – 必要关键字 – 用于脚本搜索

<!DOCTYPE docem [<!ENTITY xxe_canary_0 \”XXE_STRING\”>]> – payload。警告所有双引号 ” 必须用一个反斜杠转义 \ => \”

reference – 必要关键字 – 用于脚本搜索

&xxe_canary_0; – 将在所有位置添加带有魔术符号的引用

XSS payloads

没有特殊格式。只是一个有字符串的文件。

功能和计划

功能

读取带有payload的文件

XXE自定义payload文件

XSS payload文件

计划

添加可以嵌入解压缩文件的功能

添加标志用以指定要在XXE中使用的自定义网址

添加标志用以指定要在XSS中使用的自定义网址

*参考来源:GitHub,FB小编secist编译,转载请注明来自一一网络博客

免责声明:务必仔细阅读

  • 本站为个人博客,博客所转载的一切破解、path、补丁、注册机和注册信息及软件等资源文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。

  • 本站为非盈利性站点,打赏作为用户喜欢本站捐赠打赏功能,本站不贩卖软件等资源,所有内容不作为商业行为。

  • 本博客的文章中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.

  • 本博客的任何内容,未经许可禁止任何公众号、自媒体进行任何形式的转载、发布。

  • 博客对任何脚本资源教程问题概不负责,包括但不限于由任何脚本资源教程错误导致的任何损失或损害.

  • 间接使用相关资源或者参照文章的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, 博客对于由此引起的任何隐私泄漏或其他后果概不负责.

  • 请勿将博客的任何内容用于商业或非法目的,否则后果自负.

  • 如果任何单位或个人认为该博客的任何内容可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明至admin@proyy.com.我们将在收到认证文件后删除相关内容.

  • 任何以任何方式查看此博客的任何内容的人或直接或间接使用该博客的任何内容的使用者都应仔细阅读此声明。博客保留随时更改或补充此免责声明的权利。一旦使用并复制了博客的任何内容,则视为您已接受此免责声明.

您必须在下载后的24小时内从计算机或手机中完全删除以上内容.

您使用或者复制了本博客的任何内容,则视为已接受此声明,请仔细阅读


更多福利请关注一一网络微信公众号或者小程序

一一网络微信公众号
打个小广告,宝塔服务器面板,我用的也是,很方便,重点是免费的也能用,没钱太难了,穷鬼一个,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9kY3ZwbXo=


一一网络 » Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload

发表评论

发表评论

一一网络-提供最优质的文章集合

立即查看 了解详情