<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>sql Archives - Hiago Silva Souza</title>
	<atom:link href="https://www.hiago.me/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hiago.me/tag/sql/</link>
	<description></description>
	<lastBuildDate>Sat, 13 May 2017 21:29:11 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.hiago.me/wp-content/uploads/2019/01/cropped-icon-hiagus-2-32x32.png</url>
	<title>sql Archives - Hiago Silva Souza</title>
	<link>https://www.hiago.me/tag/sql/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">147457425</site>	<item>
		<title>Segurança: SQL Injection, Os dados de sua empresa estão protegidos?</title>
		<link>https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/</link>
					<comments>https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Sun, 30 Apr 2017 23:54:38 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[injection]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql-injection]]></category>
		<guid isPermaLink="false">http://www.hiago.me/?p=131</guid>

					<description><![CDATA[<p>[wp_ad_camp_3] SQL Injection, é um furo muito comum em programas de computador. Essa falha atinge sistemas que façam interação com bases de dados, é uma falha que pode levar o cracker a acessar, manipular, modificar e até remover informações de seu banco de dados sem autorização. Para isso basta sua aplicação se comunicar com o &#8230;</p>
<p>The post <a href="https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/">Segurança: SQL Injection, Os dados de sua empresa estão protegidos?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>[wp_ad_camp_3]</p>
<p>SQL Injection, é um furo muito comum em programas de computador. Essa falha atinge sistemas que façam interação com bases de dados, é uma falha que pode levar o cracker a acessar, manipular, modificar e até remover informações de seu banco de dados sem autorização. Para isso basta sua aplicação se comunicar com o banco de dados sem tratar a entrada de usuários. O SQL Injection, pode ser explorado desde aplicações desktop&#8217;s até aplicações web.</p>
<h1>O Ataque!</h1>
<p>[wp_ad_camp_1]</p>
<p>Um cracker pode fazer o uso de uma entrada de uma informação que interaja com alguma consulta SQL dentro da aplicação.</p>
<p>Exemplo: Um sistema de autenticação, até mesmo para um script para buscar um conteúdo.</p>
<p>Supondo que você seja uma pessoa que saiba sobre programação, observe o código abaixo escrito em PHP:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$conn = mysql_connect('localhost','root','suasenha');
mysql_select_db('teste',$conn);
$autenticar = mysql_query('SELECT COUNT(1) as qtd FROM usuario WHERE &amp;nbsp;usuario=&quot;'.$_POST&#x5B;'usuario'].'&quot; AND senha = &quot;'.$_POST&#x5B;'pwd'].'&quot;', $conn);
$res = mysql_fetch_assoc($autenticar);
if($res&#x5B;'qtd'] &gt;= 1) {
echo &quot;ACESSOU, TUDO OK!!!&quot;;
} else {
echo &quot;Usuário ou senha incorretos.&quot;;
}
</pre>
<p>Agora vamos fazer um teste, colocando no payload da requisição o valor admin para a chave &#8216;usuario&#8217; e admin para a chave &#8216;pwd&#8217;. A query que iria para o MySQL executar seria a query abaixo:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;admin&quot; AND senha = &quot;admin&quot;
</pre>
<p>Agora vamos modificar as informações enviadas pelo usuário, vamos supor que seu usuário seja um cracker e deseja obter acesso a sua aplicação para isso ele vai modificar o valor de <strong>usuario </strong>para <strong>admin&#8221; OR 1=1 &#8212; </strong>agora vamos fazer a mesma análise de como a query vai ser enviada ao banco de dados, segue abaixo:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;admin&quot; OR 1=1 --&quot; AND senha = &quot;&quot;
</pre>
<p>Caso você possua o usuário que o cracker colocou na injeção, ele vai ter o acesso sem necessitar de possuir a senha.<br />
Esse tipo de ataque, abre leque para que o cracker explore falhas de <a href="http://www.hiago.me/2017/04/30/seguranca-o-que-e-xss/">XSS</a> em telas de cadastro em seus painéis administrativos.</p>
<p>Mas falhas de injeção abrem um leque muito alto para o atacante, como por exemplo a exclusão de sua própria base de dados, imagine que no campo de usuário foi informado esse conteúdo <strong>&#8220;; DROP DATABASE DATABASE(); &#8212; </strong>a query final seria a seguinte:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;&quot;; DROP DATABASE DATABASE(); --&quot; AND senha = &quot;&quot;
</pre>
<p>E assim você acaba de perder TODO o seu banco de dados, tudo isso por não tratar uma simples entrada de informação.</p>
<h1>Como se prevenir:</h1>
<p>[wp_ad_camp_2]</p>
<p>Para se prevenir pasta você fazer o tratamento de qualquer informação antes de encaminha-lá ao banco de dados.</p>
<p>Vamos mudar a extensão do <a href="http://php.net/manual/pt_BR/function.mysql-connect.php">mysql_*</a> para a extensão do <a href="http://php.net/manual/pt_BR/ref.pdo-mysql.php">PDO </a>do php:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$conn = new PDO('mysql:host=localhost;dbname=teste','root','suasenha');
$autenticar = $conn-&amp;gt;prepare('SELECT COUNT(1) as qtd FROM usuario WHERE &amp;nbsp;usuario=:usuario AND senha = :pwd');
$autenticar-&gt;bindParam(':usuario', $_GET&#x5B;'usuario']);
$autenticar-&gt;bindParam(':pwd', $_GET&#x5B;'pwd']);
$autenticar-&gt;execute();
$res = $autenticar-&gt;fetch(PDO::FETCH_ASSOC);
if($res&#x5B;'qtd'] &gt;= 1) {
     echo &quot;ACESSOU, TUDO OK!!!&quot;;
} else {
     echo &quot;Usuário ou senha incorretos.&quot;;
}
</pre>
<p>Pronto! A partir de agora qualquer tipo de informação enviada pelo usuário vai ser tratada, vamos ver como ficaria a consulta enviada para o MySQL com o valor da chave usuario contendo <strong>admin&#8221; OR 1=1 &#8212;</strong>:</p>
<pre class="brush: sql; title: ; notranslate">
SELECT COUNT(1) as qtd FROM usuario WHERE usuario=&quot;admin\&quot; OR 1=1 --&quot; AND senha = &quot;&quot;
</pre>
<p>Obrigado!</p>
<p>Espero que com esse POST eu tenha contribuído para que vocês melhorem a segurança em suas aplicações.</p>
<p>The post <a href="https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/">Segurança: SQL Injection, Os dados de sua empresa estão protegidos?</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2017/04/30/seguranca-sql-injection-os-dados-de-sua-empresa-estao-protegidos/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">131</post-id>	</item>
	</channel>
</rss>
