• STATISTIQUES
  • Il y a eu un total de 0 membres et 47571 visiteurs sur le site dans les dernières 24h pour un total de 47 571 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
MyBB 1.6.10 Bypass CSRF Protection
23-08-2013, 14h07
Message : #1
0pc0deFR
Non-enregistré



 
MyBB 1.6.10 Bypass CSRF Protection
Je continu dans la lancé des défauts de sécurité MyBB. Nous travaillons sur la version 1.6.10 qui est la dernière version actuellement.

La vulnérabilité a été testé sur le panel d'administration. La page http://server/MyBB/admin/index.php?actio...e0a39c46e5 permet de déconnecter l'utilisateur pour peu que my_post_key corresponde à my_post_key de l'utilisateur demandant la page (et donc l'utilisateur doit être connecté). A savoir que cette key ne change pas à chaque connexion (testé sur plusieurs machines et plusieurs comptes) et est unique à chaque utilisateur.

Admettons la key 527a58366ce545e1635be9e0a39c46e5 pour le compte admin1 et la key e8bfb94fa38932bc756601c6fae90708 pour admin2.

Si j'essaye de déconnecter l'utilisateur admin2 avec la key de admin1 MyBB plante. C'est là que c'est intéressant.

Avec du javascript et de l'AJAX exécuté sur le navigateur de l'administrateur ciblé (type CSRF), il est possible de faire un brute force pour trouver la key my_post_key.

Quel intérêt une fois la valeur my_post_key trouvé?
my_post_key est la valeur de sécurisation des formulaires MyBB sur le panel administrateur. L'anti-CSRF en somme. Il est donc possible de contourner la protection CSRF avec la valeur de my_post_key et donc d'expoiter une CSRF avec les techniques basiques d'exploitation.

En soit c'est très difficile d'exploitation car il faut énormément de ressources pour faire un brute force de ce type car ce n'est pas une petite chaîne qui est recherchée mais une chaîne de 32 caractères (un MD5) mais ça à le mérite d'être une vulnérabilité et surtout pour vos sites perso, faites attention à ça.
positive (1) negative (0) Répondre
23-08-2013, 14h30
Message : #2
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: MyBB 1.6.10 Bypass CSRF Protection
Brute-forcer 128 bits en ligne...
Je ne suis même pas sûr que, pour l'instant, quelqu'un ait déjà réussi à trouver une collision md5 avec le pigeonhole principle (calculer plus de 2^128 hashs)...
When in doubt. Use brute force.
+1 (0) -1 (0) Répondre
24-08-2013, 01h15
Message : #3
notfound Hors ligne
#!/usr/bin/env bash
*



Messages : 687
Sujets : 47
Points: 271
Inscription : Sep 2012
RE: MyBB 1.6.10 Bypass CSRF Protection
(23-08-2013, 14h30)Luxerails a écrit : Brute-forcer 128 bits en ligne...
Je ne suis même pas sûr que, pour l'instant, quelqu'un ait déjà réussi à trouver une collision md5 avec le pigeonhole principle (calculer plus de 2^128 hashs)...

Citation :When in doubt. Use brute force.

Big Grin
+1 (0) -1 (0) Répondre
24-08-2013, 08h26
Message : #4
0pc0deFR
Non-enregistré



 
RE: MyBB 1.6.10 Bypass CSRF Protection
La pour le coup ce n'est pas exploitable, c'est vrai (comme précisé sur le premier post) mais c'est le principe qui est intéressant. On pourrait imaginer la même vulnérabilité sur un site X ou Y avec une valeur de sécurisation de quelques caractères (par exemple 4, 5 ou 6) et là ça devient plus facilement exploitable.
positive (0) negative (0) Répondre
24-08-2013, 14h00
Message : #5
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: MyBB 1.6.10 Bypass CSRF Protection
Bof bof... je vois pas trop où est la faille, c'est tout à fait normal. Tu ne peux pas brute-forcer 128 bits, et encore moins en ligne. Et je doute qu'il existe des anti-csrf à 4 caractères, ça n'a aucun intérêt (ou alors c'est créé exprès pour le brute-force). Et puis dans tous les cas, le brute-force online, c'est chiant, et c'est super lent. C'est comme si je disais "olala, y'a une faille dans n-pn, si on brute-force le password d'un admin et ben on peut trouver son password peut-être, c'est super facile si le password fait 4 caractères"

Citation :A savoir que cette key ne change pas à chaque connexion (testé sur plusieurs machines et plusieurs comptes) et est unique à chaque utilisateur.

