PDA

Просмотр полной версии : Я НАШЁЛ _НЕЧТО_ В Ie!!! БАГ ИЛИ ШАЛОСТЬ? Думаем вмсесте...


_kREveDKo_
14.04.2006, 22:18
Уважаемые ачатовцы, я откопал косяк в Осле. Сложно сказать, косяк ли это, аль просто детская шалость,
можно ли с этого что-то, поиметь но факт есть факт - я что-то нашёл... =)
Лично я и мои знакомые с ачата ничего не смогли из этого ничего поднять, поэтому выкладываю это
в широкие массы на любимый сайт, которому я предан с самого его основания =) Можт народ
чего нащупает.


Теперь суть:

Ищем в реестре ветку:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

Создаём параметр Window Title и заносим туда магическую последовательность %s
Думаю не сложно дагодаться для чего этот параметр...

После этого, при запуске, наш всемилажаемый IE бездыханно падает... Вот так-то...




Если у кто-либо достигнет успехов в реализации этого косяка,просьба отписываться тут,
ибо да здравствует античат.

m0nzt3r
14.04.2006, 22:26
переполнение буфера идет....или что-то вроде этого))

Achtung!
14.04.2006, 22:36
врядли, хотя кто знает как ие обрабатывает заголовок

tclover
14.04.2006, 22:37
Открою тебе небольшой секрет. Если писать в реестре всякую х%йню, то упадёт не только осёл, а вся винда.

KEZ
14.04.2006, 22:38
Не надо писать чушь...
-->


переполнение буфера идет....или что-то вроде этого))


Вообще-то, ошибка формата строки.
Это происходит, т.к. при записи в одну область памяти строки, тоесть набора байт используется ф-ия wsprintf?()
Например так можно записать по адресу a строку b:
sprintf( a, b );
или
sprintf( a, "%s", b );
Чтобы записать в a строку "привет от [тут строка b]"
можно сделать так
sprintf( a, "привет от %s", b );

Такой способ безопасен, т.к. если b содержит ключи формата (%s, %x, %d, и т.п.), ничего не произойдет. А если делать так
sprintf( a, b );
то при занесении в b строки "%s", ф-ия прочитает из стека последнее записаное число и выведет строку по этому адресу (пока не будет ноль).
Так можно читать стек (только вниз)

Это частая ошибка, приводит к некорректным значениям ESP (указатель стека).
Очень часто бывает исключение (потом, retn извлечет не тот адрес, который был записан инструкцией call, а след. за ним, т.к. sprintf() сняла 4 байта из стека).

Часто бывает удаленный DoS. В некоторых ftpd.

Тут это смысла не имеет, ведь никаким клиенским скриптом писать в реестр нельзя.

При таких страничках ничего не будет

<html>
<head><title>%s %d %x</title>
</head>
<body>
<script>document.title="%s";</script>
</body>
</html>

drmist
14.04.2006, 23:28
Ну собственно KEZ все сказал ))
если найдешь побольше похожих багов в теории сможешь написать .reg-вирус )

bxN5
15.04.2006, 03:21
А собствено если ето даже и был бы баг то я думаю мало кого удивило бы что его нашли в IE--- (must die)