在 PDF 文件中执行 Bash 脚本
Execute Bash Script within a PDF File
我最近发现将文本连接到 PDF 文件的末尾不会更改 PDF 文件的属性。这可能是一个非常愚蠢的问题,但是如果一个程序被连接到 PDF 文件,它能以某种方式执行吗?
例如,打开此 PDF 文件会在主目录中创建一个文本文件,其中包含单词 "hello world"。
*pdf contents*...
trailer^M
<</Size 219/Root 186 0 R/Info 177 0 R/ID[<5990BFFB4DF3DB26CE6A92829BB5C41B> <B35E036CA0E7BA4CBF39B3D74DCE4CAF>]/Prev 4494028 >>^M
startxref^M
4663747^M
%%EOF^M
#!/bin/bash
echo "hello world" > ~/hello.txt
这是否适用于不同的文件格式?嵌入式代码是否需要是二进制可执行文件?
因为(幸运的是)这不是标准的一部分,您不能那样做。
遗憾的是,标准支持"launch actions",执行arbitrary code with user confirmation。这些现在默认禁用并且不允许执行嵌入式灯泡,但如果启用,您可以使用它来执行任意代码,以查找和执行嵌入在 pdf 中的代码。
标准也 supports javascript 执行沙盒,但它是一个 reader 允许逃脱沙盒的特定错误。
我最近发现将文本连接到 PDF 文件的末尾不会更改 PDF 文件的属性。这可能是一个非常愚蠢的问题,但是如果一个程序被连接到 PDF 文件,它能以某种方式执行吗?
例如,打开此 PDF 文件会在主目录中创建一个文本文件,其中包含单词 "hello world"。
*pdf contents*...
trailer^M
<</Size 219/Root 186 0 R/Info 177 0 R/ID[<5990BFFB4DF3DB26CE6A92829BB5C41B> <B35E036CA0E7BA4CBF39B3D74DCE4CAF>]/Prev 4494028 >>^M
startxref^M
4663747^M
%%EOF^M
#!/bin/bash
echo "hello world" > ~/hello.txt
这是否适用于不同的文件格式?嵌入式代码是否需要是二进制可执行文件?
因为(幸运的是)这不是标准的一部分,您不能那样做。
遗憾的是,标准支持"launch actions",执行arbitrary code with user confirmation。这些现在默认禁用并且不允许执行嵌入式灯泡,但如果启用,您可以使用它来执行任意代码,以查找和执行嵌入在 pdf 中的代码。
标准也 supports javascript 执行沙盒,但它是一个 reader 允许逃脱沙盒的特定错误。