Функция expression()

Discussion in 'Болталка' started by Algol, 23 Jul 2004.

  1. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Суть проблемы:
    При нектором XSS используется функция expression примерно таким образом
    </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE"><a href="mailto:[email protected]" style=top:expression(alert())>[/QUOTE]<span id='postcolor'>
    Все прекрасно работает, но скрипт срабатывает при каждой прорисовке страницы, что конечно очень нежелательно.
    Вопрос:
    1)Есть ли такой атрибут CSS, который просчитывается только ОДИН раз ?
    2)Возможно ли из скрипта удалить сам атрибут style из текущего тега? Иными словами, как из скрипта обратится к тегу-хозяину
     
  2. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Впрочем на второй вопрос уже сам нашел ответ: функция this возвращает ссылку на текущий тег. Однако при этом скрипт не моежт удалить сам себя во время исполнения (причину не знаю, выдается сообщение &quot;Член группы не найден&quot;). Но тут есть обходной маневр. Вот такая конструкция срабатывает ровно один раз:
    </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE"><a href="mailto:[email protected]" sss="alert();this.sss=null"
    style="top:expression(eval(this.sss))">[/QUOTE]<span id='postcolor'>
     
  3. JazzzSummerMan

    Joined:
    7 Apr 2004
    Messages:
    374
    Likes Received:
    18
    Reputations:
    14
    спасибо, что поделился разработкой, полезная вещь)