Total Security - totalsecurity.com.br
Falha em famoso plugin do Winamp
Winamp Web Interface é um plugin de código aberto para Winamp que possibilita a administração remota do tocador a partir de qualquer navegador.Foram achadas no Wawi(Winamp Web Interface) múltiplas vulnerabilidades que permitem ao atacante fazer overflows internos no produto, causando assim, a leitura de arquivos arbitrários.
Buffer no FindBasicAuth():
FindBasicAuth() função localizada no arquivo security.cpp no qual faz a autorização HTTP da requisição do cliente. Basicamente essa função substiui, sequencialmente, o módulo de autorização e configurações base64 contendo o usuário e a senha com um buffer de somente 100 bytes e então decoda essa string usando o buffer do "userpass" de 100 bytes. Tal operação é feita através da função GetAString() que limita as strings a 255 caracteres.
Modo de explorar:
http://localhost/browse, depois inserir um usuário com mais de 100 caracteres.
Listando Diretório:
A função Browse() localizada no arquivo browse.cpp é usada para mostrar os arquivos disponíveis numa pasta específica no diretório raiz. Esta função checa o caminho recebido pelo cliente usando a função GoodPatch() que verifica a existência de risco causado por pontos sequenciados e por barras invertidas (exemplo ..).
O problema é que essas barras são corretamente convertidas em barras invertidas antes do chamado dessa função. Mas o código hexademal das barras %2f não permite a visualização de qualquer pasta no disco onde está localizada a pasta raiz.
Modo de explorar:
http://localhost/browse?path=%2f..%2f..%2f
Buffer-overflow nas funções browse, download e load functions:
A funções Browse(), CControl::Download() e CControl::Load() são afetadas por algum buffer causado pela criação de uma string contendo o diretório raiz mais a string de caminho recebida pelo cliente usando um buffer de somente MAX_PATH bytes (260, o mesmo tamanho da string do cliente).
Modo de explorar:
http://localhost/dl?file=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa
Baixando arquivos de qualquer extensão:
O Wawi tem a opção de download de alguns tipos de arquivos, por alguns usuários com a permissão de download. Na seção "Music Collections" da configuração do Wawi, podemos achar duas formas de permitir a visualização ou download dos arquivos Winamp entre outros.
CControl::Download() chama a função isWinampFile() para verificar se os arquivos requisitados são suportados pelo Winamp e então permite o download se a opção relatada foi selecionada.
Um ponto depois do arquivo requisitado permitirá um atacante com a permissão de "Download" a baixar qualquer arquivo de qualquer extensão localizado no diretório raiz.
As informações acima foram cedidas por Luigi Auriemma do autistici.org
Buffer no FindBasicAuth():
FindBasicAuth() função localizada no arquivo security.cpp no qual faz a autorização HTTP da requisição do cliente. Basicamente essa função substiui, sequencialmente, o módulo de autorização e configurações base64 contendo o usuário e a senha com um buffer de somente 100 bytes e então decoda essa string usando o buffer do "userpass" de 100 bytes. Tal operação é feita através da função GetAString() que limita as strings a 255 caracteres.
Modo de explorar:
http://localhost/browse, depois inserir um usuário com mais de 100 caracteres.
Listando Diretório:
A função Browse() localizada no arquivo browse.cpp é usada para mostrar os arquivos disponíveis numa pasta específica no diretório raiz. Esta função checa o caminho recebido pelo cliente usando a função GoodPatch() que verifica a existência de risco causado por pontos sequenciados e por barras invertidas (exemplo ..).
O problema é que essas barras são corretamente convertidas em barras invertidas antes do chamado dessa função. Mas o código hexademal das barras %2f não permite a visualização de qualquer pasta no disco onde está localizada a pasta raiz.
Modo de explorar:
http://localhost/browse?path=%2f..%2f..%2f
Buffer-overflow nas funções browse, download e load functions:
A funções Browse(), CControl::Download() e CControl::Load() são afetadas por algum buffer causado pela criação de uma string contendo o diretório raiz mais a string de caminho recebida pelo cliente usando um buffer de somente MAX_PATH bytes (260, o mesmo tamanho da string do cliente).
Modo de explorar:
http://localhost/dl?file=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa
Baixando arquivos de qualquer extensão:
O Wawi tem a opção de download de alguns tipos de arquivos, por alguns usuários com a permissão de download. Na seção "Music Collections" da configuração do Wawi, podemos achar duas formas de permitir a visualização ou download dos arquivos Winamp entre outros.
CControl::Download() chama a função isWinampFile() para verificar se os arquivos requisitados são suportados pelo Winamp e então permite o download se a opção relatada foi selecionada.
Um ponto depois do arquivo requisitado permitirá um atacante com a permissão de "Download" a baixar qualquer arquivo de qualquer extensão localizado no diretório raiz.
As informações acima foram cedidas por Luigi Auriemma do autistici.org
Fonte:
Eu escrevi
URL Fonte: https://totalsecurity.com.br/noticia/1589/visualizar/
Comentários