ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 23.07.2008, 10:58
5triker
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме:
771228

Репутация: 77
По умолчанию

тс спросил как обезопасить етот скрипт ? или тема называется "ТОЛЬКО безопасные скрипты" ? насколько я вижу , раздел PHP,PERL,Javascript . причем сдесь то безопасен ли этот скрипт ? тс попросил пример - ему дали , дальше это его дело пользоватся им или нет , ему никто ничего не навязывает

а если нужен безопасный скрипт можно сделать так
PHP код:

<?php   
$location
=array (  
'1'=>"http://google.com",  
'2'=>"http://mail.ru",  
....  
);
$link=intval($_GET['link']);
if (
array_search ($link,array_keys($location))===FALSE)
{die(
"неправильная ссылка");}
else
{
$perehodi=file_get_contents($_GET['link'])+1
 
$fw=fopen ($_GET['link'],"w+");  
fputs ($fw,$perehodi);  
header ("Location: ".$location[$_GET['link']]);  
}
?>

Последний раз редактировалось 5triker; 23.07.2008 в 11:10..
 
Ответить с цитированием

  #12  
Старый 23.07.2008, 11:59
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме:
1607210

Репутация: 1617


Отправить сообщение для SQLHACK с помощью ICQ
По умолчанию

И как это должно работать , сам то тестил?
Хотя бы по логике ?
То есть при линке index.php?link=1 в какой файл будет идти сохранение ?

Вообщем как то так это должно выглядеть.

PHP код:
<?php   
$logfile 
"/home/stat";
$ext=".php"
$location=array (   
'1'=>"http://google.com",   
'2'=>"http://mail.ru",  
); 
$link=intval($_GET['link']); 
if (
array_search ($link,array_keys($location))===FALSE
{
    die(
"неправильная ссылка");

else 
{
    if (
is_file($logfile.$link.$ext))
    {
        if (
is_writeable($logfile.$link.$ext))
        {                           
            
$perehodi=file_get_contents($logfile.$link.$ext); 
            if (
strlen($perehodi)>0)
            {
                
$perehodi intval($perehodi)+1;
            }
            else
            {   
                
$perehodi =1;                    
            }
            
$fw=fopen ($logfile.$link.$ext,"w+");   
            
fputs ($fw,$perehodi); 
            
fclose ($fw);         
            
header ("Location: ".$location[$link]);
            die();   
        }
        else
        {
            die(
"Проверьте права на запись для файла".$logfile.$link.$ext);
        }
    }
    else
    {
        if ((
$fw=fopen ($logfile.$link.$ext,"w+"))==FALSE)
        {
            die(
"Проверьте права на запись для файла".$logfile.$link.$ext);
        }    
        else 
        {   
            
fclose ($fw); 
        }
    }


?>
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!

Последний раз редактировалось SQLHACK; 23.07.2008 в 12:29..
 
Ответить с цитированием

  #13  
Старый 23.07.2008, 12:34
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

SQLHACK Чувак не парься =)

PHP код:
 $fw=fopen ($logfile.$link.$ext,"a+");
 
flock($fwLOCK_EX);
 
$perehodi fread($fw,filesize($logfile.$link.$ext));
 if (
strlen($perehodi)>0
 { 
    
$perehodi intval($perehodi)+1
 } 
 else 
 {    
    
$perehodi =1;                     
 }
 
ftruncate($fw0);
fputs ($fw,$perehodi);
fclose($fw); 
Остольные проверки это на выбор (для красоты )

Последний раз редактировалось Doom123; 23.07.2008 в 12:53..
 
Ответить с цитированием

  #14  
Старый 23.07.2008, 13:42
5triker
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме:
771228

Репутация: 77
По умолчанию

Цитата:
И как это должно работать , сам то тестил?
Хотя бы по логике ?
То есть при линке index.php?link=1 в какой файл будет идти сохранение ?
тестил
по логике , делает GET['link'] числом ищет в массиве location такой ключ если находит прибавляет 1 в файл , не находит die ()
сохранит в файл "1"


и зачем усложнять етим
PHP код:
  if (strlen($perehodi)>0
            { 
                
$perehodi intval($perehodi)+1
            } 
            else 
            {    
                
$perehodi =1
если ето первый переход и файл пустой то пусто+1 то будет все равно 1

Последний раз редактировалось 5triker; 23.07.2008 в 13:52..
 
Ответить с цитированием

  #15  
Старый 23.07.2008, 14:24
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме:
1607210

Репутация: 1617


Отправить сообщение для SQLHACK с помощью ICQ
По умолчанию

я тебе про это
PHP код:
 $fw=fopen ($_GET['link'],"w+"); 
а в начале он на intval проверяется, то есть если я введу 1qasd то будет создан файл 1qasd, и затирания файлов тогда не избежать, к примеру можно юзать, 1/../../../../../etc/passwd, его конечно врядли затрёшь, но это просто пример. таким образом можно затереть любой файл если прав хватит.
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!
 
Ответить с цитированием

  #16  
Старый 23.07.2008, 14:37
5triker
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме:
771228

Репутация: 77
По умолчанию

там я прост забыл поменять $_GET['link'] на $link
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Роковые ошибки Php. Часть вторая. Elekt Уязвимости 23 08.05.2009 02:31
PHP Compiler CMF baltazar PHP, PERL, MySQL, JavaScript 1 19.04.2008 23:00
Использование бага PHP source injection k00p3r Чужие Статьи 0 13.06.2005 14:16
PHP Injection :: Возможно все! k00p3r Чужие Статьи 0 13.06.2005 14:10
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