programing

Python3, MariaDB, OpenVPN 암호 확인 실패

easyjava 2023. 9. 6. 23:07
반응형

Python3, MariaDB, OpenVPN 암호 확인 실패

os.eviron['username']은 OpenVPN에서 전송되지만 디버깅을 위해 데이터베이스에서 사용자로 "test"로 변경했습니다.os.eviron['password']은 OpenVPN에서 전송되지만 디버깅을 위해 작업 암호 "password"로 변경했고 모든 것이 설계대로 작동했습니다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import mysql.connector as database
import sys
import hashlib
from config import DB_NAME, DB_ADMIN, DB_PASSWORD, DB_HOST, HASH_ALGORITHM, HASH_SALTY

connection = database.connect(
    user=DB_ADMIN,
    password=DB_PASSWORD,
    host=DB_HOST,
    database=DB_NAME
)
cursor = connection.cursor()


hash_func = getattr(hashlib, HASH_ALGORITHM)
salty = hash_func(HASH_SALTY.encode("utf-8")).hexdigest()

ovpnuser = (os.environ['username'])
ovpnuser = "SELECT * FROM users WHERE usernames = '" + ovpnuser + "';"

cursor.execute(ovpnuser)
result = cursor.fetchone()

if result is None:
    sys.exit(1)

id, usernames, passwords = result
passw = (os.environ['password'] + salty) #Salt this mofo
if hash_func(passw.encode("utf-8")).hexdigest() != passwords:
    sys.exit(1)
sys.exit(0)

지금 보시는 것처럼 OpenVPN을 사용하여 이 플러그인을 호출하므로 sys.exit(1) 인증에 실패했습니다.디버그를 시도했지만 이 플러그인에 대한 연결이나 호출에서 오류와 인쇄가 불가능합니다.파이썬 코드의 로그 파일에 쓰기 위해 에코까지 추가했지만 작동하지 않았습니다.

무슨 생각 있어요?

언급URL : https://stackoverflow.com/questions/67100221/python3-mariadb-openvpn-password-check-fails

반응형