Archive pour le ‘C++’ catégorie

[PATCH] Correction du bug « Error Retrieving Directory: system:111″ de tortunnel

3 avril 2010

Plop à tous …

Aujourd’hui je publie un patch ^^ … pour le logiciel tortunnel (l’open-source ça a du bon ;) ), en effet, pour ceux qui connaissent ce soft, une erreur « Error Retrieving Directory: system:111″ est apparue depuis quelque temps, rendant le logiciel inutilisable,  ce bug vient juste du fait que « moxie » a hardcodé les IP des « tor directory » dans son logiciel, en particulier : « 128.31.0.34″ qui n’existe plus, d’où l’erreur system:111, il faut donc changer 3 fichiers (protocole/(Directory.cpp|ServerListing.cpp|ServerListingGroup.cpp)) et remplacer « 128.31.0.34″ par « 192.251.226.206″ (ou par une autre ip d’un tor directory que l’on peut trouver ici). Attention il semblerait qu’il ne soit pas possible d’utiliser le « tor directory » courant en serveur de sortie (ce qui retournerait une erreur 111, malgré l’utilisation de ce patch, donc vous ne pourrez plus utiliser : 192.251.226.206 en node de sortie)
» En lire plus:[PATCH] Correction du bug « Error Retrieving Directory: system:111″ de tortunnel

2GWVS … la béta 1 est sortie ;)

4 avril 2009

Bijour à tous …

Alors voilà, après des mois de développement  (le dépôt de google a été crée le 1 juillet 2008!!!), une première version beta est sortie (Je mettrais une archive pour windows en ligne lundi).

Cette version propose :

  • La possibilité de crawler/scanner un site ;) pour trouver :  des XSS, SQL Injection et …
  • Le moteur de reconnaissance  utilise des regexps (permettant d’évoluer facilement).
  • Les différents pattern de découvertes sont stockés dans une db sqlite (permettant une mise à jour facile).
  • Un navigateur, qui permettra de matter des sites durant le scan ^^ (merci webkit).

Les fonctions qui seront développées pour la prochaine beta :

  • Un meilleur affichage du rapport des failles/bugs trouvés. (peut être génération d’un html)
  • Un éditeur de header pour webkit (si possible, histoire de pouvoir faire tester les failles à l’utilisateur).
  • Amélioration/Nettoyage des classes (y’a pas mal de chose à revoir, certaine méthode sont dans des classes qui n’ont rien à voir avec leurs fonctions).
  • Migration sur un modèle MVC des liens et formulaires, le treeView c’est bof ^^.

En rajoutant les patterns du scanner wapiti, il sera aussi possible de détecter les includes, et files inclusions (je mettrais à jour la base de données prochainement ;) ).

Voilà, si vous avez des idées (ou du talent en C++/QT) le site du projet est là pour ça :)

Sinon, quelques screens du logiciel en fonctionnement sur un site (développé pour l’occasion avec plein de failles) :

Edyuk version 1.1.0 released

1 novembre 2008

Allez hop …

Eduyk est sortie en version 1.1.0, j’en ai profité hier soir pour faire le paquet debian.

Pour ceux qui ne savent pas ce que c’est … Edyuk est un IDE QT4, qui regroupe pas mal de fonctionnalités plutôt sympa :

  • auto-complétion (plus performante que la plupart des autres IDE C++ ^^).
  • debugger intégré
  • possibilité de design directement l’appli à la façon VS
  • ….

Pour les nouveautés :

  • Amélioration de pas mal de chose (meilleur coordination entre le debugger et le « building engine », … pour une liste plus complète cf. le site officiel).
  • Correction de quelques bugs (affichage de treeview des fichiers qui bugait, autosave … cf. le site officiel pour plus d’info).
  • Et plein de nouveautés en préparation (export en UML du projet, possibilité de diffing lors de conflit sur les fichiers en cours d’édition).

D’accord … c’était pas très exhaustif et je me suis pas foulé … j’ai passé une bonne partie de mon temps à tester QtCreator, faut avouer que les deux IDE se ressemble pas mal en terme de fonctionnalité … je subodore un plagia :p.

L’IDE officiel de QT : QtCreator ??

31 octobre 2008

Hello tous le monde …

