<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : Exploitation de faille include avec les sessions PHP</title>
	<atom:link href="http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/</link>
	<description>Projets d’un consultant en sécurité informatique</description>
	<lastBuildDate>Sat, 22 Aug 2015 12:46:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>Par : Nuit du hack - Challenges publics - -[The lsd]-</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-470</link>
		<dc:creator>Nuit du hack - Challenges publics - -[The lsd]-</dc:creator>
		<pubDate>Wed, 21 Jul 2010 17:54:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-470</guid>
		<description>[...] d&#8217;apache. Rien de concluant. le site n&#8217;utilise pas de sessions, donc, on ne peut pas inclure non plus les fichiers de session. J&#8217;essaye d&#8217;inclure d&#8217;autres fichiers, comme /p/.htaccess pour apprendre que le [...]</description>
		<content:encoded><![CDATA[<p>[...] d&#8217;apache. Rien de concluant. le site n&#8217;utilise pas de sessions, donc, on ne peut pas inclure non plus les fichiers de session. J&#8217;essaye d&#8217;inclure d&#8217;autres fichiers, comme /p/.htaccess pour apprendre que le [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Emilien Girault</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-376</link>
		<dc:creator>Emilien Girault</dc:creator>
		<pubDate>Sat, 30 Jan 2010 22:47:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-376</guid>
		<description>Le PHPSESSID est un identifiant de session généré par le serveur et stocké par le client le plus souvent sous forme de cookie. Il permet de retrouver les données de la session de l&#039;utilisateur qui sont stockées sur le serveur, donc non accessibles directement. Ce sont les données du tableau $_SESSION en PHP. Sur le serveur, ces données sont stockées dans des fichiers, généralement dans /var/lib/php5/. Leur nom est devinable en connaissant le PHPSESSID (cf ce que je dis dans l&#039;article). Et ce qu&#039;il y a de bien, c&#039;est que ces fichiers sont toujours accessibles par Apache (sinon les sessions ne peuvent pas fonctionner). 

Dans cette exploitation, on n&#039;injecte donc pas dans le PHPSESSID, mais dans les données qui vont être sauvegardées en session. Dans mon cas, il se trouve que le concepteur du site stockait le login tel quel dans la session. Il était possible d&#039;y insérer du code PHP. Ce sont donc les fichiers de session que l&#039;on va chercher à inclure en utilisant la LFI (qui reste bien une LFI, pas une RFI). Ainsi on peut exécuter le code que l&#039;on veut.

Pour sécuriser la LFI, il faut simplement éviter les appels à include()  (et autres du même genre) avec des variables directement contrôlables, à moins de faire une vérification poussée sur le fichier. Vérifier si le fichier existe sur le serveur ne suffit pas, comme on vient de le voir (c&#039;est le principe même de la LFI). Une bonne idée peut être de vérifier son extension, ou bien de s&#039;assurer qu&#039;il n&#039;est pas plus haut que souhaité dans l&#039;arborescence (filtrer les caractères / par exemple).</description>
		<content:encoded><![CDATA[<p>Le PHPSESSID est un identifiant de session généré par le serveur et stocké par le client le plus souvent sous forme de cookie. Il permet de retrouver les données de la session de l&rsquo;utilisateur qui sont stockées sur le serveur, donc non accessibles directement. Ce sont les données du tableau $_SESSION en PHP. Sur le serveur, ces données sont stockées dans des fichiers, généralement dans /var/lib/php5/. Leur nom est devinable en connaissant le PHPSESSID (cf ce que je dis dans l&rsquo;article). Et ce qu&rsquo;il y a de bien, c&rsquo;est que ces fichiers sont toujours accessibles par Apache (sinon les sessions ne peuvent pas fonctionner). </p>
<p>Dans cette exploitation, on n&rsquo;injecte donc pas dans le PHPSESSID, mais dans les données qui vont être sauvegardées en session. Dans mon cas, il se trouve que le concepteur du site stockait le login tel quel dans la session. Il était possible d&rsquo;y insérer du code PHP. Ce sont donc les fichiers de session que l&rsquo;on va chercher à inclure en utilisant la LFI (qui reste bien une LFI, pas une RFI). Ainsi on peut exécuter le code que l&rsquo;on veut.</p>
<p>Pour sécuriser la LFI, il faut simplement éviter les appels à include()  (et autres du même genre) avec des variables directement contrôlables, à moins de faire une vérification poussée sur le fichier. Vérifier si le fichier existe sur le serveur ne suffit pas, comme on vient de le voir (c&rsquo;est le principe même de la LFI). Une bonne idée peut être de vérifier son extension, ou bien de s&rsquo;assurer qu&rsquo;il n&rsquo;est pas plus haut que souhaité dans l&rsquo;arborescence (filtrer les caractères / par exemple).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : cr0t4lux</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-375</link>
		<dc:creator>cr0t4lux</dc:creator>
		<pubDate>Sat, 30 Jan 2010 12:32:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-375</guid>
		<description>Salut,

pourrais-tu m&#039;en dire plus sur l&#039;inclusion dans le phpsessid? J&#039;ai un peu de mal à imaginer une interception des requêtes pour lui balancer l&#039;adresse d&#039;une backdoor.

Apparemment, dans ton article, le site cible était vulnérable à une LFI, mais aux travers de la variable, tu lui lances une RFI non?

Un peu plus de précision sur la manière dont tu as procéder serait le bienvenue :) Ainsi que la sécu, tu peux, car sinon dans un fichier secu.php (admettons en mvc, donc appliqué directement à toutes les pages) tu devrait sécurisé phpsessid sur xss, lfi, rfi.

Meilleures salutations,

P.S: Félicitation pour l&#039;insomni&#039;hack</description>
		<content:encoded><![CDATA[<p>Salut,</p>
<p>pourrais-tu m&rsquo;en dire plus sur l&rsquo;inclusion dans le phpsessid? J&rsquo;ai un peu de mal à imaginer une interception des requêtes pour lui balancer l&rsquo;adresse d&rsquo;une backdoor.</p>
<p>Apparemment, dans ton article, le site cible était vulnérable à une LFI, mais aux travers de la variable, tu lui lances une RFI non?</p>
<p>Un peu plus de précision sur la manière dont tu as procéder serait le bienvenue <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ainsi que la sécu, tu peux, car sinon dans un fichier secu.php (admettons en mvc, donc appliqué directement à toutes les pages) tu devrait sécurisé phpsessid sur xss, lfi, rfi.</p>
<p>Meilleures salutations,</p>
<p>P.S: Félicitation pour l&rsquo;insomni&rsquo;hack</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : FlUxIuS</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-327</link>
		<dc:creator>FlUxIuS</dc:creator>
		<pubDate>Tue, 22 Sep 2009 20:01:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-327</guid>
		<description>Lool :) t&#039;as challengé le challenge lui même : ça le fou mal...

En Angleterre par contre je tombes sur un problème de sécu récurant : Robustesse des mots de passes négligée, plus récupération simple des accès PPPoA, y&#039;a de quoi ce faire plaisir + surveillance mail (j&#039;ai de jolis screenshots).

Au final =&gt; Plus rien ne me choque!</description>
		<content:encoded><![CDATA[<p>Lool <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  t&rsquo;as challengé le challenge lui même : ça le fou mal&#8230;</p>
<p>En Angleterre par contre je tombes sur un problème de sécu récurant : Robustesse des mots de passes négligée, plus récupération simple des accès PPPoA, y&rsquo;a de quoi ce faire plaisir + surveillance mail (j&rsquo;ai de jolis screenshots).</p>
<p>Au final =&gt; Plus rien ne me choque!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Heurs</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-326</link>
		<dc:creator>Heurs</dc:creator>
		<pubDate>Fri, 18 Sep 2009 18:00:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-326</guid>
		<description>Sur les serveurs LAMP ca passe pas pour l&#039;exploitation par les logs, mais sur la majorité des WAMP ca marche par contre ;-)</description>
		<content:encoded><![CDATA[<p>Sur les serveurs LAMP ca passe pas pour l&rsquo;exploitation par les logs, mais sur la majorité des WAMP ca marche par contre <img src='http://www.segmentationfault.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : virtualabs</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-325</link>
		<dc:creator>virtualabs</dc:creator>
		<pubDate>Thu, 17 Sep 2009 12:34:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-325</guid>
		<description>Ce type d&#039;exécution de code PHP est moins connu que l&#039;exécution de code par les logs (qui fonctionne même sur des systèmes autres que AMP, type Coldfusion), mais les conditions requises pour l&#039;exploitation sont plus draconniennes: emploi des sessions par le site, stockage dans les sessions de contenu non filtré (un htmlentities empêche cette exploitation), sans oublier la modification de la configuration par défaut. Cette dernière n&#039;est pas un problème si on a accès à la configuration PHP.

Tout ca pour dire que p0wner des serveurs de challenge, bah saimal. Même si la méthode pour y parvenir est quelque peu exotique.</description>
		<content:encoded><![CDATA[<p>Ce type d&rsquo;exécution de code PHP est moins connu que l&rsquo;exécution de code par les logs (qui fonctionne même sur des systèmes autres que AMP, type Coldfusion), mais les conditions requises pour l&rsquo;exploitation sont plus draconniennes: emploi des sessions par le site, stockage dans les sessions de contenu non filtré (un htmlentities empêche cette exploitation), sans oublier la modification de la configuration par défaut. Cette dernière n&rsquo;est pas un problème si on a accès à la configuration PHP.</p>
<p>Tout ca pour dire que p0wner des serveurs de challenge, bah saimal. Même si la méthode pour y parvenir est quelque peu exotique.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Yann</title>
		<link>http://www.segmentationfault.fr/securite-informatique/exploitation-de-faille-include-avec-les-sessions-php/comment-page-1/#comment-324</link>
		<dc:creator>Yann</dc:creator>
		<pubDate>Wed, 16 Sep 2009 21:36:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.segmentationfault.fr/?p=713#comment-324</guid>
		<description>Pas mal de souçis de sécu il est vrai, mais il est vrai aussi que de sécuriser 100% est très compliqué.

Enfin rapidement l&#039;openbasedir c&#039;est pas du luxe et tu n&#039;aurais pas réussi aussi facilement (même si il y a toujours moyens). Après il y a toujours moyen de mettre dans une jail le tout mais ça commence à devenir un peu plus compliqué.

Pour finir la sécurité uniquement du point de vue système n&#039;est pas la bonne solution, trop de dev le pensent, beaucoup de solution éxiste dans le code pour parer à un bon nombre d&#039;attaque (mysql_real_escape; vérif du contenu des variables; etc ...)</description>
		<content:encoded><![CDATA[<p>Pas mal de souçis de sécu il est vrai, mais il est vrai aussi que de sécuriser 100% est très compliqué.</p>
<p>Enfin rapidement l&rsquo;openbasedir c&rsquo;est pas du luxe et tu n&rsquo;aurais pas réussi aussi facilement (même si il y a toujours moyens). Après il y a toujours moyen de mettre dans une jail le tout mais ça commence à devenir un peu plus compliqué.</p>
<p>Pour finir la sécurité uniquement du point de vue système n&rsquo;est pas la bonne solution, trop de dev le pensent, beaucoup de solution éxiste dans le code pour parer à un bon nombre d&rsquo;attaque (mysql_real_escape; vérif du contenu des variables; etc &#8230;)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
