Tutorial php fájlok és külső adatok megnyitása

A fopen, file, include és require függvények a http- és ftp protokollokon keresztül más fájlokból is megnyithatják a fájlokat. Ez a lehetőség potenciális sebezhetőséget okoz a php-scriptekben, ami lehetővé teszi a webhely proxyként való használatát.







Figyelmeztetek, hogy ebben az anyagban nincs semmi újdonság. A támadó lenyűgöző lehetőségei ellenére ez a sebezhetőség # 151; csak a php jól ismert tulajdonságainak kombinációja.

Az orosz nyelvű interneten ez a sebezhetőség gyakorlatilag nem terjedt ki. Orosz nyelvű biztonsági webhelyeken nem találtam közvetlen jelentést a biztonsági résről.

sebezhetőség

Url fopen borító

CR / LF a HTTP kérésekben

A kocsi visszaadási karakterek és a vonalbetöltés kombinációja a HTTP-kérésben elválasztja a fejléceket. Részleteket erről Anton Kalmykov "HTTP kérések generálása" című cikkében talál. Ez a karakterkombináció a GET kérésben "% 0D% 0A" -ként továbbítható.

Nem megbízható bemenet

Sok webhelyen az oldalak sablonszkriptet generálnak. A szkript átirányítja az összes kérést a webhelyre. REQUEST_URI-ból a megnyitandó fájl neve kerül. A fájl olvasható, a navigációval ellátott sablon, a sapka stb. Hozzá van adva. és az eredményt az ügyfél kapja.







Egy nem kifinomult vagy tapasztalatlan programozó könnyen kinyithatja a fájlokat az adatok ellenőrzése nélkül:

Intelligens kihasználás

Védelmi intézkedések kihasználása

Mint fejlesztő vagy webhelytulajdonos, fontos, hogy mindent megtesz annak érdekében, hogy senki ne küldjön spameket webhelyén. Ha ez megtörténik, akkor elküldjük néhány hawaii telefonos hálózatról, akinek a tulajdonosai nem értik az emberi nyelvet, és az utolsó is megteheti.

A lekérdezési előzmények ellenőrzése

A php

A lehetséges sebezhetőség letiltásának legegyszerűbb módja # 151; Ne engedélyezze az URL-ek megnyitását fájlfunkciók segítségével. Ha Ön a szerver rendszergazdája # 151; tiltsa allow_url_fopen a php beállításait. Ha csak ügyfél vagy # 151; otthoni tilalom 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. Ebben az esetben a biztonságos mód (biztonságos mód) engedélyezése nem segít, a funkció továbbra is megfelelően működik.

A kód megváltoztatása

Állítsa le a munkát egy nem igénylő kéréssel

A nem ellenőrzött változók esetén a webhelyet szkennelő ügyfél szükségtelen forgalmat hoz létre és betölti a kiszolgáló processzort. Nyilvánvaló, hogy nem kell a webhely által létrehozott oldalak, ha nem proxyként működnek. Kívánatos, hogy megöli az ilyen kéréseket a php-tolmács elindítása előtt. Ezt a mod_rewrite modullal lehet elvégezni. A .htaccess fájlban a webhely gyökerén ezt a sort tettem fel:

Feltételezzük, hogy a webhelyet nem fogjuk elküldeni a GET metódusformák használatával többsoros felhasználói bevitel segítségével. Ellenkező esetben ezeket a szabályokat meg kell állítani.