

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
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.
Certo
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:
HTML injection, com o objetivo de alterar a página de login;
SQL injection, com o objetivo de bypassar a página de login;
SQL injection, com o objetivo de forçar o banco de dados a gerar um erro;
Command injection, com o objetivo de realizar a execução de código na página de login;
Command injection, com o objetivo de forçar o banco de dados a gerar um erro.
SQL injection consiste em inserir ou manipular consultas efetuadas pela aplicação, com o objetivo de diminuir sua performance.
Certo
Errado
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
SET SQL_INJECTION=FALSE;
SET ALLOW_LITERALS NONE;
SET INPUT_MODE WITH LITERALS=FALSE;
SET INPUT_MODE=PREPAREDSTATEMENT ALLOW_LITERALS=FALSE;
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
DDoS.
de SQL injection.
do tipo phishing.
do tipo ransomware.
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.
uName: admin
uPass: "OR 1 = 1"
uName: DROP TABLE
uPass: Users;
uName: OR 1 = 1
uPass: OR 1 = 1
uName: admin
uPass: "OR "" = "
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 é
não utilizar ferramentas Object Relational Mapping (ORM) como Hibernate, NHibernate ou JPA.
utilizar as propriedades securi ty= "true" e/ou encode= "secure" nos campos de formulários HTML.
realizar a validação dos dados de entrada do lado do servidor por meio de whitelists.
validar a entrada de dados no cliente, evitando assim qualquer possibilidade de envio de instruções maliciosas ao servidor.
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: /
[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.
Local File Inclusion
Remote File Inclusion
Session hijacking
Cross-site scripting
SQL Injection
Com referência à segurança de dados sigilosos, uma das técnicas utilizadas por hackers é a adição de código quando da entrada de dados em sistemas de informação.
Essa técnica é conhecida como
Man-in-the-middle.
Cavalo de Troia.
SQL injection.
Phishing.
DDoS.
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:
utilizar expressões regulares para cifrar as variáveis enviadas para o sistema;
concatenar diretamente o input do usuário com a consulta SQL;
encapsular as entradas de dados dentro de aspas simples ao montar dinamicamente consultas SQL;
retornar no corpo das respostas HTTP as mensagens de erro em bancos de dados;
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:
F – F – V
V – V – F
F – V – V
F – V – F
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;”
Certo
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
SQL Attack,
Database Attack.
SQL Inject.
Database Defaced.
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.

Qual dos tipos de ataques listados abaixo o hacker utilizou para modificar o site?
Cross-site scripting (XSS)
Distributed Denial of Service (DDoS)
SQL Injection
Cross Site Request Forgery (CSRF)
Analise o fragmento de código, executado no servidor, de uma aplicação WEB.

Considerando-se que o fragmento acima lê dados de formulários preenchidos por usuários, o código é vulnerável ao ataque de
buffer overflow, já que o tamanho da entrada não é verificado no objeto connStr.
buffer overflow, mesmo que o método em questão esteja declarado como protegido.
cross site scripting, pois não protege contra injeção de código javascript em cookies.
sql injection, pois permite que o objeto cmdStr seja montado de forma maliciosa.
sql injection, pois permite que o banco de dados seja especificado por parâmetros.