No motor para a criação de fóruns web foram descobertas várias , permitindo a organização de um ataque em múltiplas etapas para executar código PHP arbitrário no servidor. Os problemas foram corrigidos na versão .
A primeira vulnerabilidade está presente nos módulos de publicação e envio de mensagens privadas, permitindo a injeção de código JavaScript (XSS), que será executado no navegador ao visualizar uma publicação ou mensagem recebida. A injeção de JavaScript é possível devido à conversão incorreta do BBCode aninhado em HTML. Em particular, a tag
«
e ao processar o BBCode «» ela será convertida na tag
‹iframe src=»youtube.com/xyz[url]http://onload=evilCode()[/url]»›‹/iframe›
, e após o processamento dos demais BBCode em
‹iframe src=»youtube.com/xyz‹a href=»http://onload=evilCode()»›..»›‹/iframe›
Consequentemente, a aspa dupla em ‘href=»‘ fecha o atributo «src» e onLoad é processado no contexto do iframe.
A segunda vulnerabilidade permite que, na presença de direitos administrativos do fórum, um script PHP seja salvo no sistema de arquivos do servidor web e executado. O problema está no código de controle de estilos da tema ativo, que permite gerar novos arquivos CSS. Esses arquivos são salvos com a extensão «.css», mas o tamanho do campo na base de dados para o nome do arquivo é limitado a 30 caracteres. Portanto, o arquivo pode ser nomeado como «26caracteres.php.css». Ao gravar na base de dados, caracteres extras serão cortados e, no final, o nome «26caracteres.php» será salvo. Em seguida, através do painel de administração do fórum, é possível gerar um novo estilo, e o arquivo será gravado no diretório «cache» com a extensão php.
Para realizar um ataque, o invasor pode enviar ao administrador do fórum uma mensagem formatada de maneira específica ou publicar uma mensagem semelhante no fórum. Ao visualizar essa mensagem no navegador durante a sessão atual no fórum e com os direitos de visualização da mensagem do usuário, o código JavaScript especificado pelo atacante será executado. Se a mensagem for visualizada pelo administrador, a segunda vulnerabilidade é explorada para executar o código PHP no contexto de uma sessão privilegiada.
Fonte: opennet.ru
