< HomePage | Снимки
<- Понеделник, 1 Януари 2007 | Начална страница | Сряда, 3 Януари 2007 ->
Вторник, 2 Януари 2007

Много мразя мърляшки работи, а в мърляшка работа слагам пълните с грешки логовете на уебсървърите ми. Една от работите ми е да преглеждам логовете. Гадно е, че колкото и да се стараеш постигането на чисти error logs е почти мисия невъзможна, най-често заради идиотите от Майкрософт и идиотите потребляващите бозите им. Колко от вас са виждали заявки за следните файлове?

/_vti_bin/owssvr.dll
/MSOffice/cltreq.asp

Предполагам, всеки който има сайт ги е виждал.

Тези заявки идват от лузери, които имат инсталиран Microsoft Office и Internet Explorer, в който са включили Discuss toolbar (каквото и да е това...). Защо точно са го включили този toolbar един господ знае, но включването му предизвиква тези заявки към всеки сайт, който бива отварян. Абсолютна загуба на трафик, тормоз на сървърите, забавяне браузването и като цяло досада.

Ако все пак да създадете тези файлове, за да не ви се пълнят логовете с глупости, ще останете неприятно изненадани, че това не е всичко. Експлодерта ще реши, че имате инсталирани Microsoft Office Server Extensions (опазил ви господ) и освен двата споменати по-горе файла ще реши че му се ще още и

/_vti_bin/_vti_aut/author.dll
/_vti_bin/shtml.exe/vti_rpc

Когато ми писне да гледам горните заявки към несъществуващи файлове ден след ден, използвам следното, за да ги създам и повече да ми бъркат в очите (вярно, че и в директорията да ги гледам ме нервят, но по-малко :)

cd SITE_ROOT_DIR
mkdir -p MSOffice _vti_bin/shtml.exe/vti_rpc _vti_bin/_vti_aut
touch MSOffice/cltreq.asp _vti_bin/_vti_aut/author.dll

Има естествено и решение с mod_rewrite. Ползвам го, за да описвам всякакви "прилепчиви" връзки, които (отдавна не са|никога не са били) валидни. Направете един празен файл (touch wwwroot/empty.html) и пренасочете заявките към тези файлове с mod_rewrite магия в .htaccess (ако имате FollowSymlinks права за директорията) или в конфигурацията на виртуалният хост:

RewriteEngine on
RewriteRule ^_vti_bin /home/gf/wwwroot/empty.html [L]
RewriteRule ^MSOffice /home/gf/wwwroot/empty.html [L]
RewriteRule ^notexisting/dir/file /home/gf/wwwroot/empty.html [L]

[ Коментари: 7 ]
Коментари

Мхехе. Явно днес ни е ден. Преди половин час изнервен от абсолютно същото, след като се наложи да гледам error_log тръгнах да решавам и аз проблема ...

Написа Н.Пепелишев (www) на 04-Jan-2007 12:29


По-лесно е.

RewriteEngine On
RewriteLog logs/rewrite.log
RewriteLogLevel 3
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /servernotfound.php?%{QUERY_STRING} [L]


Това е много приятен хак, който прихваща невалидни рекуести и вместо да върне 404 ги препраща (302) към скрипт (който пази POST/GET на всичкото отгоре: стандартен 404 има достъп само до бисквити/сесийни vars) и после можеш да правиш какво ли не. Системата за търсене php.net/whatyouwant прави горе-долу това. 0days си изпяват цялата песен като страничен резултат.

Написа Име * на 06-Jan-2007 18:16


Хм. Първо mod_rewrite товари сървера допълнително и ми изглежда малко overkill да се ползва само за това. Освен това някак си не ми става ясно как пазят от 0days точно тези правила, който си дал - проверка дали съществува файл или директория?

Написа Н.Пепелишев на 07-Jan-2007 09:48


Всеки преценява сам за себе си - при мен не се наблюдава предположеното "товарене", нито rewrite се ползва "само за това". Никъде не споменавам, че даденият пример предпазва от нещо, а че разни malware програми решават, че има такъв файл/директория и съответно се опитват да ги атакуват. И всъщност целта при мен не е толкова чист лог файл, а wildcard подобно на някой DNS решения. Ако си девелопър и имаш вземане даване с голям на брой affiliates можеш да видиш бързо ползите. Видя ми се нелогично да се описват "прилепчиви" връзки ред по ред, затова написах този коментар. Още един път - всеки сам решава какво и как да го прави.

Написа Име * на 07-Jan-2007 12:56


Съгласен напълно. За *.domain.com и аз го ползвам на някои машини след обявяването на * в DNS-а. На мен даже не ми е интересно да логвам подобни заявки - само ми хабят дисковото пространство.
Според опита ми разните (web) черволяци не проверяват първо какво има, a директно изстрелват кода на експлойта в повечето случаи. Честно казано това също ми е безинтересно да го логвам, доколкото не е целенасочена атака, а някакви wild scans. Погледни mod_security btw, там е интересно в тази насока.

Написа Н.Пепелишев на 07-Jan-2007 19:34


/home/gf/wwwroot в моя пример може да се замени с %{DOCUMENT_ROOT}

Написа Георги Чорбаджийски (www) на 09-Jan-2007 10:52


abe hora, towa s modrewrite e da si syzdadesh problem ot nishtoto, tozi regexp koito se proveriawa wyw wseki fail koito se zaiaviava, ne stranica a fail, e goliama dyrvotia, niakade okolo hiliada pyti e po bavno ot towa webservera da izpishe greshkata v errlog, da ne govorim che towa se sreshta pri edin ot 100 usera........ a regexpa kakto kazah se obrabotwa za wsiaka zaiavka

i pone ot malko gramotnost slozete go v virtual host direktiwata a ne v htaccess, shtoto taka navsichkoto otgore ne samo se izpylniawa ami i triabwa da se kompilira za wseki zaiaven fail.......

Написа eclipse на 22-Aug-2007 21:18