Alors que je viens de recevoir le mail m’annonçant la sortie de Edyuk 1.1.0 (mon IDE QT favori) … je tombe sur QtCreator au détour d’un site … ce logiciel reprend un peu toutes les fonctionnalités d’Edyuk, avec une interface plus simple :

Comme vous pouvez le remarquer … y’a pas de grosse toolbar en haut, on passe par les menus de gauche pour choisir le mode (debug, edition, …).

Vous aurez sûrement remarqué sur le screen (en mode debug), que cette version apporte quelques petits plus, comme par exemple la possibilité de voir le contenu des variables (et pas leurs adresses comme sur edyuk), on a aussi accès à pas mal d’info sur l’exécution du logiciel (la description de chaque fonction, classe utilisé).

Je ne l’utilise pas encore pour dev, … Edyuk me suffit pour le moment ;) , mais l’alternative semble sympa, d’autant plus qu’elle est « sponsorisé » par QT.

Si vous voulez le télécharger, c’est par , sinon, je trouve que l’ »installer » (l’executable d’install et non l’action ;-) ) est à la fois superbof et superbien … d’un côté c’est classe, car ils fournissent toutes les librairies qu’il faut pour l’utiliser (bien que dans mon cas inutile, puisque j’ai les paquets de QT4 d’installer), d’un autre côté, un .deb aurait été sympa et permettrait de ce passer des 20 mo de lib à DL.

Mon repository … Edyuk, vidalia, w_scan, …

27 août 2008

Bijour à tous …

Suite à mon article sur l’utilisation du PPA (ok c’était un rapide « click and go tutorial » qu’il faudra que j’étoffe un peu ^^), je me suis dit que ça pouvait être sympa de mettre quelques paquets en ligne.

J’attendais de terminer le paquet pour edyuk (qui m’a prit pas mal de temps ^^), pour faire quelque lien dessus.

La ligne à ajouter dans le fichier /etc/apt/sources.list :

deb http://ppa.launchpad.net/cipher.16/ubuntu hardy main
deb-src http://ppa.launchpad.net/cipher.16/ubuntu hardy main

Les paquets contenu pour le moment :

  • vidalia : un logiciel qui facilite l’utilisation de tor, et donne plein d’information sur la connexion actuelle : la bande passante des noeuds, leurs localisation, et la possibilité de fermer les circuits.
  • w-scan : (w_scan en vrai), qui permet de scanner les canaux TNT sans données initiales.
  • edyuk : Un IDE C++/QT4 léger, puissant, qui regroupe le designer et l’assistant de QT4 dans un seul logiciel, avec plein de plugins sympa (auto complétion, debugger, …).
  • qt4-X11 : un paquet qui a été importé pour compiler le paquet Edyuk, et qui peut être utile pour ceux qui veulent passer à la version 4.4 de QT (pas dans les dépôts officiel).

J’en profite, pour dire que edyuk va passer en version 1.0.1 (version jugé stable ^^) d’ici à demain, et que peut-être il sera accepté dans les dépôts d’ubuntu … si le paquet est jugé « propre »et complet.

Parser du Html avec QTXml

22 août 2008

Bonjour à tous …

Un rapide exemple pour récupérer l’ensemble des liens d’une page web en utilisant l’objet QtXml de Qt4 … toujours mieux que d’utiliser l’objet QRegExp pour récupérer des « urls malformés ».


void crawlerXml(QString &pageWeb) {

//pageWeb ="<div><a href="url1">l</a></div>";
QDomDocument web;
web.setContent(pageWeb);//on met le contenu de la page Web
QDomNodeList nodel= web.elementsByTagName("a");//on cherche les <a>
for(int i=0;i<nodel.count();i++)
{
if(nodel.at(i).hasAttributes())//Si il y a des attributs
for(int j=0;j<nodel.at(i).attributes().count();j++)
{
if(nodel.at(i).attributes().item(j).nodeName()=="href")
{//on cherche les href et on prend leur valeurs.
QString url=nodel.at(i).attributes().item(j).nodeValue();
qDebug()<<"Url : "<<url;
}
}
}
}

Et voilà … rien de compliquer ^^.
Donc, au cas où un jour vous aurez besoin de parser du code Html, pour chercher des infos au lieu d’utiliser des QRegExp qui peuvent mener à des erreurs, cette technique est rapide, puissante et ne coûte rien niveau processeur, je l’utilise pour mon scanneur de vulnérabilité Web (qui crawl l’ensemble des pages de ce blog en moins de 2-3 minutes avec une consommation CPU<5%).

