Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.17.77.122
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib64/python3.11/site-packages/lvestats/lib/commons/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib64/python3.11/site-packages/lvestats/lib/commons/htpasswd.py
# coding=utf-8

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

import base64
import hashlib
import os

__author__ = "Eli Carter"


class HtpasswdDoesNotExists(Exception):
    pass


class HtpasswdFile(object):
    """
    A class for manipulating htpasswd files.
    """

    def __init__(self, filename, create=False):
        self.entries = []
        self.filename = filename
        if not create:
            if os.path.exists(self.filename):
                self.load()
            else:
                raise HtpasswdDoesNotExists(f"{self.filename} does not exist")

    def load(self):
        """
        Read the htpasswd file into memory.
        """
        self.entries = []
        with open(self.filename, 'r', encoding='utf-8') as f:
            for line in f:
                username, pwhash = line.split(':')
                entry = [username, pwhash.rstrip()]
                self.entries.append(entry)

    def save(self):
        """
        Write the htpasswd file to disk
        """
        with open(self.filename, 'w', encoding='utf-8') as f:
            for entry in self.entries:
                f.write(f"{entry[0]}:{entry[1]}\n")

    def update(self, username, password):
        """
        Replace the entry for the given user, or add it if new.
        """
        # Generate a random salt
        salt = os.urandom(16)

        # Hash the password using PBKDF2 with HMAC-SHA256
        pwhash = hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt, 100000)

        # Store the salt along with the hash to use it during password verification
        stored_password = base64.b64encode(salt + pwhash).decode('utf-8')

        # Find matching entries
        matching_entries = [entry for entry in self.entries
                            if entry[0] == username]
        if matching_entries:
            matching_entries[0][1] = stored_password
        else:
            self.entries.append([username, stored_password])

    def delete(self, username):
        """
        Remove the entry for the given user.
        """
        self.entries = [entry for entry in self.entries
                        if entry[0] != username]

Youez - 2016 - github.com/yon3zu
LinuXploit