ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

12.01.2009, 13:03
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от mad_dog
так а кто может обучить Чайника!?
Дядя Cpacha. Иди ищи соседние темы,там есть видео и статьи...а лучше всего,как мне однажды сказали,"иди долб**** на ru.php.net там все есть!"...
|
|
|

12.01.2009, 19:21
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Посмотри содержимое файла в блокноте, наверняка там какой-то не регулярный контент... В смысле, того файла, который тебе отдаёт скрипт... Скрипт хоть в одной папке с файлами лежит?
|
|
|

12.01.2009, 19:27
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
Сообщение от groundhog
Посмотри содержимое файла в блокноте, наверняка там какой-то не регулярный контент... В смысле, того файла, который тебе отдаёт скрипт... Скрипт хоть в одной папке с файлами лежит?
Нет не в одной! вот скрипт:
PHP код:
<?php include("db.php");
if (isset($_POST['vibor'])) { $vibor = $_POST['vibor'];}
if (isset($_POST['load'])) { $adres = $_POST['load'];}
$result1 = mysql_query("SELECT * FROM data WHERE id='$vibor'",$db);
if (!$result1)
{
exit(mysql_error());
}
if (mysql_num_rows($result1) > 0)
{
$myrow1 = mysql_fetch_array($result1);
$mas = getimagesize($adres);
$width = 215;
$heigth = $mas[1]+270;
$adres1 = "admin/".$myrow1['url'];
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg($adres);
$im2 = imagecreatefromjpeg('logo.jpg');
$im3 = imagecreatefromjpeg($adres1);
$i=1;
$name = "avat".$i++.$myrow1['name'];
imagecopy($im, $im2, 0, $mas[1], 0, 0, 215, 20);
imagecopy($im, $im1, 0, 0, 0, 0, 215, $mas[1]);
imagecopy($im, $im3, 0, $mas[1]+20, 0, 0, 215, 350);
//размеры аватарки
$width = imagesx($im);
$height = imagesy($im);
//добавляем уголки
$tl = imagecreatefrompng('tl.png'); //top left
$tr = imagecreatefrompng('tr.png'); //top right
$dl = imagecreatefrompng('dl.png'); //down left
$dr = imagecreatefrompng('dr.png'); //down right
//размеры уголков (предпологается, что размер углов одинаковый )
$w = imagesx($tl);
$h = imagesy($tl);
imagecopy($im, $tl, 0, 0, 0, 0, $w, $h);
imagecopy($im, $tr, $width-$w, 0, 0, 0, $w, $h);
imagecopy($im, $dl, 0, $height-$h, 0, 0, $w, $h);
imagecopy($im, $dr, $width-$w, $height-$h, 0, 0, $w, $h);
imagejpeg($im,"avatar/$name");
imagedestroy($im);
}
else
{
exit();
}
printf("<a href='get.php?file=avatar/$name'><img src='avatar/$name' alt=''/></a>");
?>
PHP код:
<?php
if(!empty($_GET['file'])){
$filename = basename($_GET['file']);
@header('Content-Disposition: attachment; filename="'.$filename.'"');
@header('Content-Type: application/x-force-download; name="'.$filename.'"');
readfile($filename);
}
?>
|
|
|

12.01.2009, 19:53
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну смотри - readfile($filename) у тебя написано. Но перед этим ты делаешь $filename = basename($_GET['file']), то есть отсекаешь всё кроме имени файла... Таким образом твой скрипт отдаёт хидеры и пытается читать контент файла из той директории, в которой он находится сам... Попробуй вот так:
Код:
<?php
if(!empty($_GET['file'])){
$filename = trim($_GET['file']);
@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');
readfile($filename);
}
?>
Но учти, что в таком случае скрипт является include уязвимым... Тогда уже так делай:
Код:
<?php
if(!empty($_GET['file'])){
$filename = trim($_GET['file']);
@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');
readfile(dirname(__FILE__) . '/' . $filename);
}
?>
Последний раз редактировалось groundhog; 12.01.2009 в 20:01..
|
|
|

12.01.2009, 20:20
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
groundhog Спасибо так работает!
А как избавиться от иклуд??
Pregmatch-ем можно?
|
|
|

12.01.2009, 20:26
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Вот так замути
Код:
<?php
if(!empty($_GET['file']) && file_exists($_GET['file'])){
$filename = trim($_GET['file']);
@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');
$filename = str_replace('..', '', $filename);
readfile(dirname(__FILE__) . '/' . $filename);
}
?>
|
|
|

12.01.2009, 20:40
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
Сообщение от groundhog
Вот так замути
Код:
<?php
if(!empty($_GET['file']) && file_exists($_GET['file'])){
$filename = trim($_GET['file']);
@header('Content-Disposition: attachment; filename="'.basename($filename).'"');
@header('Content-Type: application/x-force-download; name="'.basename($filename).'"');
$filename = str_replace('..', '', $filename);
readfile(dirname(__FILE__) . '/' . $filename);
}
?>
А гет файл по моему тоже не проверяется это же инъекция по моему?
|
|
|

12.01.2009, 20:45
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
ну если ты это в базу не пишешь, то нету инъекции
|
|
|

12.01.2009, 21:05
|
|
Постоянный
Регистрация: 21.08.2008
Сообщений: 302
Провел на форуме: 458686
Репутация:
-25
|
|
groundhog Спасибо тебе
|
|
|

12.01.2009, 21:06
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Гавно вопрос, обращайся если что
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|