Běží na serveru PHP?

Školení, která pořádám

Pokud chcete zjistit, jestli na cizím serveru běží PHP, dá se to v některých případech odhadnout z použité koncovky. Vzhledem k tomu, že zpracování PHP kódu je možné povolit v souborech libovolných koncovek, tak to samozřejmě není stoprocentní metoda, s pomocí mod_rewrite lze navíc provádět další kouzla.

Pokud administrátor nevypne direktivu expose_php, dá se přítomnost PHP zjistit z hlavičky X-Powered-By nebo z podpisu webového serveru zobrazovaného např. na standardních chybových stránkách. Pokud ji však vypne, můžete použitý skriptovací jazyk leda odhadnout z charakteru skriptů nebo se můžete pokusit vyvolat nějakou chybu, protože v tomto případě PHP mlčí i na žádost o zobrazení svého loga. Pokud skripty používají session proměnné, dá se přítomnost PHP z charakteru jejich ukládání dobře odhadnout – cookie PHPSESSID je toho neklamným příznakem, způsob doplňování session ID např. do formulářů při vypnutých cookies je také poměrně charakteristický. Chybu se můžete pokusit vyvolat např. předáním parametru id[] místo očekávaného id, spoustě funkcí se předání pole místo řetězce nebude líbit. Na správně nakonfigurovaném hostingu by ale zobrazování chyb samozřejmě mělo být vypnuté.

Jakub Vrána, Seznámení s oblastí, 30.11.2005, diskuse: 9 (nové: 0)

Diskuse

Jirka:

Správně nakonfigurovaný hosting je základ :-)

Fatal error: Unsupported operand types in /data/www/clients/jakpsatweb.cz/www/doublethink/diskuse/index.php on line 75

http://diskuse.jakpsatweb.cz/index.php?act…&forum[]=9

lukas:

zdravim,
a proc treba live http headers pro firefox zachytava http hlavicky jen u nekterych stranek?

Nebo ho neumim pouzivat?;)

treba tady se mi nic nezobrazi, na jinym webu toho vypise hromadu...

ikona Jakub Vrána OpenID:

Pro zobrazení hlaviček používám primitivní skript:
<?php
$url
= parse_url($_GET["url"]);
$fp = fsockopen($url["host"], 80);
fwrite($fp, "GET ". (!empty($url["path"]) ? $url["path"] : "/") . (!empty($url["query"]) ? "?$url[query]" : "") ." HTTP/1.1\r\n");
fwrite($fp, "Host: $url[host]\r\n");
fwrite($fp, "\r\n");
while (
strlen(trim($line = fgets($fp), "\r\n")) && !feof($fp)) {
    echo $line;
}
fclose($fp);
?>

U stránek odesílaných metodou POST potom rozšíření Web Developer Toolbar.

lukas:

dik za skript
web developer toolbar mam taky, jen tamto extensions je o dost podrobnejsi, ale proste na nakych webech neukaze nic

Michal:

Na ktorých?

Leo:

Mozna se vam nic nezobrazi protoze prohlizec taha stranku z kese, ne ze serveru. Leo

ic:

Pokud není možnost vypnout expose_php jde
X-Powered-By přepsat hlavičkou přímo ve scriptu, tedy
header('X-Powered-By: blbost',true);
problémy ovšem i nadále dělá hlavička Server, kterou obdobným způsobem přepsat nejde

spidy:

Aha, http://php.vrana.cz/hledat.php?search[]=test :)

ikona Jakub Vrána OpenID:

Hezký postřeh, nechám to tak.

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.