Autor Tópico: Séria vulnerabilidade XSS no SQL Builder  (Lida 785 vezes)

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Séria vulnerabilidade XSS no SQL Builder
« Online: Junho 27, 2016, 02:08:40 pm »
A NetMake tem conhecimento que o SQL Builder, incluído no Scriptcase, tem um (sério) problema de XSS (testado nas versões 7 e 8 )?


À primeira vista, XSS pode não parecer tão perigoso... mas esta brecha pode levar à muitos problemas, inclusive roubo de sessão do Scriptcase, onde o usuário pode entrar no ambiente do Scriptcase e visualizar/alterar as aplicações.
« Última modificação: Junho 27, 2016, 02:33:38 pm por Anderson Mamede »

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #1 Online: Junho 27, 2016, 04:52:12 pm »
Isso é sério... a NM então precisa tomar providências!!!!
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Haroldo

  • Expert
  • *****
  • Mensagens: 6262
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #2 Online: Junho 27, 2016, 06:30:36 pm »
Primeiro, se há algum risco, ele só ocorrerá se o SC estiver instalado em um domínio  disponível na internet.(Hospedado em um provedor por exemplo). Acredito  que a grande maioria utiliza o Sc instalado localmente em seu computador, o que restringe o suposto problema.

Segundo, o "hacker" teria que ter acesso ao item do menu para acessar a página do SQL Builder. Se este hacker conseguir bular o menu  e entrar direto  na página do sqlbuilder não teria acesso aos bancos de dados pois não houve seleção de u projeto.

Terceiro, pode até ser que a NM não tenha se preocupado com SQL Injection, o que acho difícil, mas não seria  simples promover um  ataque desses.

E por ultimo, se  Hacker é bom não há sistema de segurança realmente seguro.


Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #3 Online: Junho 27, 2016, 07:31:30 pm »

Haroldo não me refiro a SQL Injection, me refiro à XSS (Cross-Site Scripting). O "hacker", como você chama, não precisa ter acesso ao "item do menu", e nem acessar o SQL Builder.


O que acontece é que quando se executa uma consulta (SELECT) no SQL Builder, ele não exibe o resultado (na tela) em texto puro... o resultado é interpretado como HTML. Se tiver qualquer conteúdo que possa ser interpretado como HTML, ele vai interpretar. Dessa forma é possível executar código javascript e com isso roubar/falsificar os cookies, ou seja, a sessão (login) do usuário. Além de também abrir espaço para outro problema: CSRF (Cross-Site Request Forgery).


Se quer fazer um teste, insira este valor em uma tabela qualquer e depois faça um SELECT nesse registro (SELECT usando o SQL Builder):


Código: [Selecionar]
INSERT INTO tabela(campo) VALUES('Tes <script>alert(123)</script> te')


Quando o SQL Builder exibir o valor, o browser vai interpretar o conteúdo como HTML e mostrar a caixa do alert. Claro que esse é só um exemplo...


A mesma coisa acontece se você tem um formulário com input(text), textarea ou campo de upload de arquivos que aceite arquivos com conteúdo de texto (e o arquivo seja salvo em banco de dados). Se o usuário cadastrar algo que possa ser interpretado como HTML, quando fizer o SELECT no SQL Builder, o valor vai ser interpretado.


E sobre estar instalado em um domínio disponível na internet, mesmo que esteja em uma intranet ou computador local, ainda pode ser prejudicado pelo CSRF.


E quando descobri este problema, ainda vi outra coisa que a NetMake precisa tomar conhecimento: a "trava" de quantidade de usuários logados pode ser burlável clonando a sessão do usuário.

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #4 Online: Junho 28, 2016, 08:43:14 am »
Os proprios nevagadores mais atualizados estão bloqueando XSS. Faça um teste no Chrome.
F. A.
Analista de Sistemas

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #5 Online: Junho 28, 2016, 09:15:58 am »
Os proprios nevagadores mais atualizados estão bloqueando XSS. Faça um teste no Chrome.


Eu fiz. Versão 51.0.2704.103 m. Na primeira vez que o script no meio do conteúdo é executado (através do SELECT) ele é bloqueado, nas próximas vezes ele é executado normalmente.


E no Firefox, Versão 47.0, é executado normalmente.
« Última modificação: Junho 28, 2016, 09:20:31 am por Anderson Mamede »

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #6 Online: Junho 28, 2016, 04:51:07 pm »
Estranho, não consegui fazer instrução via script, mesmo por via de segunda tentativa. Como estais fazendo?
F. A.
Analista de Sistemas

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #7 Online: Junho 29, 2016, 11:42:56 am »

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #8 Online: Junho 29, 2016, 12:21:30 pm »
Ahhh... entendi agora. Você esta jogando dentro do SQL Builder, blz...  Mas onde isso pode influenciar na aplicação gerada pelo SC e a mesma em produção? Pois estava pensando que era nas aplicações já geradas pelo SC, não me atentei ao SQL Builder.


