http://www.xbmcfreak.nl/
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
daarnaast heb je als het goed is geen toegang tot /etc/shadowSpider.007 schreef op dinsdag 18 januari 2005 @ 12:52:
Verder moet je waarschijnlijk /etc/shadow hebben; tenzij je en erg oude unix versie draait
Vandaar mijn suggestie voor PAM. Overigens is PHP natuurlijk ook gewoon te gebruiken als systeemscript taal; en zou je een eigen implementatie onder de root user kunnen laten runnenErkens schreef op dinsdag 18 januari 2005 @ 12:56:
[...]
daarnaast heb je als het goed is geen toegang tot /etc/shadow
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
PAM zuigt imo, maargoedSpider.007 schreef op dinsdag 18 januari 2005 @ 13:05:
[...]
Vandaar mijn suggestie voor PAM. Overigens is PHP natuurlijk ook gewoon te gebruiken als systeemscript taal; en zou je een eigen implementatie onder de root user kunnen laten runnen
Maar ehm je moet dan je webserver als root laten draaien om PHP root rechten te geven, lijkt me niet echt gewenst imo (tenzij je met PHP ook meteen een webserver wilt gaan schrijven

Een en ander kun je uiteraard wel ondervangen met de authentication daemon van sasl (saslauthd), maar ik had het project uiteindelijk toch niet nodig en ben er verder niet op ingegaan.
@Erkens: Waarom zuigt PAM? Ik heb zelden zo'n configureerbare authentication library gezien. Het enige wat er enorm aan mist is een daemon zodat processen geen rechten nodig hebben op /etc/shadow (of wat voor backend je dan ook gebruikt) om een password te checken.
[ Voor 27% gewijzigd door Gerco op 18-01-2005 13:14 ]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Is het echt nodig je webserver onder root te laten draaien?
[ Voor 44% gewijzigd door Erhnam op 18-01-2005 13:19 ]
http://www.xbmcfreak.nl/
Gerco schreef op dinsdag 18 januari 2005 @ 13:11:
@Erkens: Waarom zuigt PAM? Ik heb zelden zo'n configureerbare authentication library gezien. Het enige wat er enorm aan mist is een daemon zodat processen geen rechten nodig hebben op /etc/shadow (of wat voor backend je dan ook gebruikt) om een password te checken.
Waarom PAM zuigt? vrij simpel, kijk naar alle security risks die je ermee hebt, * Erkens is blij dat hij een slackware gebruiker is
Nee en zoals uitgelegd in die manual pagina krijg je daar dus NIET het password als je gebruikt maakt van shadow passwords (en als je dat niet weet, dan gebruik je shadow passwords).Erhnam schreef op dinsdag 18 januari 2005 @ 13:18:
Is het echt nodig je webserver onder root te laten draaien?
Er staat daar echter ook een aanpak die wel werkt, met een los c programma wat als root draait en het password wel kan checken. Ik zou waarschijnlijk liever saslauthd met PAM of iets dergelijks gebruiken, want daarmee kan ik mn authentication backend ook overzetten naar LDAP of MySQL als ik dat leuk vind en met een los programma kan dat moeilijker.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Erkens schreef op dinsdag 18 januari 2005 @ 13:24:
offtopic:
Waarom PAM zuigt? vrij simpel, kijk naar alle security risks die je ermee hebt, * Erkens is blij dat hij een slackware gebruiker is
Heb ik zeker onder een steen gelegen de afgelopen tijd, ik heb nog geen batterijen bugs op PAM gezien. (ze zullen er ongetwijfeld wel zijn, ik kijk gewoon niet goed genoeg)
En nu weer ontopic, anders vervuil ik teveel
[ Voor 8% gewijzigd door Gerco op 18-01-2005 13:28 ]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #!/usr/bin/perl # open(PASSWD,"/etc/passwd"); open(SHADOW,"/etc/shadow"); open(FLATFILE,">/etc/passwd.httpd"); while(<SHADOW>){ chop; ($uname,$temppass)=split(/:/); $pass{$uname}=$temppass; } while(<PASSWD>){ chop; ($uname,$temppass,$uid,$gid,$fn,$homedir,$shell)=split(/:/); if ($temppass ne 'x'){ $pass{$uname}=$temppass; } if ($uid>=500) { print FLATFILE "$uname:$pass{$uname}:$uid:$gid:$fn:$homedir:$shell\n"; } } close(PASSWD); close(SHADOW); close(FLATFILE); chmod(0400,"/etc/passwd.httpd"); chown(65534,65534,"/etc/passwd.httpd"); |
Restultaat zet hij in /etc/passwd.httpd , deze is uiteraard weer wel leesbaar
[ Voor 9% gewijzigd door gorgi_19 op 19-01-2005 09:32 ]
http://www.xbmcfreak.nl/
Bij deze file is dat veel minder erg dan bij /etc/shadow omdat de belangrijke passwords (root) er niet instaan, maar toch lijkt het me niet fijn om je users' passwords "op straat" te leggen, ook al zijn ze encrypted.
[ Voor 4% gewijzigd door Gerco op 18-01-2005 14:04 ]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
1
2
3
4
5
6
7
8
9
10
11
12
| <html> <head> <title>Login</title> </head> <body> <form method="POST" action="login.php"> Username: <input type="text" name="username" size="20"> Password: <input type="password" name="password" size="20"> <input type="submit" value="Submit" name="login"> </form> </body> </html> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <?php $user = ($_POST['username']); $password = ($_POST['password']); $autharray = file("/home/httpd/vhosts/domein.nl/httpdocs/passwd.httpd"); for ($x = 0; $x < count($autharray); $x++) { if (eregi("^$user:", $autharray[$x])) { $passwd = explode(":", $autharray[$x]); $salt = substr($passwd[1],0,2); $cryptpw = crypt($pass,$salt); if ($cryptpw == $passwd[1]) { print "succes"; } else { print "fout"; } } } ?> |
Het enige probleem is dat de output nu altijd fout is.. Ergens gaat het met het terug encrypten dus fout. Heeft er iemand een idee. PS: Ik heb het bovenstaande perl script gebruikt om de passwd en shadow file te kopieren.
[ Voor 17% gewijzigd door gorgi_19 op 19-01-2005 09:32 ]
http://www.xbmcfreak.nl/
http://www.xbmcfreak.nl/
[quote]Gerco schreef op dinsdag 18 januari 2005 @ 13:11:
@Erkens: Waarom zuigt PAM? Ik heb zelden zo'n configureerbare authentication library gezien. Het enige wat er enorm aan mist is een daemon zodat processen geen rechten nodig hebben op /etc/shadow (of wat voor backend je dan ook gebruikt) om een password te checken.[/quote]
Wat zou nou de reden zijn geweest dat shadow alleen leesbaar is voor root.
FireFox - neem het web in eigen hand
Kan je voortaan [code][/code] tags gebruiken?
Ik heb ze nu voor je toegevoegd
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Gebruikt je systeem misschien md5 passwords ? Weet je zeker dat je met hetzelfde algoritme crypt als /etc/shadow dat doet (crypt je eigen password en vergelijk).Erhnam schreef op dinsdag 18 januari 2005 @ 20:26:
Okee.. Ik ben al iets verder en heb het een en ander gezocht. Weet iemand hoe het mogelijk is om van een $password de return terug te krijgen zoals die in de /etc/shadow staat te vergelijken?
Discussie over PAM graag hier voortzetten: [rml][ Alg] Waarom zuigt PAM?[/rml]
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Ik heb net even getest wat jij zei.. En het vreemde is dat ik random outputs krijg:Gerco schreef op woensdag 19 januari 2005 @ 14:55:
[...]
Gebruikt je systeem misschien md5 passwords ? Weet je zeker dat je met hetzelfde algoritme crypt als /etc/shadow dat doet (crypt je eigen password en vergelijk).
offtopic:
Discussie over PAM graag hier voortzetten: [rml][ Alg] Waarom zuigt PAM?[/rml]
$1$dc.cNxen$B7xUcH/RxAvJkBw5BABuz/
$1$rICJiYRz$frLxNIiD3ue7YP9BN2Wdr1
$1$FkqAPyXv$wue8h8D2B.vButyL/krXR0
Zijn een aantal voorbeelden. Ziet er iemand misschien waar de fout zit in het script?
http://www.xbmcfreak.nl/
Ik zou zeggen lees je eens in in het principe crypt; en zoek naar salt: [google=crypt salt]Erhnam schreef op woensdag 19 januari 2005 @ 15:23:
[...]
Ik heb net even getest wat jij zei.. En het vreemde is dat ik random outputs krijg:
$1$dc.cNxen$B7xUcH/RxAvJkBw5BABuz/
$1$rICJiYRz$frLxNIiD3ue7YP9BN2Wdr1
$1$FkqAPyXv$wue8h8D2B.vButyL/krXR0
Zijn een aantal voorbeelden. Ziet er iemand misschien waar de fout zit in het script?
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // md5 shadow check <html> <head> <title>Login</title> </head> <body> <form method="POST" action="login.php"> Username: <input type="text" name="username" size="20"> Password: <input type="password" name="password" size="20"> <input type="submit" value="Submit" name="login"> </form> </body> </html> |
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?php $user = ($_POST['username']); $pass = ($_POST['password']); $autharray = file("/home/httpd/vhosts/xxx.nl/httpdocs/passwd.httpd"); for ($x = 0; $x < count($autharray); $x++) { if (eregi("^$user:", $autharray[$x])) { $passwd = explode(":", $autharray[$x]); $salt = substr($passwd[1],0,11); $cryptpw = crypt($pass,$salt); if ($cryptpw == $passwd[1]) { echo "Login ok"; } else { echo "Error login failed"; } } } ?> |
[ Voor 38% gewijzigd door Erhnam op 20-01-2005 09:10 ]
http://www.xbmcfreak.nl/