<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on Peczenyj's Blog</title><link>http://pacman.blog.br/categories/security/</link><description>Recent content in Security on Peczenyj's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 25 Aug 2008 13:11:00 -0300</lastBuildDate><atom:link href="http://pacman.blog.br/categories/security/atom.xml" rel="self" type="application/rss+xml"/><item><title>SQL Injection - A fina arte de criar paginas realmente inseguras</title><link>http://pacman.blog.br/blog/2008/08/25/sql-injection/</link><pubDate>Mon, 25 Aug 2008 13:11:00 -0300</pubDate><guid>http://pacman.blog.br/blog/2008/08/25/sql-injection/</guid><description>&lt;div class='post'>
Este post diz tudo:&lt;br />&lt;img src="http://imgs.xkcd.com/comics/exploits_of_a_mom.png"/>&lt;br />
&lt;!-- more --> 
&lt;br />Por mais que existam alertas sobre os perigos de &lt;a href="http://en.wikipedia.org/wiki/SQL_injection">SQL Injection&lt;/a>, muita gente resolve ignorar e criar sistemas cujas consultas ao banco de dados são feitas através de concatenações de strings com os dados oriundos do usuário.&lt;br />&lt;br />Uma das primeiras coisas que aprendi quando trabalhava como testador foi tentar este código em telas de login:&lt;br />&lt;br />&lt;code>' or '1' ='1&lt;code>&lt;br />&lt;br />Imagine que o impacto dessa belezinha em uma query como esta:&lt;br />&lt;br />&lt;code>"SELECT USUARIO FROM TABELA WHERE USUARIO = '" + usuario + "' AND SENHA = '" + senha + "'"&lt;/code>&lt;br />temos, então:&lt;br />&lt;br />&lt;code>SELECT USUARIO FROM TABELA WHERE USUARIO = 'qqCoisa' AND SENHA = '' or '1' ='1'&lt;/code>&lt;br />&lt;br />Consegui efetuar o login devido a extrema &lt;b>preguiça&lt;/b> do desenvolvedor que nunca se interessou em estudar um pouco de segurança, muito menos sabe o que é um &lt;b>prepared statement&lt;/b>. Isso no melhor dos casos, posso querer inserir um DROP TABLE da vida facilmente, pois o sistema está, literalmente, de pernas abertas.&lt;br />&lt;br />Recentemente um colega testou esse tipo de ataque contra um site de uma &lt;span style="font-style:italic;">instituição&lt;/span> por curiosidade. Ele conseguiu obter um arquivo contento a senha e o IP do banco de dados e conseguiu acessa-lo, perceberam o perigo?&lt;br />&lt;br />Sinceramente? Se eu vejo um site que cai nesse truque eu não sinto pena. Não vou zoar ou fazer algo maléfico, as vezes até tento avisar, mas não sei se vale a pena: ou o sistema custou muito barato ou custou muito caro, foi produzido por uma consultoria que lucou 1980% em cima do salario do estágiario e que, por mais documentos que tenham produzido não conseguiram fazer algo básico: um site seguro contra hackers que estudam pela Wikipedia.&lt;br />&lt;br />Se o seu site não pode receber aspas simples, duplas ou %, tenha MUITO medo, pois alguem VAI fazer algo em breve...&lt;/div>

&lt;h2>Comments&lt;/h2>
&lt;div class='comments'>
&lt;div class='comment'>
&lt;div class='author'>Marcio&lt;/div>
&lt;div class='content'>
Muito bom o post!&lt;/div>
&lt;/div>
&lt;div class='comment'>
&lt;div class='author'>Marcio&lt;/div>
&lt;div class='content'>
muito bom o post!&lt;/div>
&lt;/div>
&lt;div class='comment'>
&lt;div class='author'>Felipe&lt;/div>
&lt;div class='content'>
Essa tirinha do xkcd é uma das melhores.&lt;/div>
&lt;/div>
&lt;div class='comment'>
&lt;div class='author'>Tiago Albineli Motta&lt;/div>
&lt;div class='content'>
Brincar com SQLInjection é divertido... principalmente em dias de tédio.&lt;/div>
&lt;/div>
&lt;/div></description></item></channel></rss>