Показать сообщение отдельно
Старый 31.07.2014, 00:18   #3
dharrya
 
Аватар для dharrya
 
Регистрация: 13.12.2011
Сообщений: 21
Репутация: 20
По умолчанию

Хм, видимо и правда вышло слишком безумно:-)
Дано:
1. Типичная SSRFина. Контролируется хост и порт, есть строка без фильтрации CRLF (которая пишется в открытый поток), ответ от сервера читается и выводится пользователю. Сам "создатель" велел заиспользовать.
2. Есть Memcached сервер, с известным адресом и портом (в примерах это target:11211). Больше ничего интересного нет.
3. Есть фильтрация порта 11211:
Цитата:
Окончательная фильтрация порта работает так:
1. Сначала делается конкатенация, потом парсится. Сделано копипастой из php, не подкопаться.
2. Проверяются границы port > 0 && port < 65535
3. Порт сверяется со списком запрещенных
Нужно достучаться до memcached. Любопытен именно этот конкретный кейс.

Цитата:
а если только порт, то покажите сначала свои 2 варианта, а потом уже требуйте новых
Я же показывал в топике, видимо не достаточно выделил? Вот они:
PHP код:
fsockopen("target:11211blahblah"80); // Оказалось в "SSRF bible. Cheatsheet" уже описали этот вариант:-)
fsockopen("target"11211 65536); 
Именно благодаря ним фильтрация стала такой какой стала, изначально (как я и писал в посте) проверялся только $port. Теперь ищу другие варианты обхода.
Цитата:
Почему безумном? Потому что, если вы еще и $host контролируете, то порт вам откровенно похуй, ибо:

https://rdot.org/forum/showpost.php?p=31357&postcount=70
Хмм...ээээ...не увидел никакой связи с моим кейсом:-)

P.S. Так менее безумно?:-)

Последний раз редактировалось dharrya; 31.07.2014 в 00:26..
dharrya вне форума   Ответить с цитированием