Authorizace z php vuci /etc/shadow

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Leden 26 14:03:07 CET 2004


On Mon, 26 Jan 2004, oldfrog.linux na volny.cz wrote:

> jak v php autorizovat uzivatele, ktery ma zalozeny
> na lokalnim stroji bezny linuxovy ucet (/etc/passwd
> a /etc/shadow)? Jde mi jen o overeni jmena & hesla,
> nikoli o ziskani efektivniho id.

Jedna moznost je, ze date cteci prava k /etc/shadow tomu uzivateli, pod
kterym prislusny skript bezi. Jestli je to ale pres nejaky web, tak to asi
neni dobry napad. Dalsi otazka je, nakolik jsou na to v PHP predpripravene
funkce.

Druha moznost je ta, ze z toho skriptu spustite setuid nebo jeste lepe
setgid program, ktery cteci prava k /etc/shadow skrze setuid/setgid ziska.
Tento program na vstupu dostane jmeno uzivatele a heslo (heslo neni dobry
napad predavat jako bezny argument, protoze by ho pak vsichni videli pres
ps), provede v lepsim pripade nejaka opatreni branici zneuziti (jmenovite
k hadani hesel) a vrati vysledek.

Inspiraci pro druhou moznost muze byt /sbin/unix_chkpwd, kteryzto je afaik
obsazen jako std. soucast PAMu (presneji modulu pam_unix). Akorat to
ma tu chybu, ze afaik povoluje testovat jen heslo pro uzivatele
s uidem stejnym, jako je uid, co ho spustil. Mozna se da i najit neco
hotoveho.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux