Novamente sites da Rede Globo são invadidos

07/07/2006 Written by Marcelo Almeida (Vympel)

globobrO grupo de defac­ers chilenos, con­heci­dos como Byond Hack­ers Team, inva­diu 17 sites da Globo​.com hoje por uma falha con­hecida no xml­rpc. Este com­po­nente é bas­tante usado por apli­cações PHP e pos­sui uma falha grave de segu­rança que per­mite um inva­sor entrar em um servi­dor rodando a ver­são com­pro­metida e exe­cu­tar coman­dos arbi­trários, con­forme infor­mou a GulfTech no seu bole­tim de segu­rança em 02 de julho de 2005.

Como é uma falha bas­tante antiga em um com­po­nente muito usado por scripts PHP, diver­sos sites de prestí­gio sofr­eram ataques por esta falha.

Não é a primeira vez que web­sites da Globo foram inva­di­dos, o Zone-​H tem reg­istro de vários web­sites desta empresa…

Alguns dos motivos dos ataques são de caráter político, out­ros por “diver­são” ou para ter um certo “prestí­gio” na comu­nidade dos crack­ers. Por per­tencer a uma empresa mundial­mente famosa é con­sid­er­ada por eles um alvo de maior valor pois dev­e­ria ser mais seguro em relação aos demais web­sites.

Outro grupo de defac­ers brasileiros con­heci­dos como Out­law, foram os primeiros a invadi­rem vários destes sites com­pro­meti­dos na invasão de hoje.
As cópia destas invasões podem ser vis­tas neste link.
Esta é a mesma falha de que segu­rança foi uti­lizada no ano pas­sado por um grupo de defac­ers tam­bém brasileiros con­heci­dos como Unknown Core para invadir 306 sites da famosa uni­ver­si­dade de Stan­ford nos Esta­dos Unidos, fato este que teve bas­tante reper­cussão mundial.

A seguir segue o exem­plo da falha de segu­rança explo­rada pelos defacers:

/​/​decom­pose incom­ing XML into request struc­ture
 xml_parser_set_option($parser, XML_​OPTION_​CASE_​FOLDING, true);
 xml_set_element_handler($parser, “xmlrpc_​se”, “xmlrpc_​ee”);
 xml_set_character_data_handler($parser, “xmlrpc_​cd”);
 xml_set_default_handler($parser, “xmlrpc_​dh”);
 if (!xml_parse($parser, $data, 1)) {
 /​/​return XML error as a fault­Code
 $r=new xmlrpcresp(0,
 $xmlrpcerrxml+xml_get_error_code($parser),
 sprintf(“XML error: %s at line %d”,
 xml_error_string(xml_get_error_code($parser)),
 xml_get_current_line_number($parser)));
 xml_parser_free($parser);
 } else {
 xml_parser_free($parser);
 $m=new xmlrpcmsg($_xh[$parser][’method’]);
 /​/​now add para­me­ters in
 $plist=””;
 for($i=0; $i\n”;
 $plist.=”$i — ” . $_xh[$parser][’params’][$i]. ” \n”;
 eval(‘$m->addParam(‘ . $_xh[$parser][’params’][$i]. ”);”);
 }

O ata­cante cria um arquivo XML com aspas sim­ples para escapar no eval () para poder enga­nar o servi­dor. Com a ver­são vul­nerável o magic_​quotes_​gpc () não aplica a $HTTP_​RAW_​POST_​DATA no script deixando o inva­sor exe­cu­tar coman­dos arbi­trários no servi­dor.

Método usado para enga­nar o script com esta falha:


 
 test.method
 
 
 ‘,”)); phpinfo(); exit;/*
 
 

Quando este script é exe­cu­tado o resul­tado to phpinfo() é mostrado na tela, podendo o inva­sor alterar este comando para qual­quer outro comando para obter acesso ao servidor.

As empre­sas que uti­lizem algum tipo de apli­cação que uti­lizem a ver­são com falha deste com­po­nente podem encon­trar a última ver­são livre desta falha no site do respon­sável pelo XMLRPC.


Share this content: