Защищен ли вот такой код [eval]

Discussion in 'Уязвимости' started by oxod, 2 Apr 2010.

  1. oxod

    oxod New Member

    Joined:
    23 Jan 2009
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    PHP:
    <?php
    $a
    =$_GET['a'];
    eval(
    'print ($a);');
    ?>
    Фильтрации никакой нет.
    Задача выполнить функцию или вывести значение переменной
     
    #1 oxod, 2 Apr 2010
    Last edited: 2 Apr 2010
  2. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    защищен.
    так нет
    eval("print ($a);");
    так да
    eval("print (\$a);");
    так нет
    eval('print ('.$a.');');
     
    #2 ShAnKaR, 2 Apr 2010
    Last edited: 2 Apr 2010
  3. oxod

    oxod New Member

    Joined:
    23 Jan 2009
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    Я именно свой пример хотел пообсуждать, с одинарными кавычками.
    Другие мнения кроме "защищен" будут?

    Про последнее - не может оно работать. Выполняется код без подстановки значения переменной в исполняемую строку, ничего не заэкранируешь.
     
  4. oxod

    oxod New Member

    Joined:
    23 Jan 2009
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    В продолжении темы:
    preg_replace("/(.*)/e","<p/>\\1",$a);

    вот хоть тесни, ошибка синтаксиса на первом байте (<)

    может кто проверял на разных версиях php?
     
  5. Red_EYEs

    Red_EYEs Member

    Joined:
    7 Aug 2009
    Messages:
    32
    Likes Received:
    12
    Reputations:
    11
    XSS - есть полюбому
     
  6. Red_EYEs

    Red_EYEs Member

    Joined:
    7 Aug 2009
    Messages:
    32
    Likes Received:
    12
    Reputations:
    11
    ?a=<script>evil code</script> =)
     
  7. oxod

    oxod New Member

    Joined:
    23 Jan 2009
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    надо выполнение кода ес-но ;)))
     
Loading...