<?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>Le blog de John Jean &#187; apache</title>
	<atom:link href="http://www.john-jean.com/blog/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://www.john-jean.com/blog</link>
	<description>Actualité de sécurité informatique</description>
	<lastBuildDate>Wed, 19 May 2010 09:19:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Faille dans la création d&#8217;un .htaccess</title>
		<link>http://www.john-jean.com/blog/securite-informatique/faille-dans-la-creation-dun-htaccess-89</link>
		<comments>http://www.john-jean.com/blog/securite-informatique/faille-dans-la-creation-dun-htaccess-89#comments</comments>
		<pubDate>Mon, 22 Dec 2008 22:45:50 +0000</pubDate>
		<dc:creator>John JEAN</dc:creator>
				<category><![CDATA[Sécurité informatique]]></category>
		<category><![CDATA[403]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[faille]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htpasswd]]></category>

		<guid isPermaLink="false">http://www.john-jean.com/blog/?p=89</guid>
		<description><![CDATA[Toujours lors de nos audits de sécurité, une faille qui revient très régulièrement est la mauvaise configuration d&#8217;une protection par le biais d&#8217;un htaccess. La plupart des administrateurs ou webmasters fouinent sur le net afin de créer leur .htaccess, et de fait, se retrouvent avec des choses dont ils n&#8217;ont pas réellement besoin, ou en [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.john-jean.com/apache_logo_medium.png" alt="Faille htaccess" width="165" height="114" /> <a title="Cracker clé Wep" href="http://www.john-jean.com/blog/securite-informatique/comment-cracker-une-cle-wep-avec-une-carte-intel-corporation-prowireless-3945abg-37" target="_blank">Toujours lors de nos audits de sécurité</a>, une faille qui revient très régulièrement est la mauvaise configuration d&#8217;une protection par le biais d&#8217;un <a title="Gestion htaccess dans apache" href="http://httpd.apache.org/docs/1.3/howto/htaccess.html" target="_blank">htaccess</a>. La plupart des administrateurs ou webmasters fouinent sur le net afin de créer leur .htaccess, et de fait, se retrouvent avec des choses dont ils n&#8217;ont pas réellement besoin, ou en tout cas qu&#8217;ils n&#8217;ont pas tout à fait compris. Bon, je pense que mon teasing a fait son petit effet, y&#8217;a plus qu&#8217;à cliquer sur le lien suivant pour lire la suite.</p>
<p><span id="more-89"></span></p>
<p>Bon j&#8217;avoue, j&#8217;ai un peu triché, derrière ce titre racoleur se trouve une erreur de configuration assez grossière, mais que l&#8217;on retrouve, sans exagérer dans 70% des cas. Le premier responsable de cette faille est, il me semble, le site <a href="http://www.commentcamarche.net/" target="_blank">http://www.commentcamarche.net/</a>. Pourquoi ca ? Simplement parce qu&#8217;ils sortent premier sur la recherche &laquo;&nbsp;<a href="http://www.google.fr/search?hl=fr&amp;q=creation+htaccess&amp;btnG=Recherche+Google&amp;meta=&amp;aq=f&amp;oq=" target="_blank">Création htaccess</a>&laquo;&nbsp;.</p>
<p>Et comment nous proposent-ils de créer un htaccess ?<br />
Je cite:</p>
<pre class="code">ErrorDocument 403 http://www.commentcamarche.net/accesrefuse.php3
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic
&lt;LIMIT GET POST&gt;
Require valid-user
&lt;/LIMIT&gt;</pre>
<p>Donc si l&#8217;on fait un tour rapide:</p>
<ul>
<li>La première ligne donne la page où l&#8217;on doit rediriger lors d&#8217;une 403 (Erreur d&#8217;auth ou deny from all par exemple)</li>
<li>La seconde donne le chemin du fichier contenant les mots de passe</li>
<li>La troisième le chemin du fichier de groupe</li>
<li>La quatrième, c&#8217;est le wording du prompt login / pass</li>
<li>La cinquième donne le mode d&#8217;authentification, dans ce cas auth basic (mod_auth_basic)</li>
<li>Enfin, les trois dernières expliquent que pour exécuter les requêtes GET et POST, il faut être un utilisateur authentifié.</li>
</ul>
<p>Tout cela est assez schématisé, mais l&#8217;idée est là. Donc si je tente d&#8217;accéder à la page protégée, j&#8217;effectuerais une requête de type:</p>
<pre class="code">GET http://www.example.com/admin/index.php HTTP/1.0</pre>
<p>Et je vais donc atterir sur une 401 Authorization Required. Où se situe l&#8217;astuce ? Apache ne gère pas correctement les requêtes mal formée. Je m&#8217;explique, si à la place de faire un GET ou un POST, je fais un:</p>
<pre class="code">JOHN http://www.example.com/admin/index.php HTTP/1.0</pre>
<p>Apache me renverra le contenu de la page présente derrière /admin/index.php (200). Lorsque je dis que 70% des sites sont faillibles, c&#8217;est tellement il est facile pour un webmaster paresseux de réaliser cette configuration. htaccess permet de modifier localement la configuration d&#8217;apache, du coup chaque webmaster peut créer sa propre faille en suivant les conseils d&#8217;un site généraliste comme commentcamarche. Deux coupables: le webmaster car il dépose une config qu&#8217;il ne comprend pas et Apache car il interprète les requêtes mal formée comme étant des GET. Grosso-modo, il est possible pour le premier venu d&#8217;aller se balader sur les backoffices en forgeant simplement sa requête à base de JOHN.</p>
<p>Comment patchons nous cette faille ?<br />
Tout simplement en ôtant de notre htaccess la limit GET, POST. En effet, aucun intérêt de limiter à GET et POST le require valid-user si ce dernier est effectivement nécessaire. D&#8217;ailleurs dans les <a title="Configuration Apache htaccess" href="http://httpd.apache.org/docs/2.2/mod/core.html#limit" target="_blank">préconisations globales d&#8217;apache</a>, ils recommandent de ne pas utiliser les limit lors de la création de htaccess. Je cite:</p>
<blockquote><p>Access controls are normally effective for     <strong>all</strong> access methods, and this is the usual     desired behavior. <strong>In the general case, access control     directives should not be placed within a     <code class="directive">&lt;Limit&gt;</code> section.</strong></p>
<p>The purpose of the <code class="directive">&lt;Limit&gt;</code> directive is to restrict the effect of the access controls to the     nominated HTTP methods. For all other methods, the access     restrictions that are enclosed in the <code class="directive">&lt;Limit&gt;</code> bracket <strong>will have no     effect</strong>. The following example applies the access control     only to the methods <code>POST</code>, <code>PUT</code>, and     <code>DELETE</code>, leaving all other methods unprotected.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.john-jean.com/blog/securite-informatique/faille-dans-la-creation-dun-htaccess-89/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
