Questões de Concurso sobre Injeção SQL (SQL Injection)

 
 
Disciplina 1
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
75 questões encontradas
Questões por página
20
Mais recentes
 

Caso uma aplicação permita que comandos SQL sejam digitados nos inputs de seus formulários e concatenados diretamente nos comandos SQL da própria aplicação, sem que seja realizada uma validação ou tratamento antecedente, certamente essa aplicação estará vulnerável ao ataque conhecido como SQL Injection.


C

Certo


E

Errado

A equipe de segurança de um órgão público detectou em seus sistemas de monitoramento a seguinte requisição em direção a um site do órgão:


http://www.site.gov.br/index.php?username=1'%20or%20'1'%20 =%20'1'))/*&password=t&$t3.


O tipo e a técnica de ataque detectados são, respectivamente:


A

HTML injection, com o objetivo de alterar a página de login;


B

SQL injection, com o objetivo de bypassar a página de login;


C

SQL injection, com o objetivo de forçar o banco de dados a gerar um erro;


D

Command injection, com o objetivo de realizar a execução de código na página de login;


E

Command injection, com o objetivo de forçar o banco de dados a gerar um erro.

Para evitar ataques de SQL Injection, em condições ideais, o H2 Database fornece uma maneira de impor o uso de parâmetros ao passar a entrada do usuário para o banco de dados, desabilitando literais incorporadas em instruções SQL, por meio da instrução


A

SET SQL_INJECTION=FALSE;


B

SET ALLOW_LITERALS NONE;


C

SET INPUT_MODE WITH LITERALS=FALSE;


D

SET INPUT_MODE=PREPAREDSTATEMENT ALLOW_LITERALS=FALSE;


E

SET ALLOW_LITERALS=OFF;

Uma significativa parte da prevenção contra determinado ataque cibernético pode ser realizada por meio da minimização dos privilégios de acesso das aplicações, bem como pela sanitização de códigos relacionados aos acessos a bancos de dados. Trata-se de prevenção contra ataques


A

DDoS.


B

de SQL injection.


C

do tipo phishing.


D

do tipo ransomware.


E

de vírus.

Um formulário web de um sistema de uma empresa solicita um nome de login e uma senha em sua página principal, tendo como objetivo autenticar o usuário e fornecer acesso restrito. Sabe-se que esse sistema utiliza a seguinte query em SQL para localizar o usuário em uma tabela do banco de dados:


SELECT * FROM Users WHERE UserLogin = "uName" AND Pass = "uPass"


em que uName e uPass são substituídos pelo conteúdo literal inserido pelo usuário nas caixas de digitação do login e senha, respectivamente, sem nenhum tratamento.

As aspas presentes na query acima fazem parte de seu conteúdo.

Quando essa query não retorna nenhum resultado, o sistema emite uma mensagem de login inválido. Quando essa query retorna algum resultado, é fornecido acesso ao sistema com o login do primeiro usuário retornado na consulta.

Um ataque baseado em SQL Injection, para obter acesso indevido ao sistema, com alguma conta de usuário qualquer, poderia ser tentado com o seguinte preenchimento nas caixas correspondentes a uName e uPass:


Dado: as aspas, quando apresentadas, fazem parte do conteúdo preenchido.


A

uName: admin

uPass: "OR 1 = 1"


B

uName: DROP TABLE

uPass: Users;


C

uName: OR 1 = 1

uPass: OR 1 = 1


D

uName: admin

uPass: "OR "" = "


E

uName: DROP TABLE Users;

uPass: (vazio)

Para evitar os efeitos indesejáveis de ataques SQL lnjection em aplicações web, uma recomendação correta de programação segura é


A

não utilizar ferramentas Object Relational Mapping (ORM) como Hibernate, NHibernate ou JPA.


B

utilizar as propriedades securi ty= "true" e/ou encode= "secure" nos campos de formulários HTML.


C

realizar a validação dos dados de entrada do lado do servidor por meio de whitelists.


D

validar a entrada de dados no cliente, evitando assim qualquer possibilidade de envio de instruções maliciosas ao servidor.


E

utilizar concatenação de valores nas consultas de dados ao invés de consultas parametrizadas.

Sistemas de gestão de conteúdo (Content Management System — CMS), como Joomla, Plone e WordPress, são ferramentas muito comuns para hospedagem de portais institucionais, principalmente com a padronização da identidade visual do governo.

