
针对 CVE-2022-35131 的概念验证漏洞利用:通过在搜索结果中未转义的用户输入,导致 Joplin 笔记应用中的 XSS 进而实现远程代码执行。
XSS 导致 RCE,影响 Joplin 版本 2.8.8 及更早版本。已在 Windows 和 Linux 上测试并生效。
报告并修复于:2022-06
Ctrl+P 并在笔记或标题中搜索内容问题在于 GotoAnything.tsx 第 509 行使用 dangerouslySetInnerHTML 处理未转义的用户输入。修复方案:对用户输入进行转义。
return (
<div key={item.id} className={isSelected ? 'selected' : null} style={rowStyle} onClick={this.listItem_onClick} data-id={item.id} data-parent-id={item.parent_id} data-type={item.type}>
<div style={style.rowTitle} dangerouslySetInnerHTML={{ __html: titleHtml }}></div>
{fragmentComp}
{pathComp}
</div>
);
有效载荷中不能使用空格,但可以使用编码后的空格 \x20。
示例标题有效载荷:
# Payload 1 (Linux)
zzz
# Payload 2 (Windows)
zzz
# Reverse shell (Linux)
zzz
搜索 zzz 即可执行有效载荷。