Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

BlindSQLi timing-based

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial BlindSQLi timing-based

    Olá, tudo bem?
    Vamos ver hoje como é um ataque de SQL Injection baseado no tempo de resposta do servidor.
    O ataque é semelhante ao BlindSQLi comum, mas ao invés da página ser ou não exibida, você colocará, caso o "chute" esteja correto, um valor altíssimo de demora do servidor SQL, e verá que se o servidor estiver demorando bastante para responder, seu chute estava certo.
    Como este tutorial é para aqueles que já tem noção sobre SQL e BlindSQLi, vou apenas norteá-los. Isto quer dizer que darei apenas um exemplo de como obter a resposta. Digamos que já tenhamos uma aplicação vulnerável e que eu esteja tentando obter a primeira letra do nome da primeira tabela (ataques às cegas geralmente são feitas nessas comparações). Veja como eu faria:
    Código:
    noticia.php?id=1 UNION SELECT IF(SUBSTRING(table_name,1,1) = CHAR(65),BENCHMARK(5000000,ENCODE('MSG', '5 segundos')),null FROM information_schema.tables where table_schema=database() LIMIT 0,1--+
    Isto significa que eu estou pedindo ao servidor que, caso a condição seja verdadeira, execute 5 000 000 vezes o comando ENCODE(), e isto demorará um pouco.
    Neste caso, se o servidor estiver demorando para enviar a resposta, já imaginamos que a primeira letra do nome do primeiro banco de dados é 'A'. O mesmo ocorreria ao obter dados de uma tabela no mesmo banco de dados:
    Código:
    noticia.php?id=1 UNION SELECT IF(SUBSTRING(senha,1,1) = CHAR(50),BENCHMARK(5000000,ENCODE('MSG', '5 segundos')),null FROM usuarios LIMIT 0,1--+
    Caso o servidor demore, é provável que o primeiro caractere da senha do primeiro usuário é "0".
    É importante ter uma internet que não oscile muito, ou poderá haver confusões.
    Outras bases de dados também possuem funções para dar um sleep na base e permitir este tipo de ataque:
    MSSQL:
    Código:
    'WAIT FOR DELAY '0:0:10
    PostgreSQL:
    Código:
    pg_sleep()
    Como se é imaginado, este tipo de ataque é muito demorado e cansativo. Existem ferramentas que automatizam o ataque, como o famoso Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... Mas há um problema: estes softwares geralmente não se dão bem com:

    Boa noite, boa sorte (vou ser processado por isso?)!
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)
X
Working...
X