64 || strlen($_GET['password']) > 64 ) { $message = 'Username or password is too long.'; } else if ( strlen($_GET['username']) < 1 || strlen($_GET['password']) < 6 ) { $message = 'Username or password is too short.'; } else if ( isset($_GET['oldpassword']) ) { $dovecotpasswd = file_get_contents('/etc/dovecot/passwd'); $oldaccount = $_GET['username'].'@chiru.no:'.trim(shell_exec('/usr/bin/doveadm -o stats_writer_socket_path= pw -s CRAM-MD5 -p '.escapeshellarg($_GET['oldpassword']))).':50000:50000'."\n"; if ( strpos($dovecotpasswd, $oldaccount) !== false ) { $dovecotpasswd = str_replace($oldaccount, '', $dovecotpasswd); $dovecotpasswd .= $_GET['username'].'@chiru.no:'.trim(shell_exec('/usr/bin/doveadm -o stats_writer_socket_path= pw -s CRAM-MD5 -p '.escapeshellarg($_GET['password']))).':50000:50000'."\n"; file_put_contents('/etc/dovecot/passwd', $dovecotpasswd); $message = 'Password changed!'; } else { $message = 'Incorrect password.'; } } else { if ( !file_exists('salt.txt') ) { file_put_contents('salt.txt', random_bytes(9999)); } file_put_contents('hash.txt', md5(file_get_contents('salt.txt').$_SERVER['REMOTE_ADDR'])."\n", FILE_APPEND); $password = trim(shell_exec('/usr/bin/doveadm -o stats_writer_socket_path= pw -s CRAM-MD5 -p '.escapeshellarg($_GET['password']))); $passwd = $_GET['username'].'@chiru.no:'.$password.':50000:50000'."\n"; file_put_contents('/etc/dovecot/passwd', $passwd, FILE_APPEND); $vmailbox = $_GET['username'].'@chiru.no chiru.no/'.$_GET['username'].'/'."\n"; file_put_contents('/etc/postfix/vmailbox', $vmailbox, FILE_APPEND); touch('restart-postfix.txt'); // while :; do if [ -f /var/www/htdocs/chiru.no/a/mail/restart-postfix.txt ]; then rm /var/www/htdocs/chiru.no/a/mail/restart-postfix.txt && sudo postfix reload && sudo dovecot reload; fi; sleep 10; done $message = 'Account registered!'; } } $favicon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAA2CAMAAAC7m5rvAAAAP1BMVEUAAAAAAAAhUoT3pZT///8YGIxjpbW1ta0hIYQhQufGxs4xQv+U9/fGACGlxtZKABjW///nlIT355QhY0JSxlLLv7sFAAAAAXRSTlMAQObYZgAAAVJJREFUeF6t1AtqA1EIQNGo85982+5/rX0XIzK8QCDmQlvKeGRAkhNJ1+lNnzLQ36HfVlB5UZUx6EBexLNcWWMJAVPr/Gx6Bg30HQYCRKqBnTMRqMboiHxBB+ssUVcPQVX2HhGMI9XZ+TwM71nACvOLAYnHPeiOUGCgTNVXTJMvSvgdxp58ZJYvBTkwAhVZUFUzVQfxN7GTGmM4P/5mPayzTFUEqDrPIj8toDwD5gGiz5nI9SribFlgQDMQiyCOWTa06kxbw7CuIG9ZGFF1QrD7vc78DIwmW1egf9FCgMzWGNCZWSJWsCQZUOTeqjARvNIBxuFBwTgBqML8AP5jhxgO5KtBVQYEj+O2XS6cedvGkd8i+XKgKgM6Yuh2u7T2fRz5n9MCczVXqzByZsZr7juIRDhILM1Tl1nr8Qj0GkJAdQYEBeshR0pUZ/PMsY+MJKuyf4zEStnV0TenAAAAAElFTkSuQmCC'; echo '