Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find malicious PDF files using PHP validation?

Currently for file validations the following actions are implemented,

  • File type validations using MIME details like application/pdf
  • Validating the file extensions along with MIME details.

But some PDF files contains the malicious scripts like JavaScript to damage the system

More details about the PDF attacks:

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2008-2992

Question: For this case any recommended solutions?

like image 371
Sundar Avatar asked Sep 21 '16 11:09

Sundar


People also ask

How do you check if a PDF has a virus?

How can I tell if a PDF file I was sent contains a Virus? One way to determine whether a PDF file you were sent is infected by a virus is by uploading the file to VirusTotal. The results from VirusTotal are not 100% accurate so you need to be cautious. There is also PDF Examiner.

Can PHP read PDF?

Extracting text from individual pages or whole PDF document files in PHP is easy using the PdfToText class. Read this article that is the first of a series that will teach you about the challenge of processing the PDF file format and how the PdfToText class can be used to extract text and images from it.


1 Answers

Take a look into this project https://github.com/urule99/jsunpack-n - A Generic JavaScript Unpacker

jsunpack-n emulates browser functionality when visiting a URL. It's purpose is to detect exploits that target browser and browser plug-in vulnerabilities. It accepts many different types of input: ( also PDFs* )

By looking into ths file https://raw.githubusercontent.com/urule99/jsunpack-n/master/pre.js it looks like it directly addresses your problem.

var util = {
375     printf : function(a,b){print ("//alert CVE-2008-2992 util.printf length ("+ a.length + "," + b.length + ")\n"); },

On upload I would feed pdf into this tool and check the results.

Below some interesting resouces related to that vunelabirity which explain everything in-depth.

http://resources.infosecinstitute.com/hacking-pdf-part-1/

http://resources.infosecinstitute.com/hacking-pdf-part-2/

In part 2 of the article there is a fragment saying that you can use Spider monkey to execute pre.js (the file I mentioned eariler ) to get info about CVE

js -f pre.js -f util_printf.pdf.out

//alert CVE-2008-2992 util.printf length (13,undefined)

like image 177
Pawel Wodzicki Avatar answered Oct 07 '22 06:10

Pawel Wodzicki