<?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; injection expression regulière</title>
	<atom:link href="http://www.mcherifi.org/tag/injection-expression-reguliere/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>Injection de code dans une expressions rationnelle (REGEX Injection)</title>
		<link>http://www.mcherifi.org/hacking/regex-code-injection.html</link>
		<comments>http://www.mcherifi.org/hacking/regex-code-injection.html#comments</comments>
		<pubDate>Sun, 18 Oct 2009 16:42:27 +0000</pubDate>
		<dc:creator>Mohammed CHERIFI</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[injection expression regulière]]></category>
		<category><![CDATA[regex injection]]></category>
		<category><![CDATA[securité expression regulière]]></category>

		<guid isPermaLink="false">http://www.mcherifi.org/?p=256</guid>
		<description><![CDATA[TweetSalut à tous!
Aujourd&#8217;hui je vous parlerai de la sécurité des expressions régulières, appelées aussi expressions rationnelles, ou tout simplement REGEX pour les intimes! Si vous en usé dans vos codes, ce billet est pour vous!
Les expressions rationnelles permettent de manipuler une chaine de caractère de façon très puissante, elles sont souvent utilisées pour la validation [...]]]></description>
			<content:encoded><![CDATA[<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.mcherifi.org/hacking/regex-code-injection.html" data-text="Injection de code dans une expressions rationnelle (REGEX Injection)" data-count="horizontal">Tweet</a><p><img src="http://www.mcherifi.org/wp-content/uploads/2009/10/regexinj2.png" alt="Regular expression injection" title="Regular expression code injection" width="148" height="116" class="alignleft size-full wp-image-321" />Salut à tous!</p>
<p>Aujourd&#8217;hui je vous parlerai de la sécurité des expressions régulières, appelées aussi expressions rationnelles, ou tout simplement REGEX pour les intimes! Si vous en usé dans vos codes, ce billet est pour vous!</p>
<p>Les <a title="Expression régulière" href="http://fr.wikipedia.org/wiki/Expression_rationnelle" target="_blank">expressions rationnelles</a> permettent de manipuler une chaine de caractère de façon très puissante, elles sont souvent utilisées pour la validation des données, le parsing du bbcode dans les forums, également dans les commandes unix comme <em>grep</em> et <em>sed</em>, mais ce n&#8217;est pas notre sujet aujourd&#8217;hui!</p>
<p><strong>Où est le problème?</strong></p>
<p>Dans une expression rationnelle, il est possible d&#8217;utiliser un modificateur &laquo;&nbsp;e&nbsp;&raquo; qui permet d&#8217;évaluer le code contenu dans la chaine de remplacement, donc exécuter du code php!</p>
<p>Dans le language Perl ainsi que dans tous les technologies qui utilisent la librairie PCRE (Perl-compatible regular expressions), y compris PHP, ces derniers supportent l&#8217;utilisation de ce modificateur, un attaquant malveillant peut injecter du code si l&#8217;entrée n&#8217;est pas correctement filtrée!</p>
<p><strong>Exemple : </strong></p>
<p>Voici un code qui parse une chaine de caractère et remplace tous ce qui existe entre [b] et [/b] par &lt;strong&gt;CHAINE&lt;/strong&gt;, on le mettant en majuscule!</p>
<pre class="brush: php">
$nom = &quot;toto&quot;;
$chaine = &quot;Hello my name is [b]&quot;.$nom.&quot;[/b]&quot;;
$pattern = &quot;#\[b\](.*)\[/b\]#e&quot; ;
$replacement = &quot;&#039;&lt;strong&gt;&#039;.strtoupper(&#039;$1&#039;).&#039;&lt;/strong&gt;&#039;&quot;;
$display = preg_replace($pattern , $replacement, $chaine);
echo $display  ;
</pre>
<p>Que se passera t&#8217;il si toto s&#8217;appelle ainsi :</p>
<ul>
<li>&#8216;.phpinfo().&#8217;</li>
<li>&#8216;.exec(\$_GET[cmd]).&#8217;</li>
<li>&#8216;.include($_GET[backdoor]).&#8217;</li>
</ul>
<p>Dans toutes les versions <strong>PHP &lt; 5.0.5</strong> La chaine de remplacement deviendra : &lt;strong&gt;&#8217;.strtoupper(&#8216;\\1<span style="color: #ff0000;">&#8216;.phpinfo().&#8217;</span>&#8216;).&#8217;&nbsp;&raquo;&lt;/strong&gt; est le code php sera exécuté ! du coup, un attaquant peut injecter un code malveillant !</p>
<p><strong>Comment se protéger?</strong></p>
<p>Si jamais vous êtes amenés à utiliser des expressions rationnelles avec le modificateur &laquo;&nbsp;e&nbsp;&raquo;, pensez à filtrer vos variables en utilisant la fonction <a href="http://www.php.net/manual/en/function.escapeshellcmd.php" target="_blank">escapeshellcmd</a>, d&#8217;où notre code deviendra :</p>
<pre class="brush: php">
$nom = &quot;simo.&#039;phpinfo().&#039;&quot;; // test d&#039;injection
$chaine = &quot;Hello my name is [b]&quot;.$nom.&quot;[/b]&quot;;
$pattern = &quot;#\[b\](.*)\[/b\]#e&quot; ;
$replacement = &quot;&#039;&lt;strong&gt;&#039;.strtoupper(escapeshellcmd(&#039;$1&#039;)).&#039;&lt;/strong&gt;&#039;&quot;;
$display = preg_replace($pattern , $replacement, $chaine);
echo $display  ;
</pre>
<p>Sinon Le plus simple est d&#8217;utiliser une version récente de PHP &gt; 5.0.5 est le tour est joué ;)</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%2Fregex-code-injection.html&d=http://twitter.com/home?status=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29%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%2Fregex-code-injection.html&d=http://www.facebook.com/share.php?u=TARGET%26t=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29" 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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;annotation=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express" 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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;notes=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express" 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=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fregex-code-injection.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%2Fregex-code-injection.html&title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;bodytext=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express" 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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;source=Mohammed+CHERIFI+Another+Web+Developper+Blog%21&amp;summary=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express" 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=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fregex-code-injection.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%2Fregex-code-injection.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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29" 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%2Fregex-code-injection.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%2Fregex-code-injection.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%2Fregex-code-injection.html&d=http://ping.fm/ref/?link=TARGET%26title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29%26body=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express" 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%2Fregex-code-injection.html&d=mailto:?subject=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29%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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;selection=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express" 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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29" 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%2Fregex-code-injection.html&amp;submitHeadline=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;submitSummary=Salut%20%C3%A0%20tous%21%0D%0A%0D%0AAujourd%27hui%20je%20vous%20parlerai%20de%20la%20s%C3%A9curit%C3%A9%20des%20expressions%20r%C3%A9guli%C3%A8res%2C%20appel%C3%A9es%20aussi%20expressions%20rationnelles%2C%20ou%20tout%20simplement%20REGEX%20pour%20les%20intimes%21%20Si%20vous%20en%20us%C3%A9%20dans%20vos%20codes%2C%20ce%20billet%20est%20pour%20vous%21%0D%0A%0D%0ALes%20express&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%2Fregex-code-injection.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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29" 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=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;u=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fregex-code-injection.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%2Fregex-code-injection.html&amp;title=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29" 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=Injection%20de%20code%20dans%20une%20expressions%20rationnelle%20%28REGEX%20Injection%29&amp;url=http%3A%2F%2Fwww.mcherifi.org%2Fhacking%2Fregex-code-injection.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%2Fregex-code-injection.html" layout="standard" show_faces="true" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mcherifi.org/hacking/regex-code-injection.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

