2016-05-22 8 views
1

Ich habe kürzlich festgestellt, dass das Verketten von Text am Ende einer PDF-Datei die Eigenschaften der PDF-Datei nicht ändert. Dies kann eine sehr dumme Frage sein, aber wenn ein Programm mit der PDF-Datei verknüpft wurde, könnte es irgendwie ausgeführt werden?Bash-Skript in einer PDF-Datei ausführen

Zum Beispiel würde das Öffnen dieser PDF-Datei eine Textdatei im Home-Verzeichnis mit den Worten "Hallo Welt" erzeugen.

*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 

Würde dies mit einem anderen Dateiformat funktionieren? Muss der eingebettete Code eine binäre ausführbare Datei sein?

+0

Sie können dies verwenden, um eine PDF-Datei auch in einem ** Footer ** - basierten Format, wie ZIP, aber kein Header-basiertes Format, wie ... nun, im Grunde alle Ihre ausführbaren Formate, Skripte oder Andernfalls. Ein Shebang wird wie andere Header nur am Anfang einer Datei erkannt. –

+1

Im Allgemeinen ist jedoch ein "ist diese Designentscheidung ausnutzbar?" Frage ist wahrscheinlich besser für http://security.stackexchange.com/ als SO geeignet. –

Antwort

2

Als (zum Glück), das ist nicht Teil des Standards, können Sie das nicht tun.

Leider unterstützt der Standard "Aktionen starten", um arbitrary code with user confirmation auszuführen. Diese sind jetzt standardmäßig deaktiviert und erlauben nicht, eingebettete Glühbirnen auszuführen, aber wenn sie aktiviert sind, könnten Sie damit beliebigen Code ausführen, der den in der PDF eingebetteten Code findet und ausführt.

Der Standard auch supports javascript, der Sandboxed executes, aber es ist ein Leser spezifische Bug, der möglicherweise die Sandbox entkommen kann.