Malas Expresiones Regulares en Origen
Explotar bad regex en CORS origin es una técnica que involucra aprovecharse de los patrones de regex pobres usados por las aplicaciones web para validar el CORS. Por ejemplo, el código de http://corssop.thm/badregex.php:
if (isset($_SERVER['HTTP_ORIGIN']) && preg_match('#corssop.thm#', $_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: ".$_SERVER['HTTP_ORIGIN'].""); header('Access-Control-Allow-Credentials: true'); }
Este código implementa una política CORS débil ya que valida dominios que contienen corssop.thm. Un atacante puede usar un origen como http://corssop.thm.evilcors.thm, el cual coincide con la regex.

Podemos reutilizar el código de exploit usado antes para explotar el código vulnerable de arriba. Simplemente cambia el objetivo URL a http://corssop.thm/badregex.php. El código de exploit puede bypassear el CORS ya que está hosteado en http://corssop.thmevilcors.thm.

Una vez hecho haz click en Save. Para verificar que funciona haz click en View exploit. Esto abrirá una nueva pestaña que contenga el código de exploit guardado en el servidor.
En la pestaña nueva, abre las herramientas de desarrollador y ve a Network. Debería haber dos conexiones XHR. La primera petición es mandada al sitio web objetivo (badregex.php), mientras que la segunda se manda al servidor exfiltrante.

Ahora puedes darle a Send to victim.
Para comprobar si ha funcionado, comprueba los logs haciendo click en el botón Logs.

En el servidor deberías recibir una petición POST con los datos de la víctima, abre data.txt:

Esto es lo que ocurre:

