<?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>Debian or not to be ? 2.0 &#187; Code</title> <atom:link href="http://www.crashdump.fr/category/coding/feed/" rel="self" type="application/rss+xml" /><link>http://www.crashdump.fr</link> <description>that is the question</description> <lastBuildDate>Thu, 19 Aug 2010 09:32:04 +0000</lastBuildDate> <language>fr</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>Tips: Serveur web d&#8217;urgence avec Netcat</title><link>http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/</link> <comments>http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/#comments</comments> <pubDate>Mon, 03 May 2010 12:57:44 +0000</pubDate> <dc:creator>Adri</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[Réseaux]]></category> <category><![CDATA[Tutoriels Linux]]></category> <category><![CDATA[iNet]]></category><guid isPermaLink="false">https://www.crashdump.fr/?p=832</guid> <description><![CDATA[Il peut arriver que l'on ait ponctuellement besoin de p [...]]]></description> <content:encoded><![CDATA[<p><em>Il peut arriver que l&#8217;on ait ponctuellement besoin de publier un fichier html/txt en http sur une machine.. Pour ça inutile d&#8217;installer un serveur web lourd comme apache. Je vous avais déjà parlé du <a href="http://www.crashdump.fr/reseaux/serveur-http-python-en-une-ligne-649/">serveur web en python en une ligne</a>, cette fois on remet ça, mais avec NC:</em></p><p><code class="prettyprint">$ while true; do nc -l -p 8080 < index.html; done</code></p><p>(attention, la version BSD de Netcat diffère au niveau des arguments, pour la même chose il faut supprimer le "-p"):</p><p>Les requêtes de votre navigateur seront renvoyées vers le stdout:<br /> <code class="prettyprint">GET / HTTP/1.1<br /> Host: 127.0.0.1:8080<br /> Connection: keep-alive<br /> User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_2; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.5 Safari/533.2<br /> Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5<br /> Accept-Encoding: gzip,deflate,sdch<br /> Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4<br /> Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3</code></p><p>On peut ensuite faire ce que l'on veut avec - comme simple limite - son imagination ! Exemple:</p><p><code class="prettyprint">$ while true; do echo "< pre>$(ps aux)< /pre>" | nc -l 8080; done</code></p><p><strong>Possibly Related Posts:</strong></p><ul><li><a href="http://www.crashdump.fr/tutoriels/tips-man-pages-en-couleurs-812/">Tips: Man pages en couleurs&#8230;</a></li><li><a href="http://www.crashdump.fr/tutoriels/load-balancing-avec-vyatta-725/">Du load-balancing avec vyatta</a></li><li><a href="http://www.crashdump.fr/tutoriels/effacer-definivement-toutes-les-donnees-dun-disque-dur-sous-nux-677/">Effacer définitivement les données d&#8217;un disque dur sous *nux (dd, zero, random)</a></li><li><a href="http://www.crashdump.fr/securite/arp-spoofing-arp-cache-poisoning-59/">ARP Spoofing (ARP Cache poisoning)</a></li><li><a href="http://www.crashdump.fr/reseaux/serveur-http-python-en-une-ligne-649/">Serveur HTTP Python en une ligne..</a></li></ul><br /> ]]></content:encoded> <wfw:commentRss>http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Serveur HTTP Python en une ligne..</title><link>http://www.crashdump.fr/reseaux/serveur-http-python-en-une-ligne-649/</link> <comments>http://www.crashdump.fr/reseaux/serveur-http-python-en-une-ligne-649/#comments</comments> <pubDate>Fri, 24 Apr 2009 22:21:29 +0000</pubDate> <dc:creator>Adri</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[Réseaux]]></category> <category><![CDATA[Astuce]]></category> <category><![CDATA[chrooté]]></category> <category><![CDATA[code]]></category> <category><![CDATA[Html]]></category> <category><![CDATA[http]]></category> <category><![CDATA[python]]></category> <category><![CDATA[serveur]]></category> <category><![CDATA[serveur web]]></category> <category><![CDATA[SimpleHTTPServer]]></category> <category><![CDATA[stdout]]></category><guid isPermaLink="false">http://www.crashdump.fr/?p=649</guid> <description><![CDATA[Un "irc friend" - fo0 en l'occurrence - m'as demandé r [...]]]></description> <content:encoded><![CDATA[<p>Un &laquo;&nbsp;irc friend&nbsp;&raquo; &#8211; <a href="irc://irc.europnet.org/informatique">fo0</a> en l&#8217;occurrence &#8211; m&#8217;as demandé récemment comment comment créer un petit serveur web en python, rapidement pour pouvoir partager ponctuellement des fichiers &#038; tester du dev. Et bien c&#8217;est  faisable en une courte ligne:</p><p><code class="prettyprint">python -c 'import SimpleHTTPServer;SimpleHTTPServer.test()'</code></p><p>Ca lance un petit serveur http sur le port 8000, partageant les fichiers du répertoire courant. Pointez vôtre navigateur sur http://127.0.0.1:8000/ et vous servira le fichier index.html si il existe, sinon il listera le répertoire courant. Et il bavera toutes les infos sur le stdout, exemple:</p><p><code class="prettyprint">$ python -c 'import SimpleHTTPServer;SimpleHTTPServer.test()'<br /> Serving HTTP on 0.0.0.0 port 8000 ...<br /> localhost - - [25/Apr/2009 00:01:27] "GET / HTTP/1.1" 200 -<br /> localhost - - [25/Apr/2009 00:01:38] "GET /Documents/ HTTP/1.1" 200 -<br /> localhost - - [25/Apr/2009 00:01:44] "GET /Documents/test.txt HTTP/1.1" 200 -</code></p><p>De plus il est &laquo;&nbsp;chrooté&nbsp;&raquo; au répertoire dans lequel vous l&#8217;aurez lancé &#8211; essayer d&#8217;accéder a http://127.0.0.1:8000/../ vous laissera dans le répertoire courant.</p><p>Voilà pour la petite astuce du soir..</p><p>EDIT: Vu sur <a href="http://www.tux-planet.fr" rel="nofollow">http://www.tux-planet.fr</a>, une version encore plus simple:</p><p><code class="prettyprint">python -m SimpleHTTPServer</code></p><p>EDIT2: Voici une version multithreadé et pas beaucoup plus compliquée:<br /> <code class="prettyprint">#!/usr/bin/env python<br /> # -*- coding: utf-8 -*-<br /> import SocketServer<br /> import BaseHTTPServer<br /> import sys, os<br /> import CGIHTTPServer<br /> port = 8000<br /> class ThreadingCGIServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):<br /> pass<br /> server = ThreadingCGIServer(('', port), CGIHTTPServer.CGIHTTPRequestHandler)<br /> print "Serveur demarre sur le port %s." % port<br /> try:<br /> while 1:<br /> sys.stdout.flush()<br /> server.handle_request()<br /> except KeyboardInterrupt:<br /> print "Fini !"</code></p><p><strong>Possibly Related Posts:</strong></p><ul><li><a href="http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/">Tips: Serveur web d&#8217;urgence avec Netcat</a></li><li><a href="http://www.crashdump.fr/tutoriels/load-balancing-avec-vyatta-725/">Du load-balancing avec vyatta</a></li><li><a href="http://www.crashdump.fr/securite/arp-spoofing-arp-cache-poisoning-59/">ARP Spoofing (ARP Cache poisoning)</a></li><li><a href="http://www.crashdump.fr/securite/hackthissiteorg-howto-519/">HackThisSite.org Basic Howto: 1 à 10</a></li><li><a href="http://www.crashdump.fr/tutoriels/serveur-x-distant-sur-mac-freenx-431/">Serveur X distant sur Mac (FreeNX)</a></li></ul><br /> ]]></content:encoded> <wfw:commentRss>http://www.crashdump.fr/reseaux/serveur-http-python-en-une-ligne-649/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>HackThisSite.org Basic Howto: 1 à 10</title><link>http://www.crashdump.fr/securite/hackthissiteorg-howto-519/</link> <comments>http://www.crashdump.fr/securite/hackthissiteorg-howto-519/#comments</comments> <pubDate>Fri, 10 Apr 2009 13:04:09 +0000</pubDate> <dc:creator>Adri</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[Réseaux]]></category> <category><![CDATA[Sécurité]]></category> <category><![CDATA[iNet]]></category> <category><![CDATA[basic mission]]></category> <category><![CDATA[Common]]></category> <category><![CDATA[defis]]></category> <category><![CDATA[Encore]]></category> <category><![CDATA[exploit]]></category> <category><![CDATA[hack]]></category> <category><![CDATA[hack this site]]></category> <category><![CDATA[HackThisSite.org]]></category> <category><![CDATA[tutoriel]]></category><guid isPermaLink="false">http://www.crashdump.fr/?p=519</guid> <description><![CDATA[Il y a des jours, ou, on se fait un peu plus chier que  [...]]]></description> <content:encoded><![CDATA[<p><em>Il y a des jours, ou, on se fait un peu plus chier que d&#8217;autres.. En bon geek j&#8217;ai occupé mon temps en surf sur le net et je suis tombé sur ça: </em><a href="http://www.hackthissite.org/"><em>http://www.hackthissite.com</em></a><em>. Il ne sagit pas là d&#8217;une provocation pure et simple mais d&#8217;un site qui propose des défis de h4x0r. Je n&#8217;ai eu &#8211; pour l&#8217;instant &#8211; que l&#8217;occasion de réaliser la partie &laquo;&nbsp;Basic Missons&nbsp;&raquo; (les 10 épreuves) et je vais essayer de toutes vous les expliquer ici. Sans plus attendre voici les solutions.</em></p><p><strong>Avant tout, il vous faudra le navigateur  au renard a la queue flamboyante avec quelques une des extensions disponibles: &laquo;&nbsp;</strong><a href="http://www.mozilla-europe.org/fr/firefox/"><strong>Firefox</strong></a><strong>&laquo;&nbsp;, &laquo;&nbsp;</strong><a href="https://addons.mozilla.org/en-US/firefox/addon/1843"><strong>Firebug</strong></a><strong>&nbsp;&raquo; et &laquo;&nbsp;</strong><a href="https://addons.mozilla.org/fr/firefox/addon/6683"><strong>FireCookies</strong></a><strong>&laquo;&nbsp;.</strong></p><p><em></em></p><h2><span style="text-decoration: underline;">Basic 1</span>: &laquo;&nbsp;Basic test of your skills to see if you can do any of these missions. Requirements: HTML.&nbsp;&raquo;</h2><p>La première mission est vraiment très très simple, il suffit d&#8217;aller plonger dans le code source pour y trouver le mot de passe: faites un clic droit et &laquo;&nbsp;View page source&nbsp;&raquo; (ou &laquo;&nbsp;Inspect element&nbsp;&raquo; avec firebug) cherchez un code de la forme:</p><pre>&lt;!-- the first few levels are extremely easy: password is abcd1234 --&gt;</pre><p>Entrez le mot de passe dans le champ puis cliquez: &laquo;&nbsp;submit&nbsp;&raquo;. Bravo vous êtes un 3l1t3 h4x00r :)</p><h2><span style="text-decoration: underline;">Basic 2</span>: &laquo;&nbsp;A slightly more difficult challenge, involving an incomplete password script. Requirements: Common sense.&nbsp;&raquo;</h2><p>Deuxième mission qui on s&#8217;en doute ne va pas être vraiment plus difficile que la première. Il suffira d&#8217;être un petit peu logique.. il est dit que l&#8217;admin n&#8217;as pas uploadé le fichier contenant le mot de passe, donc: le mot de passe est&#8230; vide, quel étourdi ce sam ! Cliquez simplement sur &laquo;&nbsp;submit&nbsp;&raquo; :)</p><h2><span style="text-decoration: underline;">Basic 3</span>: &laquo;&nbsp;Some intuition is needed to find the location of the hidden password file. Requirements: Basic HTML knowledge.&nbsp;&raquo;</h2><p>Très bien, ici, Sam n&#8217;as pas oublié d&#8217;uploader le fichier contenant le mot de passe (en clair..). Comme d&#8217;habitude, avant tout, rendons nous dans la source:</p><pre>&lt;form action="/missions/basic/3/index.php" method="post"&gt;
    <strong>&lt;input type="hidden" name="file" value="password.php"&gt;</strong>
    &lt;input type="password" name="password"&gt;&lt;br /&gt;&lt;br /&gt;
    &lt;input type="submit" value="submit"&gt;</pre><p>Tiens, Sam a encore commis une boulette ! Pointez vôtre navigateur sur &laquo;&nbsp;http://www.hackthissite.org/missions/basic/3/password.php&nbsp;&raquo;, récupérez le mot de passe et next !</p><h2><span style="text-decoration: underline;">Basic 4</span>: &laquo;&nbsp;An email script has been set up, which sends the password to the administrator. Requirements: HTML knowledge, an email address.&nbsp;&raquo;</h2><p>Dans la mission 4, Sam a encore commis de belles erreurs !  Regardons directement la source:</p><pre>&lt;form action="/missions/basic/4/level4.php" method="post"&gt;
    &lt;input type="hidden" name="to" value="webmaster@hulla-balloo.com"&gt;
    &lt;input type="submit" value="Send password to Sam"&gt;