Entretanto, apesar de facilitar, a publicação de conteúdos, o administrador ao instalar plugins de terceiros, deve se manter sempre atento à exposição do ambiente de hospedagem a vulnerabilidades importadas juntamente com os plugins, devendo manter, em suã base, sempre as versões mais atuais e consultando, de forma recorrente, a existência de vulnerabilidades conhecidas em sua base instalada, em portais como o Exploit DB.

Acervo pessoal

file: /com_techfolio/frontend/models/techfoliodetail.php


[29] $catid = $_GET['catid]

[80] --------------if($catid!="){

[81] ------------------------$data = "SELECT * FROM #_techfolio WHERE catid = ".$catid;

[32] --------------}else{

[33] ------------------------$data = "SELECT * FROM #_techfolio";

[34] --------------}

[35]-------------- $db->setQuery( $data );

[36] --------------$data = $db->loadObjectList();

[37]

[38] --------------return $data;

Disponível em: <https:/Avww.exploit-db.com/exploits/18042>. Acesso em: 15 jun. 2022, com adaptações.


Com base nas informações apresentadas, assinale a alternativa que indica o tipo de vulnerabilidade existente.


A

Local File Inclusion


B

Remote File Inclusion


C

Session hijacking


D

Cross-site scripting


E

SQL Injection

SQL Injection é uma técnica de ataque na qual o invasor se aproveita de falhas em aplicativos web que interagem com bases de dados para inserir uma instrução SQL personalizada e indevida.


Para evitar essa ameaça de segurança, é necessário:


A

utilizar expressões regulares para cifrar as variáveis enviadas para o sistema;


B

concatenar diretamente o input do usuário com a consulta SQL;


C

encapsular as entradas de dados dentro de aspas simples ao montar dinamicamente consultas SQL;


D

retornar no corpo das respostas HTTP as mensagens de erro em bancos de dados;


E

validar todas as entradas de dados, como formulários ou URL da aplicação.

Acerca da segurança em aplicações web, registre V, para verdadeiras, e F, para falsas:


( ) Falha de injeção SQL ocorre quando uma entrada de um campo informado pelo usuário é utilizada em uma consulta de arquivos de configurações no servidor sem validação prévia.

( ) Cross Site Scripting (XSS) ocorre quando uma aplicação inclui dados informados por um usuário em uma página enviada a um navegador, sem realizar validações dos dados de entrada do usuário.

( ) Uma das formas de proteger as aplicações web contra o Cross site Request Forgery (CSRF) é criar uma blacklist de parâmetros inválidos no servidor, permitindo somente a entrada de dados válidos.


Assinale a alternativa com a sequência correta:


A

F – F – V


B

V – V – F


C

F – V – V


D

F – V – F


E

V – F – V

Um lote de instruções SQL é um grupo de duas ou mais instruções SQL separadas por ponto e vírgula. Um ataque SQL Injection pode ser realizado nesse caso colocando um comando malicioso após uma entrada esperada. Exemplo: “SELECT * FROM usuario where id =” concatenado à entrada “5; DROP TABLE usuario;”


C

Certo


E

Errado

Uma técnica comum de invasão em bancos de dados é a inserção de códigos SQL nas URL de sites para descobrir se estes retornam erros através do servidor de aplicação informando o SGBD e versão deste. Por meio dessa informação, o atacante pode iniciar uma série de tentativas para manipular os dados desse banco. Essa técnica utilizada é conhecida como


A

SQL Attack,


B

Database Attack.


C

SQL Inject.


D

Database Defaced.


E

SGBD Attack.

Veja na figura abaixo que o site de uma pós-graduação da Universidade Federal de Ouro Preto foi hackeado e que o invasor aproveitou-se de alguma vulnerabilidade no sistema para cadastrar uma notícia na base de dados.

Imagem associada para resolução da questão



Qual dos tipos de ataques listados abaixo o hacker utilizou para modificar o site?


A

Cross-site scripting (XSS)


B

Distributed Denial of Service (DDoS)


C

SQL Injection


D

Cross Site Request Forgery (CSRF)

Analise o fragmento de código, executado no servidor, de uma aplicação WEB.

Imagem associada para resolução da questão

Considerando-se que o fragmento acima lê dados de formulários preenchidos por usuários, o código é vulnerável ao ataque de


A

buffer overflow, já que o tamanho da entrada não é verificado no objeto connStr.


B

buffer overflow, mesmo que o método em questão esteja declarado como protegido.


C

cross site scripting, pois não protege contra injeção de código javascript em cookies.


D

sql injection, pois permite que o objeto cmdStr seja montado de forma maliciosa.


E

sql injection, pois permite que o banco de dados seja especificado por parâmetros.

   
Gerar simulado