Ça c'est plus intéressant : comment est générée cette clé ?
When in doubt. Use brute force.
+1 (3) -1 (0) Répondre
24-08-2013, 14h32
Message : #6
0pc0deFR
Non-enregistré



 
RE: MyBB 1.6.10 Bypass CSRF Protection
Je suis d'accord avec toi sur le fait que ce n'est pas faisable en l'état mais c'est le concept qui est intéressant. Des anti-CSRF de quelques caractères ça doit exister mais en sois ce que je veux démontrer c'est que ce n'est pas une bonne idée de transmettre une clé de protection de cette manière alors qu'elle pourrait être traité directement dans le PHP sans la transmettre et la rendre modifiable par l'utilisateur.

Pour le principe de génération, je me suis dit la même chose mais je n'ai pas encore pris le temps de regarder ça. Je vais essayer de voir ça pendant ce WE.
positive (0) negative (0) Répondre
24-08-2013, 16h30
Message : #7
b0fh Hors ligne
Membre actif
*



Messages : 210
Sujets : 17
Points: 309
Inscription : Jul 2012
RE: MyBB 1.6.10 Bypass CSRF Protection
Et tu nous explique comment ta clef va protéger contre les CSRF, si on la "laisse dans PHP" et qu'on n'exige pas de l'utilisateur qu'il la transmette à chaque requête ?
+1 (1) -1 (0) Répondre
24-08-2013, 16h55
Message : #8
0pc0deFR
Non-enregistré



 
RE: MyBB 1.6.10 Bypass CSRF Protection
Effectivement, vous avez tout à fait raison. b0fh, tu viens de me faire réfléchir pendant 10 bonne minutes car je pensais le défaut dans le fait que la clé soit transmise par une requête GET car modifiable via de l'AJAX mais au final c'est la même chose avec une requête POST. Dans tout les cas il est possible de bypass avec la technique exposé dans le premier post du thread, la seul vraie sécurité que je vois donc, c'est comme l'a évoqué Luxerails, la longueur de la clé qui rend le brute-force inefficace et le système de génération fiable. La je vous dis merci Smile
positive (0) negative (0) Répondre
24-08-2013, 18h54
Message : #9
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: MyBB 1.6.10 Bypass CSRF Protection
de là à dire qu'on parle de rien depuis le début...
+1 (0) -1 (0) Répondre
27-08-2013, 13h11 (Modification du message : 27-08-2013, 13h12 par kallimero.)
Message : #10
kallimero Hors ligne
Imbécile heureux
*



Messages : 37
Sujets : 2
Points: 4
Inscription : Aug 2011
RE: MyBB 1.6.10 Bypass CSRF Protection
Avec un peu d'ingénierie sociale, et pourquoi pas de clickjacking on peut réussir à obtenir ce jeton sans trop de problèmes.

Faisons l'hypothèse tout à fait farfelue que nous nous attaquons à un forum de sécurité informatique. En offrant, par exemple, à l'administrateur le lien d'un simulacre de PoC sur son browser, il peut se prendre au jeu et on peut alors l'amener à réaliser des actions qui mènent à l'obtention du jeton, et à la réalisation d'un exploit CSRF.

Puisque je n'ai pas grand chose à faire de mes journées, un exemple en vidéo ; http://www.dailymotion.com/video/x13qlkq...ample_tech

Bien sûr, ça reste une pseudo-vulnérabilité qui nécéssite pas mal d'interractions utilisateur, mais les développeurs auraient facilement pus l'éviter.

Ici le fonctionnement est très simple. Une iframe en opacity:0; avec, juste en dessous de l'endroit du logout, un faux lien.
Ainsi lorsqu'il copie l'adresse du lien il copie enfaite l'adresse du logout qui contient la post_key.
Ensuite, avec un champs texte qui possède le focus en continu, on récupère le lien quand la "victime" fait son ctrl+V.
Et on génère rapidement un formulaire d'ajout d'administrateur qu'on envoit aussitôt.

Très simple, très sale. Tout ce que j'aime.
Le code, pour les quelques clampins intéréssés ; http://pastie.org/pastes/8273633/text?ke...6hcmdn0maw
(vous comprendrez facilement que je suis faché avec javascript depuis quelques décénnies).
Le code est optimisé pour firefox 23.0.1, et fonctionne miraculeusement bien sous mon 15".
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Mybb editpost.php Yuri 2 204 23-08-2013, 13h49
Dernier message: Yuri
  FPD sur MyBB 1.6.8 et supérieur InstinctHack 3 237 22-08-2013, 23h13
Dernier message: Di0Sasm
  Bypass filtre SQL MLT 1 130 05-02-2013, 13h20
Dernier message: Sh4dows
  shoutbox mybb InFamouZz 8 426 14-01-2013, 23h22
Dernier message: InFamouZz

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut