Существует несколько типов угрозы, связанные с работой CGI-скриптов, не важно написаны они на Perl или нет.
– Перегрузки серверов интенсивной работой CGI-скриптов, до состояния полного их негодности.
– Несанкционированные модификации динамически генерируемых страниц включением собственных тегов.
– Несанкционированные получения прав суперпользователя на удаленной машине.
Многие web-серверов, функционирующих непосредственно под управлением UNIX–подобных ОС, имеют привилегию “суперпользователя”, а иначе сервер не откроет требуемый 80 порт. Есть web-серверы, обслуживающие пользователей через нестандартные 8000 и 8080 порты и могут пользоваться правами непривилегированных пользователей. Но из-за неудобств связанных с этой схемой, она не получила широкого распространения.
ОС из семейства Windows не ограничивают обработку входящих TCP- соединений и разрешают открывать 80 порт, пользуясь прикладным кодом, запущенным с гостевыми правами. Вместе с тем распространенный web-сервер под Windows NT/2000 для работы требует наивысших привилегий.
Многие сервера из-за соображений безопасности понижают привилегия потока, обслуживающего Web-клиента, до статуса непривилегированных пользователей (как правило, www или nobody). Программа, разработанная Nathan Neulinger, запускает CGI-скрипты с правами их владельцев (скрипты работают от имени и с привилегиями данного web-сервера).
Допущенные ошибки в скриптах могут привести к несанкционированным получениям прав пользователей на удаленных машинах, в худшем случае и получение прав самого администратора.
Получив права пользователя, злоумышленники смогут модифицировать web-страницу, как им вздумается, например, получить доступ к файлам протоколов, паролям сайта, номерам кредитных карточек или использовать сервер как стартовая точка для атак на другие узлы. А с правами администратора они могут делать с системой все что угодно.