mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-07 22:06:05 +01:00
bug fix: elimite login via url parameters
This commit is contained in:
@@ -589,8 +589,34 @@ app.controller('phpMyAdmin', function ($scope, $http, $window) {
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberPanelLoading = true;
|
||||
if (response.data.status === 1) {
|
||||
var rUrl = '/phpmyadmin/phpmyadminsignin.php?username=' + response.data.username + '&token=' + response.data.token;
|
||||
$window.location.href = rUrl;
|
||||
//var rUrl = '/phpmyadmin/phpmyadminsignin.php?username=' + response.data.username + '&token=' + response.data.token;
|
||||
//$window.location.href = rUrl;
|
||||
|
||||
var form = document.createElement('form');
|
||||
form.method = 'post';
|
||||
form.action = '/phpmyadmin/phpmyadminsignin.php';
|
||||
|
||||
// Create input elements for username and token
|
||||
var usernameInput = document.createElement('input');
|
||||
usernameInput.type = 'hidden';
|
||||
usernameInput.name = 'username';
|
||||
usernameInput.value = response.data.username;
|
||||
|
||||
var tokenInput = document.createElement('input');
|
||||
tokenInput.type = 'hidden';
|
||||
tokenInput.name = 'token';
|
||||
tokenInput.value = response.data.token;
|
||||
|
||||
// Append input elements to the form
|
||||
form.appendChild(usernameInput);
|
||||
form.appendChild(tokenInput);
|
||||
|
||||
// Append the form to the body
|
||||
document.body.appendChild(form);
|
||||
|
||||
// Submit the form
|
||||
form.submit();
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
|
||||
44
databases/templates/databases/AutoLogin.html
Normal file
44
databases/templates/databases/AutoLogin.html
Normal file
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Auto login for {{ url }}</title>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<span style="display: none" id="userName">{{ userName }}</span>
|
||||
<span style="display: none" id="password">{{ password }}</span>
|
||||
<form style="display: none" name="loginform" id="loginform" action="/phpmyadmin/phpmyadminsignin.php" method="post">
|
||||
{% csrf_token %}
|
||||
<p>
|
||||
<label for="user_login">Username or Email Address</label>
|
||||
<input type="text" name="username" id="user_login" class="input" value="" size="20" autocapitalize="off"/>
|
||||
</p>
|
||||
|
||||
<div class="user-pass-wrap">
|
||||
<label for="user_pass">Password</label>
|
||||
<div class="wp-pwd">
|
||||
<input type="password" name="password" id="user_pass" class="input password-input" value="" size="20"/>
|
||||
<button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0"
|
||||
aria-label="Show password">
|
||||
<span class="dashicons dashicons-visibility" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p class="forgetmenot"><input name="rememberme" type="checkbox" id="rememberme" value="forever"/> <label
|
||||
for="rememberme">Remember Me</label></p>
|
||||
<p class="submit">
|
||||
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large"
|
||||
value="Log In"/>
|
||||
<input type="hidden" name="redirect_to" value="{{ url }}/wp-admin"/>
|
||||
{# <input type="hidden" name="testcookie" value="1"/>#}
|
||||
</p>
|
||||
</form>
|
||||
<script>
|
||||
document.getElementById("user_login").value = $("#userName").text();
|
||||
document.getElementById("user_pass").value = $("#password").text();
|
||||
document.forms["loginform"].submit();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
from django.shortcuts import redirect, HttpResponse
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
from cloudAPI.cloudManager import CloudManager
|
||||
from loginSystem.views import loadLoginPage
|
||||
@@ -251,7 +252,7 @@ def generateAccess(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
def fetchDetailsPHPMYAdmin(request):
|
||||
try:
|
||||
|
||||
@@ -259,8 +260,15 @@ def fetchDetailsPHPMYAdmin(request):
|
||||
admin = Administrator.objects.get(id=userID)
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
token = request.GET.get('token')
|
||||
username = request.GET.get('username')
|
||||
|
||||
|
||||
token = request.POST.get('token')
|
||||
username = request.POST.get('username')
|
||||
|
||||
from plogical.httpProc import httpProc
|
||||
proc = httpProc(request, None,
|
||||
)
|
||||
#return proc.ajax(0, str(request.POST.get('token')))
|
||||
|
||||
if username != admin.userName:
|
||||
return redirect(loadLoginPage)
|
||||
@@ -280,20 +288,37 @@ def fetchDetailsPHPMYAdmin(request):
|
||||
mysqluser = jsonData['mysqluser']
|
||||
password = jsonData['mysqlpassword']
|
||||
|
||||
returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (
|
||||
mysqluser, password)
|
||||
return redirect(returnURL)
|
||||
# returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (
|
||||
# mysqluser, password)
|
||||
# return redirect(returnURL)
|
||||
data = {}
|
||||
data['userName'] = mysqluser
|
||||
data['password'] = password
|
||||
|
||||
except BaseException:
|
||||
|
||||
proc = httpProc(request, 'databases/AutoLogin.html',
|
||||
data, 'admin')
|
||||
return proc.render()
|
||||
|
||||
except BaseException as msg:
|
||||
|
||||
f = open(passFile)
|
||||
data = f.read()
|
||||
password = data.split('\n', 1)[0]
|
||||
password = password.strip('\n').strip('\r')
|
||||
|
||||
returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (
|
||||
'root', password)
|
||||
return redirect(returnURL)
|
||||
data = {}
|
||||
data['userName'] = 'root'
|
||||
data['password'] = password
|
||||
# return redirect(returnURL)
|
||||
|
||||
proc = httpProc(request, 'databases/AutoLogin.html',
|
||||
data, 'admin')
|
||||
return proc.render()
|
||||
|
||||
# returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (
|
||||
# 'root', password)
|
||||
# return redirect(returnURL)
|
||||
|
||||
keySavePath = '/home/cyberpanel/phpmyadmin_%s' % (admin.userName)
|
||||
key = ProcessUtilities.outputExecutioner('cat %s' % (keySavePath)).strip('\n').encode()
|
||||
@@ -306,8 +331,17 @@ def fetchDetailsPHPMYAdmin(request):
|
||||
for db in site.databases_set.all():
|
||||
mysqlUtilities.addUserToDB(db.dbName, admin.userName, password.decode(), 0)
|
||||
|
||||
returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (admin.userName, password.decode())
|
||||
return redirect(returnURL)
|
||||
data = {}
|
||||
data['userName'] = admin.userName
|
||||
data['password'] = password.decode()
|
||||
# return redirect(returnURL)
|
||||
|
||||
proc = httpProc(request, 'databases/AutoLogin.html',
|
||||
data, 'admin')
|
||||
return proc.render()
|
||||
|
||||
# returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (admin.userName, password.decode())
|
||||
# return redirect(returnURL)
|
||||
else:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
@@ -3,51 +3,56 @@
|
||||
|
||||
define("PMA_SIGNON_INDEX", 1);
|
||||
|
||||
try{
|
||||
try {
|
||||
define('PMA_SIGNON_SESSIONNAME', 'SignonSession');
|
||||
define('PMA_DISABLE_SSL_PEER_VALIDATION', TRUE);
|
||||
|
||||
define('PMA_SIGNON_SESSIONNAME', 'SignonSession');
|
||||
define('PMA_DISABLE_SSL_PEER_VALIDATION', TRUE);
|
||||
|
||||
if(isset($_GET['token'])){
|
||||
if (isset($_POST['token'])) {
|
||||
|
||||
### Get credentials using the token
|
||||
|
||||
$token = $_GET['token'];
|
||||
$username = $_GET['username'];
|
||||
$token = $_POST['token'];
|
||||
$username = $_POST['username'];
|
||||
|
||||
$url = "/dataBases/fetchDetailsPHPMYAdmin?token=" . $token . '&username=' . $username;
|
||||
//$url = "/dataBases/fetchDetailsPHPMYAdmin?token=" . $token . '&username=' . $username;
|
||||
$url = "/dataBases/fetchDetailsPHPMYAdmin";
|
||||
|
||||
header('Location: ' . $url);
|
||||
// header('Location: ' . $url);
|
||||
|
||||
}
|
||||
else if(isset($_GET['logout'])){
|
||||
// Redirect with POST data
|
||||
|
||||
echo '<form id="redirectForm" action="' . $url . '" method="post">';
|
||||
echo '<input type="hidden" value="' . $token . '" name="token">';
|
||||
echo '<input type="hidden" value="' . $username . '" name="username">';
|
||||
echo '</form>';
|
||||
echo '<script>document.getElementById("redirectForm").submit();</script>';
|
||||
|
||||
} else if (isset($_POST['logout'])) {
|
||||
$params = session_get_cookie_params();
|
||||
setcookie(session_name(), '', time() - 86400, $params["path"], $params["domain"], $params["secure"], $params["httponly"] );
|
||||
setcookie(session_name(), '', time() - 86400, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
|
||||
session_destroy();
|
||||
header('Location: /dataBases/phpMyAdmin');
|
||||
header('Location: /base/');
|
||||
return;
|
||||
}
|
||||
else if(isset($_GET['password'])){
|
||||
} else if (isset($_POST['password'])) {
|
||||
|
||||
session_name(PMA_SIGNON_SESSIONNAME);
|
||||
@session_start();
|
||||
|
||||
$username = $_GET['username'];
|
||||
$password = $_GET['password'];
|
||||
$username = $_POST['username'];
|
||||
$password = $_POST['password'];
|
||||
|
||||
$_SESSION['PMA_single_signon_user'] = $username;
|
||||
$_SESSION['PMA_single_signon_password'] = $password;
|
||||
$_SESSION['PMA_single_signon_host'] = 'localhost';
|
||||
|
||||
|
||||
@session_write_close();
|
||||
|
||||
header('Location: /phpmyadmin/index.php?server=' . PMA_SIGNON_INDEX);
|
||||
}
|
||||
}catch (Exception $e) {
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo 'Caught exception: ', $e->getMessage(), "\n";
|
||||
$params = session_get_cookie_params();
|
||||
setcookie(session_name(), '', time() - 86400, $params["path"], $params["domain"], $params["secure"], $params["httponly"] );
|
||||
setcookie(session_name(), '', time() - 86400, $params["path"], $params["domain"], $params["secure"], $params["httponly"]);
|
||||
session_destroy();
|
||||
header('Location: /dataBases/phpMyAdmin');
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user