Просмотр полной версии : Task #6
https://i.imgur.com/cmmvX0b.png
Приветствую .
@SkillProgrammer (https://antichat.live/members/309759/) не знает покоя! На этот раз, он разработал систему управления сетевой инфраструктурой, которая необходима нашему заказчику. Предлагаю тебе самому ознакомиться с деталями:
Привет!
Помнится ты говорил, что вашим ребятам любые орехи по зубам. Так вот, появился тут на горизонте чувак, прогер, понтов гнал, ууу, ужас. Разработал он якобы некую систему управления, непрерывная интеграция там, сбор и анализ данных с хостов, система чтения/отправки сообщений и другой полезный функционал. Наш главный заинтересовался, говорит нужно глянуть сорцы, что да как. Ну ты знаешь, он добра не забывает
Начали пробивать, прогер чистый, следов в сети по минимуму. Волею судеб, сконтачились с одним чуваком из его тимы, загнали пару шекелей и он, всё что знал по этому проекту, слил.
Короче, висит dev версия системы где-то на его хосте с бложеком, точнее на 94.X5Y.X5Y.96. Некоторые цифры покромсало, т.к. во время переписки пошли какие-то лаги, после чего он, стукачёк, пропал
Успел сказать ещё, что Skill этот, тот ещё маньяк и в поделки свои флаги вставляет, типа игра с хакерами, дебил. Всего 5 флагов вида {skl_*}, идут по порядку, так что думаю поможет держать направление, не ошибётесь. Ну и что-то про ловушки говорил ещё, отвлечение внимания и тому подобная фигня, сами там по месту разберётесь в общем.
На всё про всё, есть две недели, но я думаю ваши ребята быстрее сделают. Всё, до связи, жду хороших новостей
C ув. DarkHat
Если аббревиатуры и термины вида: Shell Upload, Code/Command Execution, OOB, File Disclosure, SSRF, LFI, Social Engineering, для тебя не просто набор букв, тогда вперёд !
Все вопросы связанные с заданием, оставлять в этой теме. Флаги и способы их получения (!), по мере прохождения, слать мне в ЛС для отслеживания статистики.
133derboard:
@pas9x (https://antichat.live/members/213662/) - ⚑ ⚑ ⚑ ⚑ ⚑ ✓
@Gorbachev (https://antichat.live/members/300636/) - ⚑ ⚑ ⚑ ⚑
@nix_security (https://antichat.live/members/332889/) - ⚑ ⚑ ⚑ ⚑
@=HALK= (https://antichat.live/members/67039/) - ⚑ ⚑ ⚑ ⚑ ⚑ ✓
@Mudkip (https://antichat.live/members/335051/) - ⚑ ⚑ ⚑ ⚑
@roker777 (https://antichat.live/members/103459/) - ⚑ ⚑
@MichelleBoxing (https://antichat.live/members/328947/) - ⚑ ⚑ ⚑ ⚑
@Shubka75 (https://antichat.live/members/272853/) - ⚑ ⚑ ⚑
@D3N (https://antichat.live/members/330007/) - ⚑ ⚑ ⚑ ⚑
@manfromkz (https://antichat.live/members/335519/) - ⚑ ⚑ ⚑ ⚑
⚑ - чистый флаг, ⚑ - с подсказкой, ⚑ - пропущен (заявку в ЛС).
Прохождение (https://antichat.live/threads/469836/page-3/)
.
HINTS
Flag #1
Похоже, что сообщения читаются с той самой системы, которую нужно получить, но что может выдать её адрес?
Сервер находится в RU, поэтому нужно иметь в виду, что приходят по утру часть IP может быть заблокирована РКН, пробуем разные варианты.
Он читает все сообщения, а что если попытаться использовать социальную инженерию? Что-то определённо должно получиться!
Информация из Referer вполне может нам пригодиться, загоним прогера на сниффер?
Возможно изучение следующих материалов поможет в продвижении: 1 (https://habr.com/ru/post/345496/), 2 (http://deti-club.ru/vash-rebjonok-umeet-zdorovatsya).
Flag #2
Какая странная форма, никакой реакции. Да ну, нафиг её!
Стоит осмотреться во всех частях площадки и прошерстить каждый уголок.
Flag #3
Говорят, у страха глаза велики... Довольно часто, страшные криптографические велосипеды легко обходятся
Неплохим шагом будет изучение проблем безопасности некоторых используемых функций.
Мне кажется или эксперты находили нечто подобное в CMS Made Simple?! Хм...
Flag #4
Существует несколько видов валидации URL в PHP, стоит попробовать изучить их детальнее.
Не мне рассказывать, сколько врапперов поддерживает PHP, они точно все проверены?
Flag #5
Эти библиотеки меняются на глазах! Главное не упустить момент с версиями, чтоб не потратить время впустую.
Среди кучи деструкторов ничего полезного Похоже, что можно как-то прыгнуть в другой метод... самое время повторить теорию...
Есть, как минимум, два варианта решения одной из проблем. Простой и сложный (хайповый).
Cтоит покопаться в ресёчах ребят хакнувших PornHub и заглянуть в блог RIPS Tech
More coming soon?
Тот_самый_Щуп
05.04.2019, 06:18
Этого я давно ждал. Первый таск, который будет вас по ходу прохождения троллить, и издеваться. Пристегните ремни, это будет весело.
Полтора часа гонялся за первым флагом, в итоге... не буду спойлерить, но меня уже чутка полыхает. Иногда это полезно.
Где точка с запятой в конце? Это вам не пусть говорят питон.
PS: пните горыныча, пусть таск в закреп повесит, а то потсоны то и не знают...
Ставь лайк если нашёл пасхальное яйцо =)
↑ (https://antichat.live/posts/4298661/)
Этого я давно ждал. Первый таск, который будет вас по ходу прохождения троллить, и издеваться. Пристегните ремни, это будет весело.
Полтора часа гонялся за первым флагом, в итоге... не буду спойлерить, но меня уже чутка полыхает. Иногда это полезно.
@SkillProgrammer (https://antichat.live/members/309759/) коварная и скользкая личность Но радует, что помимо флагов, местами, он оставил прямые намёки для дальнейших действий
↑ (https://antichat.live/posts/4298661/)
Где точка с запятой в конце? Это вам не
пусть говорят
питон.
За это мы его и любим, он прощает многое. ПЫХ ван лав
↑ (https://antichat.live/posts/4298662/)
Ставь лайк если нашёл пасхальное яйцо =)
Дéржите верный курс товарищ!
BabaDook
05.04.2019, 14:15
↑ (https://antichat.live/posts/4298668/)
@SkillProgrammer (https://antichat.live/members/309759/)
коварная и скользкая личность
Но радует, что помимо флагов, местами, он оставил прямые намёки для дальнейших действий
За это мы его и любим, он прощает многое. ПЫХ ван лав
Дéржите верный курс товарищ!
@SkillProgrammer (https://antichat.live/members/309759/), моральный больной , не человек
ТС -крутой.
Причем крутой настолько, что пора начинать гордиться тем, что живешь с ним в одно время, тусуешься на одном форуме и даже можешь порешать его задачки.
Но у этой крутизны есть и обратная сторона, как бы он ни старался сделать понятно и просто, у него все-равно получается круто.
Таск шикарный, но не простой, сходить по ложному пути заметно легче, чем попасть на нужный, хотя вроде все очень логично и правильно.
Поэтому запасайтесь временем, с наскока пройти может и не получиться.
Из хороших новостей - автор не скупится на подсказки, которые вероятно будут и здесь, место во всяком случае уже заготовлено.
Таск достоин всяческих похвал и очень рекомендуется к прохождению.
Скорее всего нужно только выделить достаточно времени, поскольку таск атмосферный и затягивает.
↑ (https://antichat.live/posts/4298821/)
ТС -крутой.
Причем крутой настолько, что пора начинать гордиться тем, что живешь с ним в одно время, тусуешься на одном форуме и даже можешь порешать его задачки.
- Эй внучок, пади суда.
- Что деда?
- А ты знаешь с кем твой дед чалился в 2019 на античате ?
- С кем?
- С Crlf !
- Ух ты. А кто это?
- Ну это тот чувак, который рутает серваки тасков через exim и коллекционирует брутальные сегфолты в серверном по
- Ааа
Мне таск тоже очень понравился (хоть и не прошел его до конца ) Я бы сравнил его с интересной книгой: во-первых продуманная сюжетная линия, каретка создал целую историю. Видно, что очень старался и получилось реалистично. Никаких угадаек, везде указатели. Если читать взахлеб, увлекшись сюжетной линией, можно упустить детали. А потом понимаешь, что здесь присутствуют элементы триллера, и приходится возвращаться назад и перечитывать страницу. ТС современный писатель, поэтому в книге затронуты только актуальные темы. Такую книгу жалко ставить на полку, хочется дочитать ее до конца!
- где же "во-вторых", скажет внимательный читатель? этот таск 100% для тебя, Undefined variable: username
Надеюсь автор так же укажет толщину этой книги (сроки на выполнение таска), уж слишком быстро прилетели первые хинты
Есть первый флаг, респектуем @pas9x (https://antichat.live/members/213662/)!
↑ (https://antichat.live/posts/4298821/)
ТС -крутой.
↑ (https://antichat.live/posts/4298860/)
- А ты знаешь с кем твой дед чалился в 2019 на античате ?
Парни, спасибо! Как и договаривались, отработали на все 100, надеюсь все поверили Понедельник 9:00, премия будет ждать вас в бухгалтерии
Пока что не знаю, что нас ждёт дальше (ведь мы только на первом флаге), но начало афигенное )
Чувствуется, что таск хорошо продуман и даже сделан с юмором Разного рода пасхалки и возможность взаимодействия с другими участниками через сам ctf позволяют ловить неожиданные лулзы
Похоже, что на этот раз таск будет кайфовый. Главное чтоб народу побольше к нему подключалось чтоб тусня была и чтобы мне не одному его проходить
BabaDook
07.04.2019, 14:28
@=HALK= (https://antichat.live/members/67039/) красава
nix_security
07.04.2019, 19:15
Таск затягивает логичностью и продуманностью. Очень концептульный подход. От хинтов и пасхалок к 1му флагу подгорало неподетски)
Жаль, не успел засубмитить перед новыми подсказками
Без хинта жизнь непроста Пятый флаг какой-то непохек.
Тут нужен @gurux13 (https://antichat.live/members/332358/)
Клёвый таск Рад что есть возможность пропустить флаги, т.к мб кто то не умеет (как я в соц.инженерию), а следующие флаги могут оказаться интересными
Это конечно всё хорошо, но как спецсимволы протаскивать для php
[QUOTE="=HALK="]
↑ (https://antichat.live/posts/4299677/)
Это конечно всё хорошо, но как спецсимволы протаскивать для php
Если серьёзно, то это хинты на завтра Поэтому, на данный момент есть два варианта, сегодня отдохнуть и добить завтра, либо искать иные точки проникновения
BabaDook
10.04.2019, 04:28
↑ (https://antichat.live/posts/4299648/)
Клёвый таск
Рад что есть возможность пропустить флаги, т.к мб кто то не умеет (как я в соц.инженерию), а следующие флаги могут оказаться интересными
На самом деле всё легко и просто. Картека классные хинты дал. Мы не привыкли такое делать в рамках тренировочных заданий
Ребяяяяята, респектуем первому прошедшему таск!
@=HALK= (https://antichat.live/members/67039/) - боец невидимого фронта, меньше слов больше дела! Решил не отдыхать, по совету выше, и зарешал последний стейдж иной точкой проникновения, класс! Надеюсь, он поделится с нами своими впечатлениями и даст пару наставлений решающим и собирающимся решать
Так же, хочу отметить юзера @D3N (https://antichat.live/members/330007/) из группы Level 8. Прислал интересное решение 4го уровня головоломки, за что был награждён зелёненьким флагом. Мы бы с радостью отблагодарили материально, но структура у нас некоммерческая, живём одним энтузиазмом и питаемся лучами солнца
Не забываем про доступную вариативность решений, что не даст застопориться на каком либо этапе. В текущем виде задания, осталось лишь внимательно изучить легенду, принять к сведению многочисленные хинты, включить логику и затащить таск #6
Короче, поднажмём и продолжаем наступление
Тот_самый_Щуп
10.04.2019, 11:23
↑ (https://antichat.live/posts/4299777/)
Так же, хочу отметить юзера
@D3N (https://antichat.live/members/330007/)
из группы
Level 8
. Прислал интересное решение 4го уровня головоломки, за что был награждён зелёненьким флагом.
Всё-таки второй пункт зарешал? А я догадывался, что так можно было
Немного недоработан первый флаг, в остальном таск добротный, без хардкора, приближен к реальности. Рекомендую к обязательному прохождению для всех! Автор молодец, ставлю лайк!
Таки взял пятый флаг. Его пришлось взять. Иначе чувство незавершённости разъедает тебя изнутри. Потратить столько сил чтобы сдаться в конце пути — как с этим жить дальше?
Вообще таск классный. Мне он понравился больше чем предыдущий. Вначале проходить его было по приколу и я даже хотел малость потролить других участников, но потом решил этого не делать. А вот на пятом флаге всё изменилось. На пятом флаге началась боль которая по вкусу только настоящим маньякам
Ну и немного критики:
Прохождение первого флага возможно только методом тыка. Если честно то я прошёл его вообще по случайности.
Хинты по пятому флагу могут ввести в заблуждение и заставить искать решение там, где его нет. По крайней мере я интерпретировал большую часть хинтов пятого флага неверно и проделал некоторую работу впустую.
↑ (https://antichat.live/posts/4299888/)
без хардкора
Я-бы не сказал что без хардкора. Не знаю каким путём его прошёл ты, но мне пришлось прибегнуть к очень, очень нестандартному решению.
Пока не могу писать много (хоть и хочется), поскольку конкурс ещё не завершился и надо сохранять его прохождение в секретности. Но как таск завершится — буду писать врайтап.
↑ (https://antichat.live/posts/4299888/)
Немного недоработан первый флаг
↑ (https://antichat.live/posts/4300234/)
Прохождение первого флага возможно только методом тыка. Если честно то я прошёл его вообще по случайности.
Соглашусь, неформат и спорный флаг В свою защиту могу сказать, что легенду и многочисленные наводки, принимают как нечто вторичное. Если искренне верить, что сообщения читает человек с большим ЧСВ (так и есть!), тогда будет проще
И как бы сильно не плевались сервер сайдщики, глупо отрицать силу СИ в купе c клиентской стороной. Да, скучно, да, долго, но это отдельные виды искусства, которые на первый взгляд кажутся простыми и не достойными внимания.
Пример, в контексте первого флага, тобишь вперемешку с вебчиком и без XSS Имеем крупный сайт www.acme.org (http://www.acme.org). Знаем, что компания высокотехнологичная и продвинутая, с большой внутренней инфраструктурой. Плюс имеет кучу подрядчиков из сферы ИБ, администрирования и т.д. и т.п., что в свою очередь влечёт хорошую защищённость периметра. Нашли мы, к примеру слепую, да ещё и не булевую SSRF. Что с ней делать, если известные (http://www.kernelpicnic.net/2017/05/29/Pivoting-from-blind-SSRF-to-RCE-with-Hashicorp-Consul.html) техники (http://docs.ioin.in/writeup/mp.weixin.qq.com/49ca504e-3b31-40ac-8591-f833086cb588/index.html) не сработали? Примерно в таком случае, можно использовать простукивание с помощью СИ. И, по мере поступления данных, об IP адресах, реферах и другой полезной информации, которую можно снять с юзера, строить дальнейшие вектора атаки. Возможно, даже не придётся танцевать с бубном вокруг этой инвалидной SSRF. Так как один, из числа обслуживающего инфраструктуру персонала, может принести вам на блюдечке секретную админку или адрес бажной жиры, на доступном извне AWS инстансе
↑ (https://antichat.live/posts/4300234/)
Хинты по пятому флагу могут ввести в заблуждение и заставить искать решение там, где его нет. По крайней мере я интерпретировал большую часть хинтов пятого флага неверно и проделал некоторую работу впустую.
Как и писал @=HALK= (https://antichat.live/members/67039/), таск без хардкора. В понимании традиционного ( ) вебщика это должно означать, что таск без переполнений куч, стеков, багов форматной строки, UAF Поэтому можно смело отбрасывать информацию по этим видам уязвимостей и искать применение более простых методов.
В таске нет зиродеев, в основном, это немного нестандартные методы эксплуатации хорошо известных уязвимостей.
.
BabaDook
13.04.2019, 18:54
Кто то брал первый без подсказки?
↑ (https://antichat.live/posts/4300464/)
Кто то брал первый без подсказки?
В текущей итерации, к сожалению, нет. Связано ли это с плотным графиком таска, бредовостью флага или с чем-то иным, сказать затрудняюсь. Но, в целом, да, были такие красавчики
BabaDook
14.04.2019, 21:39
Значит у людей плохо с воображением, и не любят вести переписку с роботами
MichelleBoxing
15.04.2019, 13:22
↑ (https://antichat.live/posts/4300754/)
Значит у людей плохо с воображением, и не любят вести переписку с роботами
да какая там переписка, одного сообщения же достаточно )
Проблема этого этапа наверное в том, что наверное многие СИ будут в последнюю очередь пробовать. Я вообще был уверен, что СИ будет в поздних флагах (я почему то подумал, что писать нужно будет на форуме скиллпрограммеру...)
Мне наверное повезло, что я продолжил искать флаг, когда уже были очевидные подсказки (хотя легенда и подсказка на форме нормально так намекали с самого начала, но как обычно на это не обращаешь внимания )
Все 4 этапа понравились, спасибо @crlf (https://antichat.live/members/285197/)
Matrix001
15.04.2019, 15:23
Данный таск сразу выявляет реальных профи.
BabaDook
15.04.2019, 15:31
↑ (https://antichat.live/posts/4300872/)
да какая там переписка, одного сообщения же достаточно )
Проблема этого этапа наверное в том, что наверное многие СИ будут в последнюю очередь пробовать. Я вообще был уверен, что СИ будет в поздних флагах (я почему то подумал, что писать нужно будет на форуме скиллпрограммеру...)
Мне наверное повезло, что я продолжил искать флаг, когда уже были очевидные подсказки (хотя легенда и подсказка на форме нормально так намекали с самого начала, но как обычно на это не обращаешь внимания )
Все 4 этапа понравились, спасибо
@crlf (https://antichat.live/members/285197/)
А че тогда сам не сделал?
↑ (https://antichat.live/posts/4300464/)
Кто то брал первый без подсказки?
↑ (https://antichat.live/posts/4300754/)
Значит у людей плохо с воображением, и не любят вести переписку с роботами
вроде брал этот момент без подсказок. справедливости ради стоит сказать, что приходилось приходилось применять на практике подобный трюк ни один раз
например, вот infoleak небезызвестного сервиса /threads/390910/ (https://antichat.live/threads/390910/)
212.98.168.40 - - [xxx] "GET /hek.jpg HTTP/1.1" 200 8516 "http://trastik.com/godsside/index.php?action=23&shell_id=1" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
хинтов, намекающих что делать - более чем достаточно.
немного напряг сам способ. каретка поступил, как настоящий вайтсекси. что-то в духе: (что бы не палить ответ)
g0ogle.tk/mamoi_klyanus_eto_norm_url_tikni_menya
в то время, когда более трушно и не палевно - встроить скрытую картинку через img или стили тегов.
все таки мы не рассылаем pinch2.exe, конечная цель другая.
и тут, по хорошему стоит забирать "то, что нужно" регуляркой, а не так, как сейчас ))
подводя итоги: флаг однозначно полезный. можно было предусмотреть несколько вариантов прохождения, как и в 4-ом
без хинтов он берется "не на лету", а чуть более детальным фаззингом
BabaDook
15.04.2019, 16:58
↑ (https://antichat.live/posts/4300913/)
вроде брал этот момент без подсказок. справедливости ради стоит сказать, что приходилось приходилось применять на практике подобный трюк ни один раз
например, вот infoleak небезызвестного сервиса
/threads/390910/ (https://antichat.live/threads/390910/)
212.98.168.40 - - [xxx] "GET /hek.jpg HTTP/1.1" 200 8516 "http://trastik.com/godsside/index.php?action=23&shell_id=1" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
хинтов, намекающих что делать - более чем достаточно.
немного напряг сам способ. каретка поступил, как настоящий вайтсекси. что-то в духе: (что бы не палить ответ)
g0ogle.tk/mamoi_klyanus_eto_norm_url_tikni_menya
в то время, когда более трушно и не палевно - встроить скрытую картинку через img или стили тегов.
все таки мы не рассылаем pinch2.exe, конечная цель другая.
и тут, по хорошему стоит забирать "то, что нужно" регуляркой, а не так, как сейчас ))
подводя итоги: флаг однозначно полезный. можно было предусмотреть несколько вариантов прохождения, как и в 4-ом
без хинтов он берется "не на лету", а чуть более детальным фаззингом
В тебе никто не сомневался. Ты крутой хакир.. Но как таковой там не было уязвимости, На сколько я понял. \Надо было просто попросить вежливо клацнуть на сылку
типа
Hello.Look me html page Please cyka.. ну и вставить что-то такое.
На самом деле сложно сделать соц таск реально крутой.
По тех причинам. И из за того что вроде это таск а не real life.. Стереотип что ли.
↑ (https://antichat.live/posts/4300897/)
Данный таск сразу выявляет реальных профи.
Скорее данный таск выявляет тех людей, кто может отличить ньюфага от профи Ну и бездельников, у кого куча времени на решение тасков
↑ (https://antichat.live/posts/4300899/)
А че тогда сам не сделал?
Он то как раз сделал, 4 флага, причём имея уровень знания PHP "ни в зуб ногой", щас же молодёжь предпочитает GO Может не в тему, но напомнило:
↑ (https://antichat.live/posts/4300913/)
в то время, когда более трушно и не палевно - встроить скрытую картинку через img или стили тегов.
Это хорошая тема для холивара, как и почему Почему HTML Purifier не даст вставить картинку с другого хоста, а htmLawed беспощадно выкосит большинство атрибутов? Есть как есть, один из частных случаев, не более, не менее. Чтоб совсем не казалось дичью, была добавлена щепотка экзотики
BabaDook
15.04.2019, 17:02
↑ (https://antichat.live/posts/4300923/)
Скорее данный таск выявляет тех людей, кто может отличить ньюфага от профи
Ну и бездельников, у кого куча времени на решение тасков
Он то как раз сделал, 4 флага, причём имея уровень знания PHP "ни в зуб ногой", щас же молодёжь предпочитает GO
Может не в тему, но напомнило:
Это хорошая тема для холивара, как и почему
Почему HTML Purifier не даст вставить картинку с другого хоста, а htmLawed беспощадно выкосит большинство атрибутов? Есть как есть, один из частных случаев, не более, не менее. Чтоб совсем не казалось дичью, была добавлена щипотка экзотики
Просто там отмечен флаг как с подсказкой,вот я и подумал. Так то базара нет, он молодец. Ничего не могу сказать против. Не то что я ..
↑ (https://antichat.live/posts/4300925/)
Так то базара нет, он молодец. Ничего не могу сказать против. Не то что я ..
Молодцы все, кто пытаются, учатся, постигают, совершенствуются и адекватно оценивают свои скилы, не принижая и не преувеличивая
manfromkz
18.04.2019, 01:39
↑ (https://antichat.live/posts/4299777/)
Так же, хочу отметить юзера
@D3N (https://antichat.live/members/330007/)
из группы
Level 8
. Прислал интересное решение 4го уровня головоломки, за что был награждён зелёненьким флагом.
Мы бы с радостью отблагодарили материально, но структура у нас некоммерческая, живём одним энтузиазмом и питаемся лучами солнца
Не терпится узнать)
↑ (https://antichat.live/posts/4301626/)
Не терпится узнать)
Райтап по таску будет от @pas9x (https://antichat.live/members/213662/). Но думаю @D3N (https://antichat.live/members/330007/) тоже подтянется после и покажет всем свой зиродей
В итоге, у нас 5 мемберов на финишной прямой. Как мы помним, DarkHat просил сделать работёнку за две недели, которые заканчиваются сегодня в 20:00 Но если будут желающие добить, напишите в ЛС, попробую выбить ещё сутки
https://i.imgur.com/w0wf1Xl.png
Ждём @pas9x (https://antichat.live/members/213662/)
Сорян, я врайтап буду писать все выходные ) Тут нужно вдохновление, а оно волнами то нахлынет то отступит. Кстати интересно, что там за 0day заюзал @D3N (https://antichat.live/members/330007/) для прохождения 4 флага.
Тот_самый_Щуп
19.04.2019, 23:07
↑ (https://antichat.live/posts/4302114/)
Кстати интересно, что там за 0day заюзал
@D3N (https://antichat.live/members/330007/)
для прохождения 4 флага.
В закрытых группах поди выложили Как объявится в паблике - спустят
Извиняюсь, что заставил долго ждать. На выходных было много дел. Времени вообще нет. Поэтому решил сделать упрощённую версию врайтапа. Изначально я её планировал более пафосную, с картиночками и прочими ништяками. В течение недели ещё несколько раз буду редактировать и дополнять этот пост. Скажу сразу: не все из изложенных мной предположений верны (особенно про вежливость), я просто выкладываю какие мысли у меня были в голове по ходу прохождения конкурса.
[ Флаг 0 ]
Для начала нам надо найти точку входа в CTF. Нам известно, что она находится на сервере 94.X5Y.X5Y.96. Значит теоретический максимум для перебора - 100 комбинаций цифр. Но учитывая, что X может иметь значение от 0 до 2 диапазон поиска сужается до 30 айпишников. При этом нам не известно на каком порту работает точка входа и нет-ли в пространстве айпишников левых серверов (которые не относятся к CTF). Пробуем самый простой вариант: пишем пхп-скрипт и через fsockopen ищем сервер с открытым 80 портом. И оказывается, что 80 порт открыт только на сервере http://94.250.250.96/
[ Флаг 1 ]
Обходим сайт, внимательно смотрим в html-код. В коде страницы портфолио (http://94.250.250.96/?page=portfolio) видим странный коммент. Пытаемся раскодировать его как base64, но из-под него выходит какой-то бинарный блок данных. По его виду непонятно что это за блок данных. Наугад пробуем сохранить его в файл и открыть с помощью 7zip. Оказывается, что это zip-архив с запароленым файлом 404.txt. Ищем в нэте какой-нибудь брутер zip-архивов. Я воспользовался Ultimate ZIP Cracker. Долго ждать не пришлось, пароль на архив: 123
Но оказалось, что это просто пасхалка с текстом "Bingo! You have found an Easter egg, hurry to contact me and do not forget to send some interesting HTML materials! "
Продолжаем изучать сервер. Сканим все tcp-порты nmap'ом, но оказывается что на сервере нет открытых портов кроме 22 и 80. Значит выбор у нас не велик: копать веб-сервер. Ну или попробовать брутить ssh. Ещё я поискал нмапом другие серверы с айпишником 94.X5Y.X5Y.96 но ничего стоящего не нашлось. Кстати, подключившись любым tcp-клиентом (например nc) на 22 порт во многих случаях ssh-сервер выдаёт нам название и версию операционной системы. В нашем случае ssh-сервер нам выдал: SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u4
Копаем сайт. С помощью ffuf (https://github.com/ffuf/ffuf) вдоль и поперёк сканим директории/файлы сайта, но из интересного находим только директорию /uploads (http://94.250.250.96/uploads/). Как оказалось, в неё складывают загруженные в форму обратной связи файлы. Ничего кроме картинок и текстовых файлов в неё загрузить невозможно. При попытке загрузить файл с расширением php он там не появляется (это было-бы слишком просто). Однако если добавить php-код в конец нормальной картинки то такой файл загрузится как есть.
На первый взгляд кажется, что тут есть дыра в параметре page. Видно, что тут как-то странно обрабатывается расширение файла. Имею право предположить, что страницы лежат на сервере локально и просто инклудятся. Былоб неплохо подинклудить jpeg-картинку с нашим пхп-кодом. Но опять-же это было-бы слишком просто. Ещё немного поигравшись с параметром page у меня начинает закрадываться подозрение, что это ловука.
Пораскинув мозгами бросаем затею с параметром page и пробуем отправлять всякую хрень в форму обратной связи. Пасхалка нам явно говорит, что надо отправлять в неё какой-то хтмл-код. И тут я подумал: а что если на бекенде какой-то пхп-скрипт проходит по ссылкам в этом хтмл-коде? Надо попробовать накидать в форму хтмл с разными ссылками. Я отправил в форму хтмл с тегами , и глянул лог сайта ссылки на который засабмитил в форму. И действительно: по этим ссылкам зашёл некто с юзер-агентом Moskilla/1.337 (BeOS XS; X-Header-Powered-Browser) Pro/3.5737 с айпишника 94.250.250.96. Header-Powered-Browser нам как-бы намекает, что надо глянуть остальные заголовки клиента. Запускаем tcpdump и сниффирим трафик с 94.250.250.96. Почему tcpdump? Потому что вдруг этот сервер ещё куда-то заходит или что-то делает - я должен об этом знать. Скачиваем дамп трафика на комп и смотрим его в wireshark. Но там всего лишь одиночный http-запрос с заголовком X-Hint: If you try to be more polite, then you will get a surprise
Блин. Вообщето я ожидал увидеть в заголовках флаг а сервер требует просить вежливее. Но что значит вежливее? Тут я вспомнил, что уже несколько раз сабмитил форму. Может невежливостью считается частая отправка формы или ссылки на один и тот-же сайт? Решил подождать несколько часов и засабмитить форму с другим текстом и с другими ссылками. И тут по счастливой случайности я засабмитил в форму текст "Hi" и в заголовках увидел:
[HTTP_X_REFERER] => http://host2.developer.skill.programmer/messages.php
[HTTP_X_FLAG] => {skl_wh0_said_s0cial_3ngin33ring?}
[HTTP_USER_AGENT] => Moskilla/1.337 (BeOS XS; X-Header-Powered-Browser) Pro/3.5737
Охрененчик! Действительно, надо было не так часто самбитить форму, с разных айпишников и с разным текстом. Тут прикол в том, что на радостях я не обратил внимания на заголовок referer и побежал в личку к @crlf (https://antichat.live/members/285197/) отправлять первый флаг Так как в топике что-то говорилось про социальную инженерию, да и флаг нам намекает на неё я подумал: самое время применить соц инженерию. Но в каком виде? И тогда я набравшись наглости начал взламывать соц инженерией самого автора таска. И просто задал ему вопрос: "куда копать дальше?" на что естественно получил ответ "смотри заголовки ответа". Даже как-то стыдно
Но вообще этот флаг я прошёл по чистой случайности. Еслиб я не вбил в форму "hi" то вообще не прошёл-бы конкурс.
[ Флаг 2 ]
Прописываем в хост-файл 94.250.250.96 host2.developer.skill.programmer и заходим на сайт. Подставляя кавычки и прочую дрянь в форму естественно ничего я не добился. Глянул в хтмл и заметил странность: в форме почему-то два инпута с name=login. Т.е. какой-бы логин ты не отпраивл всёравно на бекенд уйдёт и введённый логин и login=Verify. Т.е. форма авторизации тут вообще закосячена. Ок, снова запускаем сканер директорий и находим директорию /misc (http://host2.developer.skill.programmer/misc/), содержимое которой бесценно. Среди всего прочего в ней есть файлик README.md с флагом {skl_d1r3ctory_lis7ing_1s_a_bad_id3a.}
В файле in.php (http://host2.developer.skill.programmer/misc/in.php) какая-то синтаксическая ошибка благодаря которой теперь нам известен путь к директории сайта: /var/www/html/host2.developer/misc/in.php
[ Флаг 3 ]
Смотрим auth.php.old. С этого флага начинается проверка знания php и linux. Если первые 2 флага проверяли твою интуицию то все флаги начиная с третьего - это проверка знания php и проверка на внимательность. Начиная с этого флага нам надо тщательнейшим образом проверять все пхп-исходники, вглядываться в каждую строчку кода и перебирать варианты что с ней может быть не так. Первое на что нужно обратить внимание - это то, что файлы auth_secrets.php и auth_secrets.php.old имеют разный размер. С высокой степенью вероятности это означает то, что ключи поменялись. Я на это не обратил внимания и потратил некоторое время впустую пытаясь подставлять в куки значения сформированные с использованием auth.php.old.
Второе на что нужно обратить внимание - это операция extract($user['auth']), что крайне небезопасно. Используя это мы можем устанавливать какие угодно переменные. В том числе мы можем переопределять суперглобальные пхпшные переменные $_GET, $_POST, $_COOKIE, $_FILES.
Далее в операторе if нам нужно декомпозировать строку in_array($login,['admin','superuser','hackersucks'])&&strlen($user_hash)&&$auth_hash==$user_hash&&4>$auth_group&&$log=='local'&&$auth_id[/COLOR]$auth_group;
$condition5=$log=='local';
$condition6=$auth_id [
'id'=>1,
'user'=>'admin',
'group'=>1,
'hash'=>'qwe',
'log'=>'local',
'signature'=>'rty',
],
];
$_COOKIE['session'] =base64_encode(json_encode($sessionCookie));
$_COOKIE['signature'] ='test';[/COLOR]
[/PHP]
Но как выполнить 3 и 7 условие? Ведь чтобы их выполнить нам нужно правильное значение $secret, $secretx или $secrety. Если мы возьмём его из auth.php.old то конечно локально у нас все условия будут выполнены. Но на сервере эти значения другие а потому авторизация не пройдёт. Те, кто хорошо знаком с языком в курсе, что в php есть несколько операторов сравнения: https://www.php.net/manual/ru/language.operators.comparison.php
Оператор === требует чтобы оба операнда были идентичны. Т.е. выражение (1 === '1') вычислится как false.
Но оператор == выполняет конвертацию типов. Поэтому выражение (1 == '1') вычислится как true.
Подробнее о том, как пхп выполняет конвертацию типов при сравнении посмотреть можно здесь: https://www.php.net/manual/ru/types.comparisons.php
Как мы видим, в третьем условии используется оператор == , чем мы и воспользуемся. Функция sha1 и md5 возвращает строку. И если в параметре hash мы укажем неверный хеш то результат операции сравнения будет false. Т.е. при сравнении строки со строкой операция сравнения отрабатывает корректно. Но мы можем подсунуть в качестве значения hash не строку а true и тогда пхп выполнит конвертацию строки в boolean, из-за чего результатом сравнения будет true.
Итак, подсунув в параметр hash вместо нормального хеша значение true мы добились выполнения 3 условия.
Теперь нам надо добиться выполнения 7 условия. Здесь мы используем ту-же слабость php. Но дополнительно нам надо почитать доку по этой функции: https://www.php.net/manual/ru/function.strcmp.php
Нужно не просто почитать доку по этой функции, но ещё и хорошо поэкспериментировать с ней. И в ходе экспериментов мы видим, что это очень проблемная функция с абсолютно непредсказуемым результатом. Одна из проблем этой функции в том, что она может возвращать null, хотя в документации об этом не сказано (хотя должно быть сказано). Если мы в аргументе $signature вместо нормальной строки подставим массив то пхп выдаст "Warning: strcmp() expects parameter 2 to be string, array given" а сама функция вернёт значение null. И, как вы уже догадались, 0 == null
Если вам влом вручную формировать правильные значения то для прохождения авторизации в админке можете прописать браузеру следующие куки:
session=eyJhdXRoIjp7ImlkIjoxLCJ1c2VyIjoiYWRtaW4iLC Jncm91cCI6MSwiaGFzaCI6dHJ1ZSwibG9nIjoibG9jYWwiLCJz aWduYXR1cmUiOlsiZnVjayB5b3UiXX19
signature=fake
Когда мы прописали браузеру правильные куки - можем смело заходить в админку, где нас сразу встречает третий флаг: {skl_y0u_ar3_supp4_us3r!}
[ Флаг 4 ]
Потыкав форму находим в ней много вкусного: тут и загрузка файлов по ссылке и exec Естественно первым делом нас интересует exec, но поигравшись со значениями параметра command понимаем, что ни к чему хорошему нас это не приводит. Тогда играемся с формой скачивания файлов и понимаем, что с помощью неё можно получить содержимое по любой ссылке, главное чтоб в url присутствовало значение ?print=1 . Могу предположить, что для простоты содержимое ссылки скачивается функцией file_get_contents() и если это действительно так, то тогда мы можем пробовать разные пхп-шные врапперы (https://www.php.net/manual/ru/wrappers.php). Первое что приходит на ум - использовать для чтения файлов схему file:// но нам мешает требование наличия ?print=1. Хм. А мешает-ли? Ведь мы можем воспользоваться нормализацией пути и использовать для этого ..
Почти в любой unix-подобной ОС есть файлы которые лежат по одному и тому-же пути, например: /etc/hosts /etc/hostname /etc/resolv.conf /etc/os-release независимо от ОС. Доступ на чтение этих файлов есть всегда и у любого юзера, поэтому проще всего пробовать прочесть их. Пробуем получить содержимое по такому url: file:///?print=1/../etc/hosts и вуаля: мы считали хост-файл
Круто. Теперь мы можем читать любые файлы на сервере. Из второго флага нам известно в какой директории лежит сайт, так что считываем файл file:///?print=1/../var/www/html/host2.developer/index.php и забираем 4 флаг: {skl_wha7_is_g0ing_0n_h3r3?}
[ Флаг 5 ]
Первое, что хочется сделать на этом этапе - узнать как можно больше информации о сервере. Чтобы удобно читать содержимое файлов я накатал функцию downloadFile($path) и на основе неё сделал скриптик flag5/cat.php (архив во вложении). Мы уже знаем, что на сервере стоит Debian 10. На мою удачу, на работе у меня оказался серверок с дебианом где есть nginx+php-fpm, поэтому мне не составило труда узнать точные пути к дефолтовым конфигам. Хотя еслиб такого сервера у меня не оказалось - я-бы установил дебиан и весь нужный софт на виртуалку, просто это заняло-бы больше времени. Покопавшись в конфигах не нашлось ничего интересного, конфигурация сервера почти дефолтовая. Конфиг php-fpm тоже дефолтовый. Из более-менее интересного:
/var/backups/dpkg.status.0 - список установленного на сервер софта
/etc/nginx/nginx.conf
/etc/nginx/sites-enabled/default
Из этих файлов мы можем узнать что сервер почти голый, ничего кроме nginx+php-fpm на него не установлено а у nginx всего два виртуальных хоста: skill.programmer (дефолтовый сайт) и host2.developer.skill.programmer. Всё это говорит о том, что не стоит тратить время на поиск уязвимостей конфигурации и на поиск каких-то дыр в других местах. На дефолтовом сайте index.php доставляет немного лулзов, но для нас он бесполезен. Лучше сосредоточиться на host2.developer.skill.programmer.
На этом флаге я проделал дофигищу бесполезной работы и проверил кучу гипотез:
Может быть какой-то файл в директории skillibs модифицирован и в него встроен флаг или бекдор? Первым делом я написал скрипт который с помощью вышеупомянутой функции downloadFile целиком выкачивает все файлы из skillibs, затем на своём компе выкачал компосером все те-же версии либ и сделал сравнение файлов. Но различий найдено небыло (помимо автогенерированных файлов компосера, но это ерунда).
Возможно имеет место RCE при десериализации объектов (https://www.notsosecure.com/remote-code-execution-via-php-unserialize/)? Но пробежавшись по __destuct() и __wakeup() не нашлось ничего стоящего (и в этом я ошибался).
Возможно есть какая-то дыра в автолоадере и подставляя в десериализатор специально сформированные имена классов удастся подинклудить файл из uploads. Но пхп жёстко фильтрует имена классов и неймспейсы.
Хинт по 5 флагу рекомендует почитать посты из блога команды взломавшей порнхаб через дыру в сборщике мусора. Почитав сам пост об этой дыре (https://www.evonide.com/breaking-phps-garbage-collection-and-unserialize/) я приуныл: c++ на должном уровне я не знаю а PHP на сервере версии 7.0.30 и в ней этой уязвимости уже нет. PHP на моём сервере той-же версии и PoC-код из вышеуказанной статьи не срабатывает.
Ещё один хинт гласит, что "библиотеки меняются на глазах" - не знаю как это понимать. Может в директории skillibs (http://host2.developer.skill.programmer/skillibs/) периодически что-то изменяется? Для уверенности что это не так я написал скрипт который каждые 30 секунд обходит все поддиректории в skillibs и смотрит не поменялся-ли размер файлов или не появилось-ли новых файлов. Через сутки естественно ничего такого не нашлось.
Попытался использовать XXE с expect:// (https://habr.com/ru/company/pentestit/blog/325270/) причём в форме обратной связи тоже. Однако эксперименты на своём сервере показали что без флага LIBXML_NOENT xxe в пхп не работает.
Провал по всем направлениям очень сильно обламывает. Куча времени потрачено впустую а у тебя нет ни единой зацепки. У тебя даже интуитивно нет предположения в какую сторону копать. Я решил признать, что это не мой уровень, сдался и пошёл спать. С утра зачем-то я опять полез в код skillibs. И тут меня снова появилась надежда: в деструкторе PHPMailer вызывается метод smtpClose() а в нём $this->smtp->connected(). Если мы подсунем $this->smtp какой-то левый объект то при отсутствии метода connected() будет вызван магический метод __call() (https://www.php.net/manual/ru/language.oop5.overloading.php#object.call). Классов с этим методом оказалось не много и я легко пробежался по всем. С первого-же взгляда на Services_Twilio_PartialApplicationHelper меня озарило: call_user_func_array - ЭТО-ЖЕ ИМЕННО ТО, ЧТО НАДО! Я спешно склепал сериализованный объект, протестировал десериализацию и оказалось, что это реально работает. Ахаха, пятый флаг мой - подумалось. Но я ещё не знал, что ждёт меня впереди. Засабмитив сериализованный объект вместо ожидаемого OK я получил ERROR. Да, я предусмотрел что из-за preg_match надо вложить объект в массив. Но почему-то всёравно получал ERROR. Какого хрена? Пятый флаг всё ещё не мой? Я начал копать почему это происходит и обнаружил, что у меня на компе это тоже не работает. А виною всему simplexml который не хавает сериализованный объект. Как оказалось, после сериализации объекта из-под функции serialize выходит всем нам привычный сериализованный код за одним только исключением: имена всех приватных свойств объектов содержат нуль-байт. Я подумал: ну не проблема, экранируем все спецсимволы с в коды по типу но и это не проканало. Как оказалось, стандарт XML вообще запрещает в xml наличие байт с кодом ниже 9, даже если символы экранированы. И ты можешь хоть жопу рвать (и гуглить xml binary data), но нуль-байт при любом раскладе в xml не допускается. Это огорчает. Я не должен просрать в одном шаге от последнего флага из-за такой ерунды. И тут я вспомнил, что в одной статье (https://www.evonide.com/fuzzing-unserialize/) читал о разных способах сериализации и что, вроде как, есть способ сериализовать строку с экранированием спецсимволов. В ходе экспериментов оказалось, что пхп почему-то по умолчанию не применяет такой метод и всегда сериализует строку методом s, хотя десериализация методом S также срабатывает. Я написал функцию-костыль которая корректирует данные полученные из функции unserialize и переделывает метод сериализации строк с s на S (с экранированием нуль-байта естественно). И наконец в конце всех мытарств я получил долгожданный OK. Естественно в call_user_func_array я прописал file_put_contents и благополучно залил шелл в директорию uploads Пробежавшись по папочкам на сервере я нашёл файл http://host2.developer.skill.programmer/flag_acd46ae078a1838e38b68b852a8aeba2ff592536.txt с флагом {skl_d3s3rial1z4ti0n_is_c00l_did_y0u_l1k3_it?}
На этом всё, а теперь мне пора баиньки
PS: архив во вложении обновил с учётом пятого флага.
SkillProgrammer, удивленный атакой скилловых хакеров, свернул свою инфраструктуру и потушил сервера.
Надеюсь все успели проверить свои мысли и оценить полное прохождение.
Еще раз спасибо ТС (https://antichat.live/members/285197/)за наводку на интересный ресурс.
↑ (https://antichat.live/posts/4302120/)
В закрытых группах поди выложили
Как объявится в паблике - спустят
Можете пожалуйста подсказать или описать как работает уязвимость (0day для 4 флага)? Давать как есть не обязательно) мне нужна удочка
Сейчас я изучаю методологию написания эксплоитов и техники фаззинга. По всякому стараюсь трясти бинарники. Было бы не плохо если бы профи своего дела меня направили)
BabaDook
17.05.2019, 19:33
↑ (https://antichat.live/posts/4307493/)
Можете пожалуйста подсказать или описать как работает уязвимость? Давать как есть не обязательно) мне нужна удочка
Сейчас я изучаю методологию написания эксплоитов и техники фаззинга. По всякому стараюсь трясти бинарники. Было бы не плохо если бы профи своего дела меня направили)
Вроде все расписали.
↑ (https://antichat.live/posts/4307540/)
Вроде все расписали.
Процитируйте, а то не вижу нигде описания 0day от D3M
Надеюсь не слишком поздно, хочу добавить свои 5 копеек. Для прохождения 4 флага не обязательно использование врапперов. Сами по себе проверки FILTER_VALIDATE_URL и FILTER_FLAG_QUERY_REQUIRED требуют лишь наличия символов "//" и "?" в переменной $_POST['url']. Запустив код у себя и поигравшись с путём получаем такой bypass:
url=.://../?/../index.php
↑ (https://antichat.live/posts/4307550/)
Процитируйте, а то не вижу нигде описания 0day от D3M
Это точно не 0day) Выше расписал.
↑ (https://antichat.live/posts/4309322/)
Это точно не 0day) Выше расписал.
В рамках таска это был зиродей, так что зачёт В контексте пыха, больше на лулз похоже:
var_dump(filter_var('.://xek?kex', FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED));
//string(11) ".://xek?kex"
var_dump(filter_var('^://xek?kex', FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED));
//bool(false)
По мнению filter_var ".://" нормальная схема, но file_get_contents так не считает, вернее вообще не считает схемой
Мне вот такие находки нравятся, возможно потому, что они "хакерские", а не чисто "программерские".
Ещё хочется выделить пару разборов от бета-тестеров задания. Это не финальные решения, а именно процесс мозгового штурма в первые часы разбора задания. Ребята являются одними из топчиков в своём деле, с кем мне довелось пообщаться за последнее время. Думаю многим будет полезно ознакомиться с этими наработками и проследить за ходом мыслей тру хакеров
-Комрад берёт первый флаг
1. что имеем nginx1.10.3,openssh7.4,php7.0.30, ось *nix,reverse ip-ничего
2. из скриптов сканер нашел только index.php, из параметров скрипт бечеда зафазил только page. папки uploads и misc можно сбрутить или найти в css файлах. возможно подключаются доп файлы page/contact/portfolio из неизвестной диры с неизвестным расширением
2.1. у index.php нет бекапов,временных файлов итд .ext~,.swp
2.2. пасхальный zip архив
3. повтыкал в параметр page (параметр береться из $_REQUEST не только из GET)
3.1. очень похоже на обычный basename (aaa/contact-200)
3.2. пустой page выдает страницу home,массив page[] не выводит ничего.
3.3. data:,x false,allow_url_iclude off или не инклуд.
3.4. странное поведение скрипта если первые два символа точки или первый символ слеш .a/contact(false) a.a/contact (false) aa./contact (true) a/contact (true) /contact (false) либо не basename либо в коде шаманство с первыми тремя символами
3.5. параметр не попадает в exec функции (;id;||id||--v итд), sql injection отсутствует
3.6. возможно скрытые значения параметра ?page=xxx (стоит пофазить)
4. подсказки или флаги в статике исключены, чекнул даже exif теги в картинках
5. сценарий contact
5.1 параметры email,file, необязательные, параметр message обязательный
5.2 email=,email[],file[] - ерроров нет,message[] - скрипт не выполняется значит конструкция не такого вида !isset($_REQUEST['message']) остальные параметры никак не фильтруются и не проверяется
5.3 *** знает как и откуда админ читает (если вообще читает) репорты поэтому фазить поле message не вижу смысла, единственное что следовало попробовать - запилить снифер, например через параметр в надежде получить из реферера админку если таковая есть
5.3.1. файлы из multipart/form-data заливаются в uploads в виде md5(filename).ext
5.3.2. файл грузится только если расширение совпадает с указанным
5.3.3. name.php.txt такая конструкция проходит проверку, но берется последнее расширение, нет проверки по mime type, .php, .php.txt false, очень похоже на in_array
5.3.4. md5.txt/.php ошибка доступа md5.txt%00.php 404 (а вдруг)
5.3.5. возможна эксплуатация в связки с page,нужно еще раз повтыкать
-"Разнос" флага #3
[CODE]
auth.php:
...
include('auth_secrets.php'); // подключаем файл с ключами
// вот тут отступлением, если посмотреть в диркуторию /misc/ то в глаза бросается разница в весе файла
// 362 байт у auth_secrets.php и 357 байт у auth_secrets.php.old
// вероятнее всего админ изменил ключи на новые (????)
switch ($login){ // свитчим переменную $login
case 'admin': // если в ней admin
$auth_hash = sha1($auth_id.$secret); // присваеваем переменной $auth_hash хеш значений переменной $auth_id и ключа из файла auth_secret
$local_signature = hash('whirlpool', $id.$secret.$log.$auth_group.$auth_hash); // генерируем local_signature для сверки (??? почему блять тут $id, а выше $auth_id, по логике это должно быть одно и тоже)
break;
case 'superuser':
$auth_hash = sha512($secretx.$$login); // по дефолту нет такой функции, если юзать этого пользователя то код крАшится
$local_signature = hash('ripemd128', $auth_group.$id.$secretx.$log.$auth_hash);
break;
default:
$auth_hash = md5($secrety.$group); // ну вот тут тоже тупо, почему стилистика разная, тут сначала ключ и потом $gorup, которая так же прилетела через _COOKIE, почему не $auth_group
if($auth_id $auth_group - очевидно что auth_group должна быть меньше 4
// $log=='local'
// $auth_id$auth_group&&$log=='local'&&$auth_id
Тот_самый_Щуп
09.06.2019, 01:37
если посмотреть в диркуторию /misc/ то в глаза бросается разница в весе файла
Мне вот любопытно, а много таких было, кому это в глаза бросилось? Или только один я лопух, проморгал?
чекнул даже exif теги в картинках
Это правильно. Так-же не забываем поиграться с картинкой, меняя яркость\контраст, там тоже флаги могут образовываться (3301)
Вообще, солидарен с мнением о ребятах, кто "задротствует" сутками над тасками, именно своим упорством, и хакерским характером они в дальнейшем придут к успеху, и захватят мир.
А так-же в очередной раз хочу поблагодарить авторов тасков: crlf, dooble, l1ght, joelblack
Потсоны вообще ребята. Отличный креатив, прокачка мозгов, и сопернический дух.
@SkillProgrammer (https://antichat.live/members/309759/) наносит ответный удар! На этот раз коротко, по делу, и не менее интересно
https://ctf.antichat.com/challenges#Resizer
http://resizer.ctf.antichat.com/
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot