Autor | Zpráva | ||
---|---|---|---|
nemeja Profil |
Pěkný večer,
při brouzdání jsem narazil na eshop jedné nejmenované české modelky, akorát vydala nějaké slevy a jelikož byl server přetížen, vypisoval chybu s přístupem k databázi, včetně údajů (závadu jsem nahlásil správci stránky): Soubor: /var/www/virtuals/v3cms/cz.****/php/lib/V3DbLayout.php(83) : eval()'d code, Třída: V3DbLayerMYSQL, Funkce: __construct, Řádek: 1 array(6) { ["TYPE"]=> string(5) "MYSQL" ["HOST"]=> string(9) "localhost" ["USER"]=> string(5) "****" ["PASSWORD"]=> string(12) "****" ["DEFAULTDB"]=> string(30) "virtuals_v3cms_cz_***" ["ENCODING"]=> string(4) "utf8" } Soubor: /var/www/virtuals/v3cms/cz.****/php/lib/V3DbLayout.php, Funkce: eval, Řádek: 83 Soubor: /var/www/virtuals/v3cms/cz.****/system.inc.php, Třída: V3DbLayout, Funkce: __construct, Řádek: 12 array(6) { ["TYPE"]=> string(5) "MYSQL" ["HOST"]=> string(9) "localhost" ["USER"]=> string(5) "****" ["PASSWORD"]=> string(12) "****" ["DEFAULTDB"]=> string(30) "virtuals_v3cms_cz_****" ["ENCODING"]=> string(4) "utf8" } Soubor: /var/www/virtuals/v3cms/cz.****/index.php, Funkce: require, Řádek: 52 string(54) "/var/www/virtuals/v3cms/cz.****/system.inc.php" • Jakým způsobem kontroluje server, zda se jedná o localhost aplikaci? • Pokud podle IP adresy, jak by se dala podvrhnout? • Jak se proti tomu účinně bránit? Všimněte si použití funkce eval. Stačí mi odkaz na potřebnou literaturu/článek. Moc děkuji předem |
||
DJ Miky Profil |
„• Jakým způsobem kontroluje server, zda se jedná o localhost aplikaci?“
Správný způsob je, že MySQL server naslouchá pouze na lokálním socketu nebo na tzv. loopback rozhraní (to je to označení localhost, IP 127.0.0.1) a vůbec nenaslouchá na vnějším síťovém rozhraní, tedy požadavky přicházející po síti (z jiných strojů, z internetu) se k němu vůbec nedostanou. To je zaručeno mechanismem síťových rozhraní v operačním systému – jedná se o dvě oddělená rozhraní. Existují i další, méně bezpečná řešení (a bohužel se i používají). „• Jak se proti tomu účinně bránit?“ Pokud je na serveru použít jiný způsob ochrany, tak určitě implementovat ochranu popsanou výše – zakázat naslouchání na vnějším rozhraní. Jenom pozor – nezaručí to 100% bezpečnost, útočník může získat přístup např. zneužitím zranitelnosti v jiné službě. A co se týče samotného problému úniku hesla v chybové hlášce, jedná se o nastavení PHP. Vždy by na produkčním serveru mělo být vypnuto zobrazování chyb (direktiva display_errors v konfiguračním souboru php.ini ). V neposlední řadě může být problém v použitém CMS – soudě podle neošetřování chyb a eval je možné, že i samotný CMS bude náchylný na zranitelnosti, jako je SQL injection, local/remote file inclusion a podobně.
|
||
Časová prodleva: 11 let
|
0