C’est à ce demander pourquoi certain projets écrit en Qt utilisent des scripts externe en python pour parser du Html (cf. QBittorrent), et qui utilise 100% du CPU!!!

Un projet de scanneur de vulnérabilités web open source

6 août 2008

Bonjour à tous …

Un petit article pour aujourd’hui : la présentation d’un de mes projets C++/QT4.

Pour le moment ça se nomme 2GWVS pour Grigis Gaetan’s Web Vulnerability Scanner (‘tain le nom ça déchire déjà!!), j’ai dit pour le moment parce que je sais pas trop quel nom donner au projet.

But du projet

Le but du projet est de créer un logiciel dans le genre d’Acunetix (pour ceux qui connaissent), qui liste l’ensemble des urls du site web, puis récupère les variables des urls et les changes pour permettre des tests, pour détecter d’eventuel vulnérabilité au SQL Injection, XSS, …

Simple exemple, imaginons l’url suivante : http://monsitepiratable/index.php?var1=id&var2=texte_lol

Le logiciel va découper les paramètres ce qui va donner var1=id et var2=texte_lol, ensuite le logiciel change le id ou le texte_lol par des codes qui pourrait mettre en valeur une vulnérabilité dans le genre injection SQL, XSS ou …

Fonctionnalités

Pour le moment le logiciel ne permet que :

  1. Le crawl complet d’un site avec la possibilité de choisir le type de crawl (par regExp ou xml pour les sites Xhtml).
  2. La possibilité d’utiliser un proxy pour le crawl (genre ratproxy) et un autre pour l’execution des « payloads » lors du scanne des vulnérabilité.
  3. La possibilité de changer son user-agent (hum hum utile?).
  4. La possibilité de charger un base de données de payloads (xd) système en cours de dév.
  5. La possibilité de scanner seulement un type de page (text/plain, text/html, …).
  6. La détection (foireuse) d’url rewriting qui peut gener les tests de vulnérabilité

Pour que le logiciel soit fonctionnel il faudrait :

  1. Revoir le système de gestion des urls crawlées (vive le franglais!), pour permettre d’executer les payloads.
  2. Imaginer un sytème d’éxecution de payloads
  3. (SECONDAIRE) revoir le code … car pour le moment, je code façon « kilométrique » … le code est crade.
  4. Améliorer l’interface, car pour le moment c’est très bof.
  5. Supporté les requetes de type POST.
  6. et plein d’autre chose.

Pourquoi un scanneur de vulnérabilités web open-source ?

Parce qu’il n’en existe pas réellement, la plupart son juste des logiciels qui regarde les numéros de version d’application genre phpbb et cherche dans leurs base de données si ce numéro de version est vulnérable, donc pour le petit webmaster qui crée sont site web, ce genre d’application est inutile.

D’autant plus que selon certaines études, 70% des sites web sur le net seraient vulnérable à diverses failles, le but de ce logiciel serait donc de permettre aux webmestres de vérifier la vulnérabilité de leurs site web au failles de type SQL Injection, XSS, failles php, … et ceci gratuitement ^^.

Location du projet

Donc voilà … si vous êtes intéressé le site du projet, le svn.

Bien entendu, si vous voulez participer, vous êtes le bienvenu.

Le petit screen pour la route ^^ :

Netbeans6 et auto-complétion QT4

19 mai 2008

Bonjour …

La méthode de la version 5 ne marchant plus … Si l’on include direct QApplication ou d’autre ça ne marche pas si l’on fait référence seulement à /usr/include/qt4/ (méthode qui fonctionnait sur l’ancienne version …).

Donc je fait un rapide billet histoire de me souvenir de la manip’ (comme je programme pas souvent en C++)…

  1. Clic droit sur le nom du projet.
  2. Properties (propriétés) puis C++ compiler et choisir le dossier d’include …

et voilà, … ça tourne impec’ :p … il en faut peu pour être heureux ;)

(Bon l’alternative aurait été de faire un include de <QTGui/QApplication> … mais bon faudrait modifier pas mal de projet pour le prendre en compte alors ;) ).