<?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/"
	>

<channel>
	<title>Mohammed CHERIFI &#187; mysql column truncation</title>
	<atom:link href="http://www.mcherifi.org/tag/mysql-column-truncation/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mcherifi.org</link>
	<description>Another Web Developper Blog!</description>
	<lastBuildDate>Tue, 31 Jan 2012 18:42:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>La faille MySQL Column truncation</title>
		<link>http://www.mcherifi.org/hacking/la-faille-mysql-column-truncation.html</link>
		<comments>http://www.mcherifi.org/hacking/la-faille-mysql-column-truncation.html#comments</comments>
		<pubDate>Thu, 10 Sep 2009 03:07:52 +0000</pubDate>
		<dc:creator>Mohammed CHERIFI</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[attaque par champs tronqués]]></category>
		<category><![CDATA[faille mysql]]></category>
		<category><![CDATA[mysql column truncation]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://www.mcherifi.org/?p=163</guid>
		<description><![CDATA[Tweet




Hello les amis !
Aujourd&#8217;hui, je vous parlerai d&#8217;un nouveau type de  faille, il s&#8217;agit de MySQL column truncation!
Pendant que les failles du  types SQL Injections restent parmi les vecteurs d&#8217;attaque les plus discutés sur  le Web, il existe un autre genre qui a été discuté pour la première fois par  Stefan [...]]]></description>
			<content:encoded><![CDATA[<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.mcherifi.org/hacking/la-faille-mysql-column-truncation.html" data-text="La faille MySQL Column truncation" data-count="horizontal">Tweet</a><div class="mceTemp">
<dl id="attachment_171" class="wp-caption alignleft" style="width: 160px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-171" title="mysql_column_truncation" src="http://www.mcherifi.org/wp-content/uploads/2009/09/mysql_column_truncation.jpg" alt="mysql column truncation" width="150" height="174" /></dt>
</dl>
</div>
<p>Hello les amis !</p>
<p>Aujourd&#8217;hui, je vous parlerai d&#8217;un nouveau type de  faille, il s&#8217;agit de <strong>MySQL column truncation</strong>!</p>
<p>Pendant que les failles du  types SQL Injections restent parmi les vecteurs d&#8217;attaque les plus discutés sur  le Web, il existe un autre genre qui a été discuté pour la première fois par  Stefan Esser, ce dernier a illustré son exploitation dans un bug reporté sur bugtraq  affectant wordpress!</p>
<p><strong>Comment ça marche ?</strong></p>
<p>Par défaut, la comparaison de deux chaine de caractère dans MySQL ne se fait pas en mode binaire, ceci se fait en &laquo;&nbsp;relaxed mode&nbsp;&raquo;, ce mode compare deux chaines on ignorant les espaces et les caractères nuls de la fin de la chaine, du coup, pour mysql, la chaine de caractères &#8216;admin&#8217; est égale à &#8216;admin   &#8216;! .</p>
<p>De ce fait mysql refusera d&#8217;enregistrer un nouvel utilisateur qui essaie de s&#8217;incrire avec &#8216;admin &#8216; (admin+espace) ce qui est tout à fait logique!</p>
<p><strong>Ou est le problème?</strong></p>
<p>Pour illustrer le problème on immagine l&#8217;application suivante:</p>
<ul>
<li>Un forum de discution ou un blog ou tous le monde peut s&#8217;enregistrer</li>
<li>Le champs username de la table <em>utilisateurs</em> est limité à 16 caractères</li>
<li>L&#8217;administrateur du forum est &#8216;admin&#8217;</li>
<li>MySQL est utilisé dans le mode par défaut</li>
<li>Pas de vérification sur la longueur du nom d&#8217;utilisateur</li>
</ul>
<p>Qu&#8217;est ce qui se passe si on essaie de créer un compte avec comme nom d&#8217;utilisateur &#8216;admin           xD&#8217;   (admin+11 espaces+xD) et un mot de passe &#8216;p455wd&#8217;:</p>
<p>MySQL va cherche si il existe un utilisateur avec comme username &#8216;admin           xD&#8217;,  et comme aucun utilisateur ne l&#8217;as pris l&#8217;application va l&#8217;accepter et continuera pour inserer le nouvel utilisateur dans la base.</p>
<p>La chaine du nom d&#8217;utilisateur fait 18 caractères (admin+11 espaces+xD), mySQL va automatiquement <strong>tronquer </strong>les deux dernier caractères (xD) car le champ username est limité à 16 caractères, ce qui donnera &#8216;admin           &#8216;  (admin+11 espaces), ce dernier sera accepté par l&#8217;application et inséré dans la table d&#8217;utilisateurs, on aura donc deux utilisateur avec le même login &#8216;admin&#8217;<em> (rappellez vous que la comparaison en mysql dans le mode par défaut ne prends pas en compte les espaces!)</em>.</p>
<p>Dans ce cas, un problème de sécurité potentiel peut affecter l&#8217;application, en dépendance de la façon dont elle traite le champ username!</p>
<p><strong>Exemple d&#8217;une application vulnérable:</strong><br />
Connexion :</p>
<pre class="brush: php">
if(!empty($_POST[&#039;username&#039;]) &amp;&amp; !empty($_POST[&#039;password&#039;]){
$username = $_POST[&#039;username&#039;];
$password= $_POST[&#039;password&#039;];
if(login($username,$password)){
$userdata = getUserInfoByLogin($username);
}
}
</pre>
<p>la fonction getUserInfoByLogin()</p>
<pre class="brush: php">

function getUserInfoByLogin($username){

$query = mysql_query(&quot;SELECT * FROM utilisateurs WHERE username = &#039;$username&quot;);

$userinfo= mysql_fetch_array($query);

return $userinfo ;

}
</pre>
<p>Espace membre</p>
<pre class="brush: php">

if($userdata[&#039;username&#039;] == &#039;admin&#039;){

//espace privé : console d&#039;administration

}

else{

// espace membre!

}</pre>
<p><strong>Resultat:</strong></p>
<p>Puisque l&#8217;attaquant a un compte avec le login &#8216;admin           &#8216;, il pourra se connecter à ce dernier avec le passe &#8216;p455wd&#8217; ! et puisque l&#8217;enregistrement du vrai administrateur est le premier en base, celuila sera retourné ! et l&#8217;attaquant aura accès à l&#8217;espace administrateur du forum!</p>
<p>Ceci est juste une illustration, la faille peut se présenter différemment sur une application web,je cite là <a href="http://www.milw0rm.com/exploits/6397" target="_blank">wordpress qui était le premier victime de ce type de vulnérabilités</a>!</p>
<p><strong>Comment sécuriser mon application?</strong></p>
<p>Toujours vérifier la longueur des champs sensibles (comme username dans notre exemple), et interrompre l&#8217;exécution de votre application si cella dépasse la longueur maximale configurée dans votre table mysql!</p>



Partager cet article:


	<a rel="nofollow"  target="_blank" href="http://www.mcherifi.org/wp-content/plugins/sociable/awesmate.php?c=twitter&t=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&d=http://twitter.com/home?status=La%20faille%20MySQL%20Column%20truncation%20-%20TARGET" title="Twitter"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mcherifi.org/wp-content/plugins/sociable/awesmate.php?c=facebook-post&t=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&d=http://www.facebook.com/share.php?u=TARGET%26t=La%20faille%20MySQL%20Column%20truncation" title="Facebook"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation&amp;annotation=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis" title="Google Bookmarks"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation&amp;notes=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis" title="del.icio.us"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=La%20faille%20MySQL%20Column%20truncation&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" title="Netvibes"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.viadeo.com/shareit/share/?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&title=La%20faille%20MySQL%20Column%20truncation&urllanguage=fr" title="viadeo FR"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/viadeo.png" title="viadeo FR" alt="viadeo FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation&amp;bodytext=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis" title="Digg"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation&amp;source=Mohammed+CHERIFI+Another+Web+Developper+Blog%21&amp;summary=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis" title="LinkedIn"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=La%20faille%20MySQL%20Column%20truncation&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" title="Slashdot"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" title="Sphinn"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation" title="Mixx"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a  target="_blank" href="http://blogplay.com" title="Blogplay"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/blogplay.png" title="Blogplay" alt="Blogplay" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" title="Identi.ca"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;partner=sociable" title="Print"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mcherifi.org/wp-content/plugins/sociable/awesmate.php?c=pingfm&t=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&d=http://ping.fm/ref/?link=TARGET%26title=La%20faille%20MySQL%20Column%20truncation%26body=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis" title="Ping.fm"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mcherifi.org/wp-content/plugins/sociable/awesmate.php?c=mailto&t=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&d=mailto:?subject=La%20faille%20MySQL%20Column%20truncation%26body=TARGET" title="email"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation&amp;selection=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis" title="Posterous"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation" title="Reddit"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;submitHeadline=La%20faille%20MySQL%20Column%20truncation&amp;submitSummary=%20%20%0D%0AHello%20les%20amis%20%21%0D%0A%0D%0AAujourd%27hui%2C%20je%20vous%20parlerai%20d%27un%20nouveau%20type%20de%20%20faille%2C%20il%20s%27agit%20de%20MySQL%20column%20truncation%21%0D%0A%0D%0APendant%20que%20les%20failles%20du%20%20types%20SQL%20Injections%20restent%20parmi%20les%20vecteurs%20d%27attaque%20les%20plus%20discut%C3%A9s%20sur%20%20le%20Web%2C%20il%20exis&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;partner=sociable" title="PDF"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/pdf.png" title="PDF" alt="PDF" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mcherifi.org/feed" title="RSS"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.diigo.com/post?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation" title="Diigo"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/diigo.png" title="Diigo" alt="Diigo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=La%20faille%20MySQL%20Column%20truncation&amp;u=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" title="Fark"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html&amp;title=La%20faille%20MySQL%20Column%20truncation" title="Blogosphere News"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=La%20faille%20MySQL%20Column%20truncation&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" title="blogtercimlap"><img src="http://www.mcherifi.org/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>


<br/><br/>
<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fla-faille-mysql-column-truncation.html" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcherifi.org/hacking/la-faille-mysql-column-truncation.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

