четверг, 18 сентября 2008 г.

Защищаем сервер от взлома через upload

В последнее время развелось множество любителей взлома через директорию upload, которые взламывают соседей по серверу.


Немного теории о том, как это происходит и как от этого защититься.


[ad#ad-5]

Злоумышленник размещает на сервере свои скрипты, которые получают список домашних директорий пользователей и начинают поиск директорий для upload, где разрешена запись всем.
Найдя такие директории, они закачивают туда свои скрипты и через них производят попытку взлома.

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

Для решения этой проблемы нами был разработан и протестирован на FreeBSD следующий скрипт, который рекурсивно обходит пользовательские директории и создает .htaccess файл, отключающий исправление скриптов:



#!/bin/sh
HOME=/home
NOBODY=nobody

htaccess () {
cat "$j/.htaccess"

RemoveType php
Options -ExecCGI -Indexes
EOF
}

fixupload () {
if [ -e "$j/.htaccess" ]; then
if [ -z "`grep RemoveType "$j/.htaccess"`" ]; then
htaccess
fi
else
htaccess
chown $i:$i "$j/.htaccess"
fi
}

cd $HOME
for i in *; do
if [ -d $i/public_html ]; then
# Fix 777 upload
for j in `find $i/public_html -type d -perm 777`; do
fixupload
done
# Fix 775 nobody upload
for j in `find $i/public_html -type d -perm 775 -group $NOBODY`; do
fixupload
done
# Fix 755 nobody upload
for j in `find $i/public_html -type d -perm 775 -user $NOBODY`; do
fixupload
done
fi
done



Вам нужно только изменить значение двух переменных, указав расположение домашних директорий пользователей и пользователя, из-под которого запускается веб-сервер Apache.

:)

Комментариев нет:

Отправить комментарий