目前,对于文件验证,实施了以下操作,
但是有些PDF文件包含像JavaScript这样的恶意脚本来破坏系统
有关PDF攻击的更多详细信息:
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2008-2992
问题:对于本案例,是否有任何建议的解决方案?
答案 0 :(得分:2)
几年前我做过这个(不再有代码)。
恶意代码通常隐藏在文件元组内的base 64函数内,或使用char代码呈现恶意代码。
您需要找到常见恶意代码的字典,或创建自己的字典并使用php功能打开文件并扫描字典中的项目(数组)。
在这一点上,你可能会认为,这不是很优化或者会很慢......等等。
这是正确的;任何时候你抛出安全性它确实会带来性能损失,但你可以通过创建一个新的服务器来解决它,文件上传到并扫描然后传回原始服务器......等等。
就扫描仪而言,我确信您可以找到服务或开源代码,只需找到这个; https://github.com/mikestowe/Malicious-Code-Scanner/blob/master/phpMalCodeScanner.php(从未使用它,或者我推荐它)
答案 1 :(得分:2)
查看这个项目https://github.com/urule99/jsunpack-n - 一个通用JavaScript解包器
jsunpack-n在访问URL时模拟浏览器功能。它' S 目的是检测针对浏览器和浏览器插件的漏洞 漏洞。它接受许多不同类型的输入: (也是PDF *)
通过查看文件https://raw.githubusercontent.com/urule99/jsunpack-n/master/pre.js,它看起来直接解决了您的问题。
var util = {
375 printf : function(a,b){print ("//alert CVE-2008-2992 util.printf length ("+ a.length + "," + b.length + ")\n"); },
在上传时,我会将pdf提供给此工具并检查结果。
下面有一些与vunelabirity有关的有趣资源,它们深入解释了所有内容。
http://resources.infosecinstitute.com/hacking-pdf-part-1/
http://resources.infosecinstitute.com/hacking-pdf-part-2/
在文章的第2部分,有一个片段说你可以使用 蜘蛛猴执行pre.js(我提到的文件),获取有关CVE的信息
js -f pre.js -f util_printf.pdf.out
// alert CVE-2008-2992 util.printf length(13,undefined)
答案 2 :(得分:1)
在下面的这个项目中添加另一个答案更容易使用,并且能够找到CVE-2008-2992漏洞。我知道您在询问PHP,但您可以使用例如escapeshellcmd
peepdf是一个Python工具,用于探索PDF文件以查明是否 该文件可能有害或无害。该工具的目的是提供所有 安全研究人员可能需要的必要组件 不使用3或4个工具完成所有任务的PDF分析。同 peepdf可以看到文档中显示的所有对象 可疑元素,支持所有最常用的过滤器和 编码,它可以解析文件的不同版本,对象流 和加密文件
https://github.com/jesparza/peepdf
说明: http://eternal-todo.com/tools/peepdf-pdf-analysis-tool
你可以像下面一样使用它,最后你会得到所有带有CVE信息的有问题的元素
$ ./peepdf.py -f fcexploit.pdf
File: fcexploit.pdf
MD5: 659cf4c6baa87b082227540047538c2a
SHA1: a93bf00077e761152d4ff8a695c423d14c9a66c9
Size: 25169 bytes
Version: 1.3
Binary: True
Linearized: False
Encrypted: False
Updates: 0
Objects: 18
Streams: 5
Comments: 0
Errors: 1
Version 0:
Catalog: 27
Info: 11
Objects (18): [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 22, 23, 24, 25, 26, 27, 28]
Errors (2): [11, 25]
Streams (5): [5, 7, 9, 10, 11]
Encoded (4): [5, 7, 9, 10]
Objects with JS code (1): [5]
Suspicious elements:
/OpenAction: [1]
/JS: [4]
/JavaScript: [4]
getAnnots (CVE-2009-1492): [5]