П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 184469 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 84598 раз(а).

Учебник HTML.
Просмотров 78543 раз(а).

Руководство по PHP5.
Просмотров 49144 раз(а).

Хостинг через призму DNS.
Просмотров 56738 раз(а).

Подборка текстов стандартных документов.
Просмотров 48465 раз(а).

Учебник PHP - Самоучитель
Просмотров 55052 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 56174 раз(а).

Внешние атаки...
Просмотров 45627 раз(а).

Учебник PHP.
Просмотров 40375 раз(а).

SSI в примерах.
Просмотров 30532 раз(а).






 
 
| Добавить в избранное | Сделать стартовой Project.Net.Ru | Помощь





Perl скрипты

Использование незащищенного символа "

Иногда параметр "защищают" от нежелательного использования при помощи кавычек. Мы изменим скрипт finger.cgi так, чтобы защитить таким способом переменную $login.

Однако, если в скрипте перед кавычками не ставятся бэкслэши, этот метод не дает пользы. Пара кавычек, добавленных из вашего запроса, испортит все дело. Так получится, потому что первая кавычка из запроса закроет открывающую кавычку из скрипта. Затем, вы можете вписать команду, а вторая кавычка из запроса откроет строку, которую закроет вторая кавычка из скрипта.

Скрипт finger2.cgi иллюстрирует это:

#finger2.cgi

print "<BODY>";
$login = $input{'login'};
$login =~ s/\0//g;
$login =~ s/([<>\*\|`&\$!#\(\)\[\]\{\}:'\n])/\\$1/g;
print "Login $login<BR>\n";
print "Finger<BR>\n";
#Новая (не)эффективная супер-защита:
$CMD= "/usr/bin/finger \"$login\"|";
open(FILE,"$CMD") || goto form;
while(<FILE>) {
  print;
}

URI для выполнения берем:

finger2.cgi?login=kmaster%22%3Bcat%20%2Fetc%2Fpasswd%3B%22

Оболочка получит команду /usr/bin/finger "$login";cat /etc/passwd;"", кавычки не доставят нам никаких проблем.

Поэтому важно, если вы хотите обезопасить пареметры при помощи кавычек, ставить бэкслэши перед ними, также как и перед точкой с запятой и бэкслэшем, что мы обсуждали ранее.

[ Назад ] [ Содержание ] [ Вперед ]



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru