1. PHP / Говнокод #4181

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    <?php
    require_once 'mainfunc.php';
    $template->msg('SET TITLE', $conf['wiki']['title']);
    $rev = intval(@$_GET['rev']);
    if(@$_GET['ae']){session_destroy();unset($admin);}
    ?>
    <h1><?= $conf['wiki']['title']; ?></h1>
    <p><a href="create.php">[Создать статью]</a> <?php
    if($rev) echo '<a href="index.php?rev=0">[Перевернуть]</a>';
    else echo '<a href="index.php?rev=1">[Перевернуть]</a>';
    ?></p>
    <?php
    $tpr = array();
    echo '<p>';
    $fls = array();
    foreach(scandir('files') as $k) if($k{0}!='.') $fls[]=$k;
    natsort($fls);
    if($rev) $fls=array_reverse($fls);
    foreach($fls as $k){
      if($k{0}=='-') continue;
      $f=file('files/'.$k);
      if($f[0]{0}=='#') $f[0]{0}='';  $tpr[] = '<a href="view.php?id='.$k.'">'.$f[0].'</a><br>';
    }
    $pnav = new PageNavigator($tpr, 'index.php?page=$p&rev='.$rev);
    $pnav->page();
    echo '</p>';
    echo '<p class="nav">';
    $pnav->panel();
    echo '</p>';
    if(@$admin) echo '<p>Вы админ <a href="index.php?ae=1">[X]</a></p>';
    $template->act(); //Запускаем вывод
    ?>

    Инновационный вики-движок для вап-интернета, в действии можно посмотреть здесь: http://wiki.wup.ru/
    От одного index.php становится худо.
    Плюс работает это еще с помощью какого-то фреймворка, при этом весь html размазан практически по всему проекту, да и все это еще на файлах.
    Куча дыр, фильтрующие регулярки не пашут, даже банального антифлуда нет - можно жать f5 и радоваться.
    Полностью сорцы можно скачать тут: http://wiki.wup.ru/wikibackups/

    Запостил: 7ion, 06 Сентября 2010

    Комментарии (79) RSS

    • а почему я не вижу sql запросов?
      их что, вынесли в другой файл?
      непорядочек
      Ответить
      • Да, в другом файле.
        И тут не база, пишу же - на файлах движок.
        Тут мазохизм другого плана.
        <?php
        require_once 'mainfunc.php';
        $template->msg('SET TITLE', $conf['wiki']['title']);
        if(preg_match('#^[./]$#', $_GET['d'])) die('Иди нахуй');
        echo '<h1>Изменено</h1>';
        @mkdir('backups/'.intval($_GET['id']));
        copy('files/'.intval($_GET['id']), 'backups/'.intval($_GET['id']).'/'.date('d-m-Y_H-i-s'));
        copy('backups/'.intval($_GET['id']).'/'.$_GET['d'], 'files/'.intval($_GET['id']));
        $template->act(); //Запускаем вывод
        ?>
        Ответить
        • это была ирония)
          я имел ввиду что только отсутствие SQLей отличает это говно от хрестоматийного говна.

          Я прекрасно понимаю, почему каша из html, собачек и функций это говно
          Ответить
          • В хрестоматийном говне обычно нет фреймворков :)
            Ответить
            • хрестоматийное говно обычно использует ВСЕ фреймворки доступные для скачивания хрестоматийному Говно кодеру.
              Ответить
              • В хрестоматийном говне обычно пишется свой неебический фреймворк.
                Ответить
                • ...хрестоматийно лежащий в одном монолитном файле, инклудящемся к каждой мелочи.
                  Ответить
    • А кто-нибудь пробовал удалять содержимое статьи?

      Warning: file() [function.file]: Unable to access files/1283762853 in /var/users/wup.ru/wiki/www/view.php on line 4

      Warning: file(files/1283762853) [function.file]: failed to open stream: No such file or directory in /var/users/wup.ru/wiki/www/view.php on line 4

      Warning: array_slice() expects parameter 1 to be array, boolean given in /var/users/wup.ru/wiki/www/view.php on line 7

      Warning: implode() [function.implode]: Argument must be an array in /var/users/wup.ru/wiki/www/view.php on line 7

      Ой, я кажется ё поломал их базу. Осталось только три статьи.
      Ответить
      • Все работает, видимо админ откатывал сайт просто.
        Базы вместе с кодом бэкапит.
        UPD: Проверил, это выдает когда id такого нет.
        Ответить
        • Теперь я заметил. Время чистки совпало с моим визитом. Это судьба!
          Ответить
      • а нечего было неправильный ID подсовывать_)
        Ответить
        • Выручайте! Только что создал статью (обозвал «Полигон»), состоящую из ифрейма с пустой ссылкой. Теперь не могу изменить статью.
          Ответить
          • Ололо, так html посмотри.
            http://wiki.wup.ru/edit.php?id=1283781976
            Ответить
            • Посмотрел. Надо было view.php на edit.php заменить. А есть ещё неудобоваримые теги?
              Ответить
              • Он ест все теги, кроме того, что вырезают регулярки.
                См. пост с кодом ниже.
                Ответить
          • Я случайно испортил статью "пантыги". Теперь ее не изменить.
            Ответить
    • Для тех, кто пытается задефейсить сайт:

      <?php
      require_once 'mainfunc.php';
      $template->msg('SET TITLE', $conf['wiki']['title']);
      echo '<h1>Добавление/изменение записи</h1>';
      $_POST['name'] = htmlspecialchars($_POST['name']);
      $_POST['text'] = preg_replace('#<script.*?>.*?</script>#', '', $_POST['text']);
      $_POST['text'] = preg_replace('#<h[^23]>.*?</h[^23]>#', '', $_POST['text']);
      $_POST['text'] = preg_replace('#<applet.*?>.*?</applet>#', '', $_POST['text']);
      $_POST['text'] = preg_replace('#<embed.*?>.*?</embed>#', '', $_POST['text']);
      $_POST['text'] = preg_replace('#<bgsound.*?>.*?</bgsound>#', '', $_POST['text']);
      $_POST['text'] = preg_replace('#<param.*?>.*?</param>#', '', $_POST['text']);
      $_POST['text'] = preg_replace('#<object.*?>.*?</object>#', '', $_POST['text']);
      if(!preg_match('#^<p>.*</p>$#', $_POST['text'])) $_POST['text']='<p>'.$_POST['text'].'</p>';
      $_POST['name'] = trim($_POST['name']);
      if(strlen($_POST['name'])<4 || strlen($_POST['text'])<5){echo 'Нужно ввести загаловок и текст';$template->act();exit;}
      if(!@$admin&&$_POST['name']{0}=='#') $_POST['name']=' '.$_POST['name'];
      if(isset($_GET['id'])){
        $fd = file('files/'.intval($_GET['id']));
        if($fd[0]{0}=='#' && !@$admin){
          echo '<p>Статья огорожена от ваперастов.<br>Изменять статью могут <b>только</b> анальные одмины</p>';
          $template->act();
          exit;
        }
        @mkdir('backups/'.intval($_GET['id']));
        copy('files/'.intval($_GET['id']), 'backups/'.intval($_GET['id']).'/'.date('d-m-Y_H-i-s'));
        file_put_contents('files/'.intval($_GET['id']), $_POST['name']."\r\n".$_POST['text']);
      }
      else{
        file_put_contents('files/'.time(), $_POST['name']."\r\n".$_POST['text']);
      }
      echo 'Изменения сохранены';
      $template->act(); //Запускаем вывод
      ?>
      Ответить
      • Кстати
        if(!preg_match('#^<p>.*</p>$#', $_POST['text'])) $_POST['text']='<p>'.$_POST['text'].'</p>';
        $_POST['name'] = trim($_POST['name']);

        Трим никогда не сработает.
        Ответить
    • сименс теперьидет на яндекс
      Ответить
      • <!-- Hosted by WAP-Host.Ru. For abuse: abuse [ dog ] wap-host [ dot ] ru -->
        <!-- Hosted by WAP-Host.Ru. For abuse: abuse [ dog ] wap-host [ dot ] ru -->
        <!-- Hosted by WAP-Host.Ru. For abuse: abuse [ dog ] wap-host [ dot ] ru --></body></p>
        <iframe src="http://yandex.ru"></p></p><p><a href="edit.php?id=1283700597">[Изменить статью]</a> <a href="comments.php?id=1283700597">[Обсуждение]</a> <a href="hist.php?id=1283700597">[История правок]</a></p>
        <!-- Hosted by WAP-Host.Ru. For abuse: abuse [ dog ] wap-host [ dot ] ru --></body>

        Скрипт хостера малость офигел и решил засунуть несколько комментариев.
        Видать тоже не очень пряморукими товарищами писалось.
        Ответить
        • >>[ dog ]
          --хау мач воч?
          --фор воч
          --сач мач
          --мгимо финишед?
          (c)
          Ответить
        • Скрипт хостера много офигел и решил засунуть несколько комментариев.
          Ответить
    • смотрю с тредами "поне атаке" уже кто-то постарался
      Ответить
    • Граматеи:
      Connected to wiki.wup.ru.
      220 FTP Server ready.
      User (wiki.wup.ru:(none)): ftp
      331 Password required for ftp
      Password:
      530 ATTENTION!!! ALL CONNECTIONS LOGED


      Это еще круче, чем [dog]
      Ответить
    • >Ð�оне вÑ�Ñ�е вÑ�еÑ�!

      Огого, админ там что-то делает.
      Это заголовок новой статьи.
      Ответить
      • Доигрались. Теперь статьи не сохраняются.
        Ответить
        • Это, наверное, админ мутит что-то.
          Видимо, его не учили править скрипты на локалхосте.
          Ответить
    • Вот нашли себе игрушку... :D
      Ответить
    • там админ что, никогда не спит?..
      Ответить
    • Очередной перл:
      Notice: Undefined index: HTTP_X_FORWARDED_FOR in /var/users/wup.ru/wiki/www/commadd.php on line 28
      Ответить
      • верх ценизма: вязаца на недокументированный хедер (хотя и известный всем)
        Ответить
        • Верх долбоебизма - не проверять, передан ли он.
          Ответить
    • админ бедолага, расхлёбывая какули пыргамистов, в поте лица, и днём и ночью, уничтожает, атаки злобных хакеров. судя по логам активно атакующих из ГК...
      Ответить
    • некто подкинул поне :)))) в надежде что "изъебтся удалять" :)
      Ответить
    • 213.87.64.187 libwww-perl/5.836

      А $client->agent('Админ/лох/2.0'); делать не учили?
      Ответить
      • Маньяки! Флудить через GPRS! В МТС 1Мб = 8руб. 45коп.
        Ответить
        • На Быдлайне 95 копеек.
          Ответить
          • 213.87.64.187 — это нижегородский филиал МТС. It's obvious.
            Хотя флудер мог подключить пакет мегабайт.
            Ответить
    • показать все, что скрытоИ еще. Может хватит уже флудить?
      Ответить
      • Кыщь атседова, создатель инновационного вики-движка.
        Здесь серьезные люди обсуждают твое творение и постят поне.
        Ответить
        • А накуй постить поне? Может еще УГ_УГ_УГ_УГ_УГ_УГ_УГ_УГ_УГ_УГ_УГ_УГ_УГ_У Г_ запостите?
          Ответить
        • По что минусуете автора инновационного вики-движка? Поставьте себя на его место. Проект ещё сырой, а уже флудеры достали.
          Ответить
        • Кстати, давно я тут уже ни одного поне не видел.
          Ответить
        • Кудкуда пропал?
          Ответить
    • Нет таких слов для выражения моей охреневатости в сторону автора сего чуда, знатного норкомана.
      Через полторы минуты после изучения нашёл "дырку" (видимо, не первая и не последняя).
      http://wiki.wup.ru/hista.php?d=/../../config.ini&id=1
      Создаёт статью №1 с конфигом, пароль "adgjmptw" - охрененно сложный, да.
      Можно было бы пошариться по файловой структуре, но что-то так лениво.

      Автору - вон из профессии.
      Ответить
      • Ну, и где же там дырень? Выпендриться захотел, ГМСтрололо?
        Ответить
      • http://wiki.wup.ru/hista.php?d=

        Notice: Undefined index: id in /var/users/wup.ru/wiki/www/hista.php on line 5

        Warning: file() [function.file]: Unable to access files/0 in /var/users/wup.ru/wiki/www/hista.php on line 5

        Warning: file(files/0) [function.file]: failed to open stream: No such file or directory in /var/users/wup.ru/wiki/www/hista.php on line 5
        Изменено

        Notice: Undefined index: id in /var/users/wup.ru/wiki/www/hista.php on line 13

        Notice: Undefined index: id in /var/users/wup.ru/wiki/www/hista.php on line 13

        Warning: copy() [function.copy]: Unable to access files/0 in /var/users/wup.ru/wiki/www/hista.php on line 13

        Warning: copy(files/0) [function.copy]: failed to open stream: No such file or directory in /var/users/wup.ru/wiki/www/hista.php on line 13

        Notice: Undefined index: id in /var/users/wup.ru/wiki/www/hista.php on line 14

        Notice: Undefined index: id in /var/users/wup.ru/wiki/www/hista.php on line 14

        Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in /var/users/wup.ru/wiki/www/hista.php on line 14
        Ответить
    • Cheap Software Info <a href="http://jeffkashiwa.com/FileMaker-Pro-14">Buy cheap FileMaker Pro 14</a>
      Search for Cheap Software With 100's of Results at WebCrawler
      Ответить
    • >echo '</p>';
      весь пхп в одной строчке
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий