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

    +2

    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
    <?php
        define('_SECUR_GAMES', 1);
        $rootpath = '../';
        require_once '../includes/start.php';
        require_once '../includes/function.php';
        require_once '../includes/header.php';
    if($level >0 AND $fr_id!=0)
    {
    $header='alliance';
    mysql_query("UPDATE `mesto` SET `place` = '".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($header)))))))."' WHERE `uid`=".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($use_id)))))))."");
    }
    $fr=check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($_GET['f'])))))));
    $q = mysql_query("SELECT * FROM `fractions` WHERE `id`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($fr)))))))."'");
    $f = mysql_fetch_array($q);
    $ucount = mysql_result(mysql_query("SELECT COUNT(*) FROM `fractions_users` WHERE `uid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($use_id)))))))."' AND `fid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($f['id'])))))))."';"), 0);
    $fadm = mysql_result(mysql_query("SELECT COUNT(*) FROM `fractions_users` WHERE `uid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($use_id)))))))."' AND `fid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($f['id'])))))))."' AND `adm`=1;"), 0);
        if($game==0 OR $level==0 OR $ban==1){
               echo "<title>Доступ закрыт!!!</title>";

    @since 2019

    Запостил: eskrano, 25 Апреля 2019

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

    • > check(htmlspecialchars(stripslashes( addslashes(strip_tags( mysql_real_escape_string(trim(

      LOOOOOOL
      Ответить
      • а всее равно XSS и SQL инекция
        Ответить
        • strip_tags же против XSS
          mysql_real_escape_string - против SQL
          Ответить
          • Значит, код защищён и от XSS, и от SQL-инъекции! Вероятно, ещё от чего-нибудь защищён, раз столько функций сразу вызвали.
            Ответить
            • stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes(
              Ответить
              • Там ещё зачем-то вызывается загадочная функция check.
                Ответить
                • Она эскейпит строку по второму разу, чтоб наверняка.
                  Ответить
                  • Нашёл код этой функции:
                    function check($str)
                        {
                            $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
                            $str = str_replace("'", "'", $str);
                            $str = str_replace("rn", "<br/>", $str);
                            $str = strtr($str, array(chr("0") => "", chr("1") => "", chr("2") => "", chr("3") => "", chr("4") => "", chr("5") => "", chr("6") => "", chr("7") => "", chr("8") => "", chr("9") => "", chr("10") => "", chr("11") => "", chr("12") => "", chr
                            ("13") => "", chr("14") => "", chr("15") => "", chr("16") => "", chr("17") => "", chr("18") => "", chr("19") => "", chr("20") => "", chr("21") => "", chr("22") => "", chr("23") => "", chr("24") => "", chr("25") => "", chr("26") => "", chr("27") =>
                            "", chr("28") => "", chr("29") => "", chr("30") => "", chr("31") => ""));
                            $str = str_replace('\', "\", $str);
                            $str = str_replace("|", "I", $str);
                            $str = str_replace("||", "I", $str);
                            $str = str_replace("/\$/", "$", $str);
                            $str = str_replace("[l]http://", "[l]", $str);
                            $str = str_replace("[l] http://", "[l]", $str);
                            $str = mysql_real_escape_string($str);
                            return $str;
                        }
                    Ответить
      • > addslashes
        Возвращает строку с обратным слешем перед символами, которые нужно экранировать.

        Кому и зачем их нужно экранировать?
        Ответить
        • Чтобы инъекции не было!

          До версии PHP 5.4.0, директива magic_quotes_gpc была включена по умолчанию и, фактически, addslashes() автоматом применялась к данным GET, POST и COOKIE. Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.
          Ответить
          • Т.е. код, который отлично работал на 5.3, в 5.4 стал уязвимым?
            Ответить
            • Пыхопроблемы меня только забавляют.
              Ответить
              • О боже мой, расскажи мне подробнее про пыхопроблемы
                Ответить
                • Ну как, работал сайт на PHP 5.3, разработчик надеялся на магические кавычки. А потом админ обновил PHP до 5.4, а там магические кавычки по умолчанию выключены.

                  С чем бы более простым сравнить? Ну например, лазил кто-то по сайтам Хромом из Windows XP. Назойливой рекламы не было, потому что рекламные баннеры были на https с эллиптической криптографией, а с таким софтом этот протокол недоступен. А потом он решил перейти на более современную систему или сменить браузер на нормальный.
                  Ответить
      • $pswd = $salt .  md5(md5($salt) . md5($_POST['login']) . md5($_POST['password']));
        mysql_query("INSERT INTO users (login, password) value ($_POST['user'], $pswd);

        а на дворе 2019 год...
        Ответить
        • md5, ох
          Ответить
          • Что ты имеешь против MD5, ты?
            Ответить
            • Нашёл коллизию к MD5 у тебя за щекой, проверь.
              Ответить
              • Не зная хэша пароль, тем более по сети, так просто не подберёшь.
                Ответить
                • Смысл хэширования паролей не в том, чтобы их нельзя было подобрать по сети, а в том, чтобы когда спиздят БД, пароли клиентов не попали в руки хацкеров. С точки зрения безопасности к брутфорсу по сети, пароли вполне можно хранить плейнтекстом, разницы никакой.
                  Ответить
                  • А если проебать соль, что делать?
                    Ответить
                    • Произнесите: «Соль не вода и уйдёт без следа» — и бросьте её через плечо, обязательно левое.
                      Ответить
                    • Извиняться перед пользователями и сбрасывать все пароли. Но обычно соль хранят в той же табличке, что и хэшированные пароли, поэтому проебать её и не проебать остальные данные будет сложно.
                      Ответить
                  • А у хозяина есть черная консолечка, он в ей брутит хэши.
                    Ответить
              • А кто из вас реально находил коллизию MD5, а не только в книжках читал про неё?
                Ответить
            • Говна поклюй.
              Ответить
              • Я его клюнул, а оно зашевелилось, и что-то там начало говорить про то что "MD5", "JSON", JavaScript" и "PHP" —– говно, и оно за "XML", "Ruby" и "Kotlin".
                Ответить
                • Это не говно было а змея свернувшаяся.
                  https://avatars.mds.yandex.net/get-pdb/467185/c1f67973-ede4-4a05-b380-c5d679f9cad5/s1200?webp=false
                  Ответить
                • А про сетевые протоколы ничего не говорило?
                  Ответить
                • У тебя кавычки непарные.
                  Ответить
                  • Именно поэтому я за 'J'"_.
                    Ответить
                    • А я за язык, в котором есть «catcode».
                      \catcode`[=1
                      \catcode`<=2
                      \catcode`{=12
                      \catcode`}=12
                      \catcode`(=0
                      (catcode`\=12
                      Теперь можно \, { и } использовать в качестве обычных симолов, для открытия и закрытия группы использовать [ и <, а вместо обратного слеша использовать (.
                      Текст. [(b Жирный текст.< Обычный текст.
                      Ответить
                      • Жаль в "PHP" нету мокросов.
                        Ответить
                        • <?php
                          define('{', '«');
                          define('{{', '»');
                          define('{{{', PHP_EOL);
                          echo 'Переведи на '.constant('{').'PHP'.constant('{{').constant('{{{');
                           
                          ${'{'} = '«';
                          ${'{{'} = '»';
                          ${'{{{'} = PHP_EOL;
                          echo "Переведи на ${'{'}PHP${'{{'}${'{{{'}";


                          https://ideone.com/BUAcwB
                          Ответить
                        • <?php
                          
                          ${"'"} = 'П';
                          ${'"'} = 'н';
                          $а     = 'P';
                          $в     = 'д';
                          $д     = 'и';
                          $е     = 'р';
                          $н     = 'а';
                          $П     = 'е';
                          $р     = 'в';
                          $P     = 'H';
                          $H     = PHP_EOL;
                          
                          echo ${"'"}.$${"'"}.$$${"'"}.$${"'"}.$$$${"'"}.$${"'"}.$$$$${"'"}.$$$$$${"'"};
                          echo ' '.${'"'}.$${'"'}.' '.$$${'"'}.$$$${'"'}.$$${'"'}.$$$$${'"'};


                          https://ideone.com/T67J3H
                          Ответить
                          • wordlist constant kokoko
                            kokoko set-current
                            : kokoko previous postpone ; ; immediate
                            definitions
                            : kokoko :noname get-order kokoko swap 1+ set-order ;
                            : kukarek" postpone ." ; immediate
                            : kok over ;
                            : ko pick ;
                            kokoko source nip >in ! kokoko
                            kokoko cr kokoko
                            kokoko kukarek" ." kokoko
                            kokoko [char] " emit kokoko
                            kokoko kukarek" h" kokoko
                            kokoko kukarek" t" kokoko
                            kokoko kukarek" r" kokoko
                            kokoko kukarek" o" kokoko
                            kokoko kukarek" F" kokoko
                            kokoko space kokoko
                            6 ko
                            kokoko kukarek" S" kokoko
                            2 ko
                            kokoko kukarek" а" kokoko
                            kokoko kukarek" н" kokoko
                            2 ko
                            kokoko kukarek" и" kokoko
                            kokoko kukarek" д" kokoko
                            kokoko kukarek" е" kokoko
                            kokoko kukarek" в" kokoko
                            kok
                            kokoko kukarek" р" kokoko
                            kok
                            kokoko kukarek" П" kokoko
                            : kokoko execute ;
                            kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko kokoko
                            https://ideone.com/MeVNZb
                            Ответить
                        • > Жаль в "PHP" нету мокросов.
                          Жаль что есть "PHP"
                          Ответить
                          • "PHP" - это лучшее, что придумали пхпшники.
                            Ответить
                          • Наоборот, очень хорошо, что есть "PHP", представь сколько было бы бомжей, есди бы не было "PHP".
                            Ответить
                            • Почему бомжей? Люди работали бы уброщиками, охранниками, таксистами
                              Ответить
                            • Питоничтф -- бомжи
                              Ответить
        • > md5($salt) . md5($_POST['login']) . md5($_POST['password'])
          Выглядит секьюрно.
          Ответить

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