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

    +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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    // File: /controllers/register.php
    
    //......
    $sql = 'INSERT INTO `users` SET `ID`=NULL, `login`="'.mysql_real_escape_string(substr($_POST['login'], 0, 12)).'", `pass`= blah blah blah....';
    //......
    
    
    
    // File: /templates/default/index.tpl
    /*
    //... 
    <td><div>Hello, <b>{LOGIN}</b></div><!---- blah blah blah ---><div>Server time: <?php echo getCurrentTime();?></div>
    //
    */
    
    
    //File: /index.php
    
    //......
    $sql = 'SELECT * FROM `users` WHERE `id`=........';
    $data = SYS::$db->getDataRow($sql);
    if(sizeof($data)>0) {
          showTeplate(TEMPLATE_NAME, 'index', $data);
    }
    //......
    
    //Function showTeplate();
    
    function showTeplate($tpl_name, $file_name, $data) {
           $template_code = file_get_contents(TPL_PATH.'/'.$tpl_name.'/'.$file_name.'.'.TPL_EXT);
           foreach($data as $name=>$value) {
                  $template_code = str_replace('{'.strtoupper($name).'}', $value, $template_code);
           }
           
          //......
           eval($template_code);
          //......
    
    }

    Внимание, загадка! Найти уязвимость.

    Запостил: jokz, 04 Августа 2011

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

    • не вижу нигде htmlspecialchars, поэтому, если ввести в логин произвольный html+js код, то он выполнится
      Ответить
    • Ноу вордс...
      Ответить
    • // File: /controllers/register.hpp
      Ответить
    • lucidfox, молодец. На вид более менее удобоваримый код, ну подумаешь XSS, но там даже обрезается переменная до 12ти символов, уже не вариант никак эту уязвимость использовать. Но если внимательно присмотреться, тут просто эпический пиздец, исполнение PHP кода.
      Ответить
      • да всё путём. для пхп это нормально
        Ответить
        • извини, а при чем здесь PHP? помоему тут решающую роль играет долбоебизм
          Ответить
          • да, но php выращивает долбоёбов
            Ответить
            • а можно объективные аргументы, почему?
              Ответить
              • Какие на хуй аргументы просто на лурке написано что пхп говно. Вот и весь аргумент.
                Ответить
                • ах да.. теперь только один язык программирования хорош - ваш ! Вам так повезло !
                  Ответить
                  • Это Вы к чему???
                    Ответить
                    • Извините сорвался. PHP не говно, просто быдло-кодеров в PHP больше чем в других языках программирования..
                      Ответить
                      • > PHP не говно
                        Теперь опять придется извиняться.
                        Ответить
              • Не постоянное направление развития языка и его стандартной библиотеки превратило его в несвязанное говно. Сотни старых функций и фич пересекаются и противоречат новым.
                Ответить
              • прыщавые соски рекламируют в своих кругах пхп и подсаживают на него новых прыщеблядей
                Ответить
              • низкий порог вхождения
                Ответить
              • да, правда, какие мощные аргументы. Почему если PHP гавно, то Python, Ruby, Perl не говно? да, к слову, в с++, с#, такое невъебенное развитие идет, ясен хрен, не то что в пхп.
                Ответить
            • Я так понял это горький опыт с личной жизни
              Ответить

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