Hallo,

Ik had op internet een script gevonden, om htaccess files etc te bewerken.
Zodat bv. de gebruikers hun wachtwoord kunnen weizigen.

Alleen zoals je natuurlijk al kan raden. hij werkt nie.

Hij gegt namelijk dat ie het bestand niet kan openen etc.
en dat je het dan kan proberen om met cmod 404 van .htaccess etc kan proberen.
Alleen ook dat werkt niet :S
weet iemand misschien de oplossing?

Hieronder t hele script,

Alvast bedankt iig

<?php
// Waar staat het htaccess-file
$htaccess=".htaccess";

// De admin-user (deze moet al in .htpasswd staan)
$adminuser="test";

// De encryptie-methode, zie http://www.php.net/manual/en/function.crypt.php
$encryption=CRYPT_MD5;

// Deze instellingen zijn autodetect, je kan ze natuurlijk wijzigen
$curruser=$PHP_AUTH_USER;
$scripturi="http://$HTTP_HOST:$SERVER_PORT$SCRIPT_NAME";

function ShowError($errorstring) {
echo "<html><body><h1>$errorstring</h1></body></html>\n";
exit();
}

if($file=fopen($htaccess,"r")) {
while(!feof($file)) {
$data=fgets($file,1024);
$tdata=trim($data);
if(substr(strtolower($tdata),0,13)=="authuserfile ") { $htpasswd=substr($tdata,13,strlen($tdata)-13); }
if(substr(strtolower($tdata),0,9)=="authname ") { $authname=substr($tdata,9,strlen($tdata)-9); }
}
fclose($file);
} else { ShowError("Kan $htaccess niet lezen, chmod 404 $htaccess kan helpen"); }

unset($user_name);unset($user_pass);unset($user_line);
if($file=fopen($htpasswd,"r")) {
while(!feof($file)) {
$data=trim(fgets($file,1024));
$user_line[]=$data;
if($tmp1=strstr($data,":")) {
$user_name[]=substr($data,0,strlen($data)-strlen($tmp1));
$user_pass[]=substr($tmp1,1,strlen($tmp1)-1);
}
}
fclose($file);
} else { ShowError("Kan $htpasswd niet lezen, chmod 606 $htpasswd kan helpen"); }

