Смотрим код, видим ручку /secret
и конструкцию с помощью которой мы можем получить флаг:if request.remote_addr == '127.0.0.1':
. На этом моменте понимаем что надо проэксплойтить SSRF, если просто набрать
URL http://127.0.0.1/secret в наш прокси, то срабатывает проверка safeurl и нас не пускают:(
Однако, в настройке safeurl есть такая строчка opt.enableFollowLocation().setFollowLocationLimit(0)
. Эта строчка запрещает проверять куда редиректит ссылка. То есть safeurl проверяет только то, что мы вводим
и не проверяет то, куда следует эта ссылка. Гуглим любой сокращатель ссылок, и туда вставляем http://127.0.0.1/secret. Получаем ссылку вида http://goo.su/u95xzm, которая редиректит на http://127.0.0.1/secret.
Вставляем ее в наш прокси и получаем флаг.
kxctf{h@h@_h0w_d1d_u_d0_th1s}