Eu uso o SC local, e mesmo usando ele no servidor web não tem como eu usar o XSS sem ao menos ter acesso ao SQL Builder pela autenticação de usuário. Como uma pessoa (um hacker por exemplo) vai usar o XSS no SQL Builder sem ser pela autenticação?
F. A.
Analista de Sistemas

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #9 Online: Junho 29, 2016, 12:46:28 pm »

Como uma pessoa (um hacker por exemplo) vai usar o XSS no SQL Builder sem ser pela autenticação?


Na verdade o hacker não usaria o SQL Builder... ele só precisa cadastrar esse texto com o script em algum campo (ex: tela de cadastro), e quando o programador usar o SQL Builder para buscar esse registro, o script vai ser executado.


Suponhamos que você tenha uma página para o usuário se cadastrar, com campos como nome, endereço, etc. No campo endereço, ele digita algo como "Rua <script>alert(document.cookie)</script>"... quando o programador fizer um SELECT no SQL Builder que retorne este registro, o script vai ser executado. Se tiver tags HTML (como img, video, iframe, etc) no meio do texto, também vão ser interpretadas.


O alert é só um exemplo... a pessoa pode adicionar uma requisição ajax que envie os cookies do usuário (nesse caso seria do usuário logado no scriptcase) para algum servidor dele, e tendo os cookies a pessoa consegue "falsificar" a sessão (vai conseguir entrar no ambiente do scriptcase sem precisar logar). Ou então um script que simule a requisição que o scriptcase faz quando você exclui um projeto e deletar seu projeto. As possibilidades são inúmeras, porque o hacker teria acesso praticamente completo ao seu scriptcase.


Esse mesmo problema do conteúdo ser interpretado como HTML pode acontecer nas aplicações... mas nas aplicações cada campo possui a opção "Mostrar conteúdo HTML", em que se estiver marcado, o valor não é interpretado como HTML, e sim como texto puro (e é o que deveria acontecer no SQL Builder).

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #10 Online: Junho 29, 2016, 12:47:34 pm »
O INSERT que eu fiz no vídeo foi apenas para simular uma tela de cadastro (ou seja, simular um usuário cadastrando aquele texto)...

FredKeyster

  • Expert
  • *****
  • Mensagens: 1702
  • DEWENNINMEN
    • Email
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #11 Online: Junho 29, 2016, 02:18:24 pm »
O INSERT que eu fiz no vídeo foi apenas para simular uma tela de cadastro (ou seja, simular um usuário cadastrando aquele texto)...

Entendi, até ai tudo bem, mas o usuário não estará previamente autenticado ? E geralmente o usuário é um técnico habilitado a mexer no SQL Build do SC e de confiança da empresa, sinceramente não consigo identificar o "perigo" que isso pode causar.
F. A.
Analista de Sistemas

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #12 Online: Junho 29, 2016, 04:05:53 pm »

O usuário ao qual me refiro é o usuário final da aplicação (o que usa a aplicação em outra empresa ou em casa). Através dessa brecha, ele pode fazer com que o programador execute comandos javascript sem saber (já que o SQL Builder executa qualquer script que o usuário insira em um campo qualquer), como chamar funções do Scriptcase (gerar aplicações, deletar aplicações, etc) ou falsificar/clonar a sessão de login do Scriptcase (aí ele teria acesso completo ao ambiente do Scriptcase caso ele esteja disponível online).

A premissa do XSS é que o "hacker" não executa nada, mas ele faz com que outra pessoa execute. O quão perigoso é essa execução  depende dos privilégios que essa outra pessoa tem (como por exemplo um administrador do sistema, ou nesse caso o programador no ambiente do Scriptcase, que tem permissão de visualizar/alterar/excluir aplicações e projetos).
« Última modificação: Junho 29, 2016, 04:12:18 pm por Anderson Mamede »

Jailton

  • Expert
  • *****
  • Mensagens: 2027
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #13 Online: Junho 29, 2016, 05:37:58 pm »
Vlw por compartilhar, toda melhora na segurança é bem vinda, já enviou para:
bugs@netmake.com.br
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

Anderson Mamede

  • Iniciante
  • **
  • Mensagens: 84
    • andersonmamede.com.br
Re:Séria vulnerabilidade XSS no SQL Builder
« Responder #14 Online: Junho 29, 2016, 08:49:59 pm »
Obrigado pela recomendação Jailton!


Acreditei que por ser o fórum oficial houvesse algum funcionário tomando conta e que pudesse reportar o problema para os responsáveis.


Mas como não foi o caso... acabei de reportar o problema para o endereço que você me passou.


Valeu!
« Última modificação: Junho 29, 2016, 08:51:34 pm por Anderson Mamede »