if($action=="user_add") {
if($curruser!=$adminuser) { ShowError("Alleen de administrator (\$adminuser) kan deze optie gebruiken"); }
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($form_user_name)) { ShowError("Gebruiker $form_user_name bestaat al"); }
}
if($form_user_pass_1!=$form_user_pass_2) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
if($file=fopen($htpasswd,"a")) {
fputs($file,"$form_user_name:".crypt($form_user_pass_1,$encryption)."\n");
fclose($file);
} else { ShowError("Kan $htpasswd niet bewerken, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
} elseif($action=="user_edit") {
if($curruser!=$adminuser) { ShowError("Alleen de administrator (\$adminuser) kan deze optie gebruiken"); }
if(($form_user_pass_1!=$form_user_pass_2) AND (!$form_user_delete)) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }
if($form_user_delete AND ($form_user_name==$adminuser)) { ShowError("Kan de administrator (\$adminuser) niet verwijderen"); }

if($file=fopen($htpasswd,"w")) {
for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($form_user_name)) {
$user_line[$i]="$form_user_name:".crypt($form_user_pass_1,$encryption);
if($form_user_delete) { $user_line[$i]=""; }
}
if($user_line[$i]) { fputs($file,"$user_line[$i]\n"); }
}
fclose($file);
} else { ShowError("Kan $htpasswd niet overschrijven, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
} elseif($action=="user_ch") {
if($form_user_pass_1!=$form_user_pass_2) { ShowError("Nieuw wachtwoord en Nieuw wachtwoord opnieuw komen niet overeen"); }

for($i=0;$i<count($user_name);$i++) {
if(strtolower($user_name[$i])==strtolower($curruser)) {
if(crypt($form_user_currpass,$user_pass[$i]) == $user_pass[$i]) {
$user_line[$i]="$curruser:".crypt($form_user_pass_1,$encryption);
} else { ShowError("Het huidige wachtwoord is incorrect opgegeven"); }
}
}

if($file=fopen($htpasswd,"w")) {
for($i=0;$i<count($user_name);$i++) {
fputs($file,"$user_line[$i]\n");
}
fclose($file);
} else { ShowError("Kan $htpasswd niet overschrijven, chmod 606 $htpasswd kan helpen"); }
Header("Location: $scripturi");
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title><?php echo "$authname htaccess"; ?></title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<?php if($curruser==$adminuser) { ?>
<form name="form_user_add" action="<?php echo $scripturi; ?>" method="POST">
<input type="hidden" size="-1" name="action" value="user_add">
<table border="1" cellspacing="0" cellpadding="3">
<tr><td bgcolor="#000099"><b><font color="#ffffff">Gebruiker toevoegen</font></b></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>Gebruikersnaam:</td><td><input type="text" name="form_user_name" size="20"></td></tr>
<tr><td>Nieuw wachtwoord:</td><td><input type="password" name="form_user_pass_1" size="20"></td></tr>
<tr><td>Nieuw wachtwoord opnieuw:&nbsp;</td><td><input type="password" name="form_user_pass_2" size="20"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Voeg toe"></td></tr>
</table>
</td></tr>
</table>
</form>
<form name="form_user_edit" action="<?php echo $scripturi; ?>" method="POST">
<input type="hidden" size="-1" name="action" value="user_edit">
<table border="1" cellspacing="0" cellpadding="3">
<tr><td bgcolor="#000099"><b><font color="#ffffff">Gebruiker bewerken</font></b></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>Gebruikersnaam:</td><td><select name="form_user_name" size="1"><?php
for ($i=0;$i<count($user_name);$i++) {
echo "<option value=\"$user_name[$i]\">$user_name[$i]</option>";
}
?></select></td></tr>
<tr><td>Nieuw wachtwoord:</td><td><input type="password" name="form_user_pass_1" size="20"></td></tr>
<tr><td>Nieuw wachtwoord opnieuw:&nbsp;</td><td><input type="password" name="form_user_pass_2" size="20"></td></tr>
<tr><td>&nbsp;</td><td><input type="checkbox" name="form_user_delete"> Delete user</td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Bewerk"></td></tr>
</table>
</td></tr>
</table>
</form>
<?php } ?>
<form name="form_user_ch" action="<?php echo $scripturi; ?>" method="POST">
<input type="hidden" size="-1" name="action" value="user_ch">
<table border="1" cellspacing="0" cellpadding="3">
<tr><td bgcolor="#000099"><b><font color="#ffffff">Wachtwoord veranderen</font></b></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>Gebruikersnaam:</td><td><?php echo $curruser; ?></td></tr>
<tr><td>Huidig wachtwoord:</td><td><input type="password" name="form_user_currpass" size="20"></td></tr>
<tr><td>Nieuw wachtwoord:</td><td><input type="password" name="form_user_pass_1" size="20"></td></tr>
<tr><td>Nieuw wachtwoord opnieuw:&nbsp;</td><td><input type="password" name="form_user_pass_2" size="20"></td></tr>
<tr><td colspan="2" align="right"><input type="submit" value="Wijzig"></td></tr>
</table>
</td></tr>
</table>
</form>
</body>
</html>
en dat je het dan kan proberen om met cmod 404 van .htaccess etc kan proberen.

Misschien dat CHMOD 404 bij het lezen nog werkt (404 is lezen voor owner en other), maar voor het schrijven wat later moet gebeuren gaat dat natuurlijk niet werken.

Probeer het eens met een CHMOD van 666 of 766 (666 is lezen en schrijven voor owner, group en other, 766 is lezen, schrijven en uitvoeren voor owner en lezen en schrijven voor group en other).

Elwin

Reageren