&lt;/form&gt;
&lt;form action="/missions/basic/5/index.php" method="post"&gt;
        &lt;input type="password" name="password"&gt;
        &lt;br /&gt;&lt;br /&gt;
        &lt;input type="submit" value="submit"&gt;
&lt;/form&gt;</pre><p>Comme vous pouvez le voir, il y a deux &laquo;&nbsp;forms&nbsp;&raquo;: Le premier permet d&#8217;envoyer le mot de passe sur l&#8217;adresse mail de Sam alors que le second permet l&#8217;accès quand on connais le mot de passe.</p><p>Ici encore, nous allons exploiter ce code pas très sécure pour nous faire envoyer le mot de passe en forgeant notre propre form. Pour ça, ouvrez firebug en cliquant droit sur le form, puis &laquo;&nbsp;Inspect element&nbsp;&raquo;. Maintenant changez directement l&#8217;adresse mail par la vôtre &#8211; ou changez le type du champ de <code class="prettyprint">type="hidden"</code> à <code class="prettyprint">type="text"</code>. Validez.. copiez le mot de passe, revenez en arrière et passons au challenge suivant :)</p><h2><span style="text-decoration: underline;">Basic 5</span>: &laquo;&nbsp;Similar to the previous challenge, but with some extra security measures in place. Requirements: HTML knowledge, JS or FF,  an email address.&nbsp;&raquo;</h2><p>A priori, rien de différent, on procède comme la Basic 4..</p><p>EDIT: il semble que la seule chose qui change c&#8217;est un script qui vérifie nôtre provenance avant de valider l&#8217;envoi du mail&#8230; en effet une autre solution pour le défi précédent aurais été de modifier la source de la page directement depuis une copie sur notre disque dur.</p><h2><span style="text-decoration: underline;">Basic 6</span>: &laquo;&nbsp;An encryption system has been set up, which uses an unknown algorithm to change the text given. Requirements: Persistence, some general cryptography knowledge.&nbsp;&raquo;</h2><p>J&#8217;avoue avoir un peu plus galéré sur ce défi ! C&#8217;est un sacré bond en avant que Sam nous a fait là.. En fait il ne sagit pas là d&#8217;exploit mais de cryptographie pure et simple.</p><p>Qu&#8217;avons nous ? deux formulaires et le mot de passe chiffré: Le premier permet de chiffrer un mot de passe et le deuxième d&#8217;accéder au défi suivant. Le mot de passe étant sous sa forme chiffrée, il nous faudra donc utiliser le premier script pour comprendre ou essayer d&#8217;en déduire la technique utilisée.</p><p>Essayons de chiffrer un caratère:</p><p><span style="font-family: -webkit-monospace;">1</span> nous donne: <span style="font-family: -webkit-monospace;">1</span></p><p><span style="font-family: -webkit-monospace;">1</span> donne <span style="font-family: -webkit-monospace;">1</span>. Hùùùm.. tentons quelque chose de plus long..</p><p><code class="prettyprint">11111111</code> -&gt; <code class="prettyprint">12345678</code><br /> <code class="prettyprint">22222222</code> -&gt; <code class="prettyprint">23456789</code></p><p>Nous pouvons voir ici qu&#8217;il y a incrémentation de 1 pour le second chiffre, 2 pour le troisième.. etc. Que se passe t&#8217;il quand nous allons quitter les décimaux simples ? Essayons.</p><p><code class="prettyprint">99999999</code> -&gt; <code class="prettyprint">9:;&lt;=&gt;?@</code></p><p>C&#8217;est la qu&#8217;il m&#8217;a fallu un peu de temps pour réaliser qu&#8217;il sagissait en fait de la table ASCII&#8230; en effet, sur cette table après le &laquo;&nbsp;9&#8243; nous avons &nbsp;&raquo;:&nbsp;&raquo; puis &laquo;&nbsp;;&nbsp;&raquo; puis &nbsp;&raquo;&lt;&nbsp;&raquo;, etc&#8230; <a href="http://www.crashdump.frwp-content/uploads/2009/04/ascii_table.jpg" class="broken_link">Vérifiez ici par vous même</a> :)</p><p>J&#8217;ai, comme mot de passe chiffré: <span style="font-family: -webkit-monospace;">ef6d4818</span></p><p><code class="prettyprint">e - 0 = e</code><br /> <code class="prettyprint">f - 1 = e</code><br /> <code class="prettyprint">6 - 2 = 4</code><br /> <code class="prettyprint">d - 3 = a</code><br /> <code class="prettyprint">4 - 4 = 0</code><br /> <code class="prettyprint">8 - 5 = 3</code><br /> <code class="prettyprint">l - 6 = f</code><br /> <code class="prettyprint">8 - 7 = 1</code></p><p>Le mot de passe déchiffré est donc: ee4a03f1 dans mon cas :)</p><p><strong>Basic 7: &laquo;&nbsp;The password is hidden in an unknown file, and Sam has set up a script to display a calendar. Requirements: Basic UNIX command knowledge.&nbsp;&raquo;</strong></p><p>Celui ci est vraiment très facile aussi ! Nous apprenons que Sam a crée un script qui retourne la sortie de la commande cal de linux (une aubaine pour nous!). Testons la chose.. Si nous entrons une année dans le champ il nous retourne le résultat classique de la commande cal, rien d&#8217;exceptionnel. Comment cela peut il fonctionner ? Je suppose que le contenu doit être de la forme:</p><div class="wp_syntax"><div class="code"><pre><span>print</span> `cal <span>$input</span>`;</pre></div></div><p>Une simple injection de la forme:</p><pre><span>&amp;&amp; ls</span></pre><p>Nous permet donc de lister le répertoire courant:</p><pre>.
..
level7.php
cal.pl
index.php
k1kh31b1n55h.php
perl5.8.9.core</pre><p>Il semblerais que le fichier k1kh31b1n55h.php contienne notre mot de passe. Bravo étape suivante :)</p><h2><span style="text-decoration: underline;">Basic 8</span>: &laquo;&nbsp;The password is yet again hidden in an unknown file. Sam&#8217;s daughter has begun learning <a id="KonaLink0" class="kLink" href="http://www.hackthissite.org/#" target="undefined"><span><span class="kLink">PHP</span></span></a>, and has a small script to demonstrate her knowledge. Requirements: Knowledge of SSI (dynamic html executed by the <a id="KonaLink1" class="kLink" href="http://www.hackthissite.org/#" target="undefined"><span><span class="kLink">server</span></span></a>, rather than the browser).&nbsp;&raquo;</h2><p>Sam commence a sécuriser un peu plus ses formulaire, heureusement sa petite soeur a crée un petit script qui va nous ouvrir les portes ! Essayons donc maintenant le script de Stéphanie: Ce script enregistre ce que vous avez entré dans le champ texte avec quelques informations supplémentaires (Longueur du texte.. etc). C&#8217;est a ce moment la que nous allons utiliser une injection par formulaire en utilisant, cette fois ci les SSI. (Du html dynamique, du code exécuté par le serveur.. un peu comme le php). Les SSI sont utilisée &#8211; par exemple &#8211; par apache pour inclure les headers/footers des pages qu&#8217;il génère avec l&#8217;option &laquo;&nbsp;<a href="http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html">Indexes</a>&laquo;&nbsp;.</p><p>Nous allons donc essayer d&#8217;insérer le code suivant (exec de la commande linux ls) dans le fichier généré par le script de Stéphanie:</p><pre>&lt;!--#exec cmd="ls .."--&gt;</pre><p>Et voilà le travail:</p><blockquote><pre>Hi, au12ha39vc.php index.php level8.php tmp!
Your name contains 39 characters.</pre></blockquote><p>Il ne vous reste plus qu&#8217;a consulter au12ha39vc.php pour passer au niveau suivant :)</p><h2><span style="text-decoration: underline;">Basic 9</span>: &laquo;&nbsp;The password is again hidden in an unknown file. However, the script that was previously used to find it has some limitations. Requirements: Knowledge of SSI, Unix directory structure.&nbsp;&raquo;</h2><p>Liée a la mission précédente, celle ci s&#8217;avère très simple si on prend un peu de recul&#8230; Tout d&#8217;abord nous n&#8217;avons ici que le champ texte d&#8217;entrée du mot de passe, il va donc falloir chercher ailleurs. Si nous lisons les instructions de notre ami Sam nous aprenons qu&#8217;il sagit ici encore de SSI &#8211; nous avions utilisé:</p><p><code class="prettyprint">&lt;!--#exec cmd="ls .."--&gt;</code></p><p>Donc il suffit de se rendre une mission plus tôt &#8211; retourner sur la 8, oui &#8211; et changer le path du ls pour lister ce répertoire ci.. rien de plus simple. Nous étions ici: <code class="prettyprint">/missions/basic/8/tmp/</code> et nous voulons aller là: <code class="prettyprint">/missions/basic/9/</code>, il suffira donc d&#8217;executer cette intruction ci:</p><p><code class="prettyprint">&lt;!--#exec cmd="ls ../../9"--&gt;</code></p><p>Encore une victoire pour nous.. plus que deux missions, voyons ce que Sam va nous servir.</p><h2><span style="text-decoration: underline;">Basic 10</span>: &laquo;&nbsp;This time Sam used a more temporary and &laquo;&nbsp;hidden&nbsp;&raquo; approach to authenticating users, but he didn&#8217;t think about whether or not those users knew their way around javascript&#8230;&nbsp;&raquo;</h2><p>Comme dans les missions précédentes nous sommes relativement bien guidés, il nous est dit que Sam a utilisé une méthode d&#8217;authentification cachée: de quoi penser &laquo;&nbsp;Cookies&nbsp;&raquo; ! En étudiant le code nous nous rendons compte que cette fois ci le mot de passe a été codé en dur et n&#8217;est pas accessible.</p><p>Nous allons donc analyser les cookies pour voir ce qu&#8217;il en est. Nous allons avoir besoin de &laquo;&nbsp;FireCookies&nbsp;&raquo; une extension pour Firefox qui permet de gérer les cookies (ajout/suppression/edition). Pour être le plus clair possible voici une capture d&#8217;ecran:</p><p><em><a href="http://www.crashdump.fr/wp-content/uploads/2009/03/firecookies-hackthissite.png"><img class="alignnone size-thumbnail wp-image-526" title="firecookies-hackthissite" src="http://www.crashdump.fr/wp-content/uploads/2009/03/firecookies-hackthissite-430x125.png" alt="firecookies-hackthissite" width="430" height="125" /></a></em></p><p>Vous pouvez voir une ligne “level11_authorized” changez sa valeur de “no” a “yes”, validez. BRAVO.</p><p><strong>Possibly Related Posts:</strong></p><ul><li><a href="http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/">Tips: Serveur web d&#8217;urgence avec Netcat</a></li><li><a href="http://www.crashdump.fr/tutoriels/load-balancing-avec-vyatta-725/">Du load-balancing avec vyatta</a></li><li><a href="http://www.crashdump.fr/crashdumpfr/crashdump-fr-passe-en-aes-256-703/">Crashdump.fr passe en AES-256.</a></li><li><a href="http://www.crashdump.fr/tutoriels/effacer-definivement-toutes-les-donnees-dun-disque-dur-sous-nux-677/">Effacer définitivement les données d&#8217;un disque dur sous *nux (dd, zero, random)</a></li><li><a href="http://www.crashdump.fr/securite/arp-spoofing-arp-cache-poisoning-59/">ARP Spoofing (ARP Cache poisoning)</a></li></ul><br /> ]]></content:encoded> <wfw:commentRss>http://www.crashdump.fr/securite/hackthissiteorg-howto-519/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Activer Apache2/Php5 sous Mac Os X 10.5</title><link>http://www.crashdump.fr/reseaux/activer-apache2php5-sous-mac-os-x-105-382/</link> <comments>http://www.crashdump.fr/reseaux/activer-apache2php5-sous-mac-os-x-105-382/#comments</comments> <pubDate>Wed, 10 Sep 2008 13:23:18 +0000</pubDate> <dc:creator>Adri</dc:creator> <category><![CDATA[Apple]]></category> <category><![CDATA[Code]]></category> <category><![CDATA[Réseaux]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[conf]]></category> <category><![CDATA[configuration]]></category> <category><![CDATA[configurer apache]]></category> <category><![CDATA[httpd]]></category> <category><![CDATA[index]]></category> <category><![CDATA[léopard]]></category> <category><![CDATA[php]]></category> <category><![CDATA[php 5]]></category> <category><![CDATA[site]]></category> <category><![CDATA[système]]></category> <category><![CDATA[terminal]]></category> <category><![CDATA[web]]></category> <category><![CDATA[You]]></category><guid isPermaLink="false">http://www.crashdump.fr/?p=382</guid> <description><![CDATA[Léopard intègre "d'usine" Apache 2.2.6 et Php 5, mais [...]]]></description> <content:encoded><![CDATA[<p><em>Léopard intègre &laquo;&nbsp;d&#8217;usine&nbsp;&raquo; Apache 2.2.6 et Php 5, mais ils ne sont pas activés par défaut, je vais essayer de vous expliquer comment faire pour en profiter.</em></p><li><h2>Installer apache</h2></li><p>Si vous ne l&#8217;avez pas déjà, récupérez TexteMate <a href="http://macromates.com/">ici</a> (la version d&#8217;évaluation de 30 jours fera largement l&#8217;affaire) puis dans le menu &laquo;&nbsp;Fichier&nbsp;&raquo; choisissez &laquo;&nbsp;Ouvrir&nbsp;&raquo;. Dans la fenêtre qui vous est présentée sélectionnez &laquo;&nbsp;Affichez les fichiers cachés / Show hidden files&nbsp;&raquo; et ouvrez le fichier: &laquo;&nbsp;/HD/private/etc/apache2/httpd.conf&nbsp;&raquo;.</p><p><a href="http://www.crashdump.fr/wp-content/uploads/2008/09/textedit-hiddenfiles.jpg"><img class="alignnone size-thumbnail wp-image-383" title="textedit-hiddenfiles" src="http://www.crashdump.fr/wp-content/uploads/2008/09/textedit-hiddenfiles-430x125.jpg" alt="" width="430" height="125" /></a></p><p>Voilà, nous avons ouvert le fichier de configuration de apache. Notez que &#8211; si vous faites une bêtise &#8211; il existe une copie de ce fichier dans le sous-dossier nommé &laquo;&nbsp;original&nbsp;&raquo;.<br /> Rendez-vous a la ligne 113 ( Menu &laquo;&nbsp;Navigation / Go to line&#8230;&nbsp;&raquo; ou menu &laquo;&nbsp;View / Gutter / Line numbers&nbsp;&raquo; ) et retirez le commentaire en début de ligne (#) comme dans les captures suivantes:</p><p><a href="http://www.crashdump.fr/wp-content/uploads/2008/09/textedit-editfiles.jpg"><img class="alignnone size-thumbnail wp-image-384" title="textedit-editfiles" src="http://www.crashdump.fr/wp-content/uploads/2008/09/textedit-editfiles-430x125.jpg" alt="" width="430" height="125" /></a></p><p>Ce qui peut se traduire par &laquo;&nbsp;Charger le module php5 pour apache&nbsp;&raquo;. Maintenant nous allons configurer apache pour qu&#8217;il accepte les index.php en plus des traditionnels .html. Pour cela allons à la ligne 224 et faites comme indiqué sur cette capture:</p><p><a href="http://www.crashdump.fr/wp-content/uploads/2008/09/textedit-indexphp-httpdconf.jpg"><img class="alignnone size-thumbnail wp-image-385" title="textedit-indexphp-httpdconf" src="http://www.crashdump.fr/wp-content/uploads/2008/09/textedit-indexphp-httpdconf-430x125.jpg" alt="" width="430" height="125" /></a></p><p>Ok, maintenant sauvegardez &#8211; Il vous sera sûrement demandé un mot de passe, c&#8217;est normal, c&#8217;est un fichier dont le propriétaire est le &laquo;&nbsp;root&nbsp;&raquo; &#8211; vous pouvez maintenant quitter TextMate.<br /> Nous avons fait la configuration de &laquo;&nbsp;base&nbsp;&raquo;. Si vous êtes pressé allez dans les Préférences systèmes / Partage: Désactiver et réactiver le partage web pour relancer apache avec php5.. Félicitations.</p><li><h2>Configuration de php</h2></li><p>Maintenant si vous avez un peu de temps devant vous, nous allons nous pencher sur la configuration de ce dernier: le php.ini qui n&#8217;est pas utilisé pour le moment et dans lequel nous pourrons spécifier pas mal d&#8217;options.</p><p>Ouvrez un Terminal (Applications/Utilitaires) et entrez cette ligne (ce qui aura pour but de copier le fichier php.ini.default en php.ini) &#8211; Une fois encore il vous sera demandé votre mot de passe:<br /> <code class="prettyprint">$ sudo cp /private/etc/php.ini.default /private/etc/php.ini</code></p><p>Ouvrez maintenant le php.ini avec TextEdit (de la même manière qu&#8217;avec le httpd.conf, show hidden files). Vous le trouverez dans &laquo;&nbsp;HD/private/etc/&nbsp;&raquo;.</p><p>Le fichier est plutôt bien commenté (toutes les lignes commençant par un ; est un commentaire). Mais en anglais, pour les anglophobes vous trouverez de la documentation sur <a href="http://fr.php.net/manual/fr/ini.php">fr.php.net</a>.</p><p>La première chose que je conseillerais de modifier est la gestion des erreurs: error_reporting.<br /> Le réglage par défaut (ligne 305) est:<br /> <code class="prettyprint">error_reporting = E_ALL &amp; ~E_NOTICE</code></p><p>Ce qui aura pour effet d&#8217;afficher seulement les erreurs Php les plus graves, si ce serveur vous sert uniquement pour la &laquo;&nbsp;production&nbsp;&raquo; il est judicieux de le laisser ainsi. Mais si vous en avez un usage développement vous devriez la modifier comme ça (pour éliminer toutes les erreurs de votre code):<br /> <code class="prettyprint">error_reporting = E_ALL</code></p><p>Quand vous aurez fini vos modifications, sauvegardez et allez dans vos préférences système pour relancer apache en cliquant sur &laquo;&nbsp;Partage web&nbsp;&raquo;. Important: si la case est déjà cochée veillez à la décocher puis à la sélectionner à nouveau pour relancer Apache sinon vos modification de ne serais pas prises en compte..</p><p>Cliquez sur le lien &laquo;&nbsp;Votre site web personnel&nbsp;&raquo; ce qui lancera votre navigateur préféré qui affichera la page contenue dans le dossier &laquo;&nbsp;Sites&nbsp;&raquo; de votre répertoire Personnel. ex: /Users/~crashdump/Sites/ pour moi.</p><p>Rendez vous dans ce répertoire supprimez les fichiers qu&#8217;il contient (index.html..) et créez y un fichier index.php avec le code suivant à l&#8217;intérieur:<br /> <code class="prettyprint">&lt;?php phpinfo(); ?&gt;</code></p><p>Sauvegardez et actualisez le navigateur.. Félicitions (oui, encore) ça fonctionne.</p><p><a href="http://www.crashdump.fr/wp-content/uploads/2008/09/safari-phpmac.jpg"><img class="alignnone size-thumbnail wp-image-386" title="safari-phpmac" src="http://www.crashdump.fr/wp-content/uploads/2008/09/safari-phpmac-430x125.jpg" alt="" width="430" height="125" /></a></p><li><h2>Problèmes recontrés</h2></li><p>Si vous avez fait une mise à jour de Léopard depuis une version précédente 1.x.x vous pouvez rencontrer un problème avec l&#8217;accès a vos pages personnelles (par exemple: &laquo;&nbsp;Forbiden, You don&#8217;t have permission to access /~user on this server.&nbsp;&raquo;) pour régler cela une petite manipulation est nécessaire, car des fichiers indispensables au bon fonctionnement de la chose sont manquants.</p><p>Ouvrez un Terminal:<br /> <code class="prettyprint">$ cd /private/etc/httpd/users<br /> $ ls</code></p><p>Vous devriez voir un fichier de la forme: votreLogin.conf, par exemple chez moi il s&#8217;appelle crashdump.conf, nous allons donc les copier dans le répertoire aproprié:<br /> <code class="prettyprint">$ sudo cp *.conf /private/etc/apache2/users</code></p><p>Redémarrez apache à nouveau, (Préférences système, partage..) tout devrait fonctionner maintenant. Vous pouvez aussi avoir des informations sur les erreurs potentielles en tapant:<br /> <code class="prettyprint">$ tail -n 30 /var/log/apache2/error_log</code></p><p><strong>Possibly Related Posts:</strong></p><ul><li><a href="http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/">Tips: Serveur web d&#8217;urgence avec Netcat</a></li><li><a href="http://www.crashdump.fr/apple/creer-un-ramdisk-sous-os-x-757/">Créer un RamDisk sous OS X</a></li><li><a href="http://www.crashdump.fr/apple/ecid-ibec-ibss-grabber-for-mac-732/">ECiD/ iBEC &#038; iBSS Grabber for Mac</a></li><li><a href="http://www.crashdump.fr/tutoriels/load-balancing-avec-vyatta-725/">Du load-balancing avec vyatta</a></li><li><a href="http://www.crashdump.fr/securite/arp-spoofing-arp-cache-poisoning-59/">ARP Spoofing (ARP Cache poisoning)</a></li></ul><br /> ]]></content:encoded> <wfw:commentRss>http://www.crashdump.fr/reseaux/activer-apache2php5-sous-mac-os-x-105-382/feed/</wfw:commentRss> <slash:comments>21</slash:comments> </item> <item><title>Optimiser votre base de donnée mysql ?</title><link>http://www.crashdump.fr/coding/optimiser-votre-base-de-donnee-mysql-131/</link> <comments>http://www.crashdump.fr/coding/optimiser-votre-base-de-donnee-mysql-131/#comments</comments> <pubDate>Fri, 09 May 2008 16:36:15 +0000</pubDate> <dc:creator>Adri</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[optimisation]]></category> <category><![CDATA[php]]></category> <category><![CDATA[script]]></category> <category><![CDATA[tables]]></category><guid isPermaLink="false">http://blog.crashdump.fr/?p=131</guid> <description><![CDATA[Nous allons voir ici ce qu'est l'optimisation d'une BDD [...]]]></description> <content:encoded><![CDATA[<p><em>Nous allons voir ici ce qu&#8217;est l&#8217;optimisation d&#8217;une BDD Mysql (MyISAM). Je vous fourni même a la fin, un petit bout de code en php pour réaliser cette optimisation régulierement.. :)</em></p><h2><li>C&#8217;est quoi ?</li></h2><p>Le type de table par défaut de MySQL est MyISAM (Table non transactionnelle: une base de type non transactionnelle lorsqu&#8217;une erreur se produit, exécute tout ce qui se trouvait avant l&#8217;erreur a l&#8217;inverse de la table transactionnelle). Un système très performant, oui, mais qui laisse parfois a désirer quand a la fragmentation &#8211; il lui arrive de laisser trainer des morceaux a droite et a gauche. Oui, ils sont infimes et peut nombreux.. n&#8217;empêche qu&#8217;a force de requêtes (suppression, modification &#8230;), il reste des fois des &laquo;&nbsp;débris&nbsp;&raquo; de donnée qui trainent par ci par là dans la table.</p><p>Il faut donc ranger tout ça parfois ! Inutile de le faire tous les jours, sauf bien sur si votre site a un trafic incroyablement développé.. Personnellement je l&#8217;effectue toutes les semaines.</p><h2><li>Ok, on fait comment ?</li></h2><p>Bêtement en executant cette instruction mysql:<span id="more-131"></span><br /> <code class="prettyprint">> OPTIMIZE TABLE `unetable`, `uneautretable`</code></p><p>La je suppose que vous vous demandez combien de temps cela va prendre de taper les instructions pour vos 30 tables.. j&#8217;ai eu la même réaction. Voici donc, pour vous mon script d&#8217;optimisation en php:</p><p><code class="prettyprint"><?php<br /> $link = mysql_connect('localhost', 'root', 'motdepasse');<br /> ?><br /><html><br /> Selectionnez la base a optimiser:</p><form action="#" method="post"> <select name="base"> <?php<br /> $db_list = mysql_list_dbs($link);<br /> while ($row = mysql_fetch_object($db_list))<br /> {<br /> echo '<br /><option value="'.$row->Database.'">'.$row->Database.'</option><p>';<br /> }<br /> ?><br /> </select> <input type="submit" value="Envoyer"></form><p><?php<br /> if(isset($_POST["base"]))<br /> {<br /> $table = mysql_list_tables($_POST["base"]);<br /> //on prépare la requête<br /> $sql = "OPTIMIZE TABLE ";<br /> //on recherche toutes les données des tables<br /> $req = mysql_query('SHOW TABLE STATUS');<br /> while($data = mysql_fetch_assoc($req))<br /> {<br /> //on regarde seulement les tables qui affichent des pertes<br /> if($data['Data_free'] > 0)<br /> {<br /> //et on l'inclut si elle comporte des pertes<br /> $sql .= '`'.$data['Name'].'`, ';<br /> }<br /> }<br /> //on enlève le ', ' de trop<br /> $sql = substr($sql, 0, (strlen($sql)-2));<br /> //et on optimise<br /> mysql_query($sql);<br /> echo 'Optimisation de '.$_POST["base"].' terminée..';<br /> mysql_close();<br /> }<br /> ?><br /></html></code></p><p>Bonne optimisation ;)</p><p><strong>Possibly Related Posts:</strong></p><ul><li><a href="http://www.crashdump.fr/tutoriels/tips-serveur-web-durgence-avec-netcat-832/">Tips: Serveur web d&#8217;urgence avec Netcat</a></li><li><a href="http://www.crashdump.fr/reseaux/serveur-http-python-en-une-ligne-649/">Serveur HTTP Python en une ligne..</a></li><li><a href="http://www.crashdump.fr/securite/hackthissiteorg-howto-519/">HackThisSite.org Basic Howto: 1 à 10</a></li><li><a href="http://www.crashdump.fr/reseaux/activer-apache2php5-sous-mac-os-x-105-382/">Activer Apache2/Php5 sous Mac Os X 10.5</a></li></ul><br /> ]]></content:encoded> <wfw:commentRss>http://www.crashdump.fr/coding/optimiser-votre-base-de-donnee-mysql-131/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk
Database Caching 12/38 queries in 0.008 seconds using disk

Served from: www.crashdump.fr @ 2010-09-10 10:55:42 -->