Typora 远程代码执行漏洞

声明
本文仅用于技术交流,请勿用于非法用途
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

一、产品介绍

Typora 是一款由 Abner Lee 开发的轻量级 Markdown 编辑器,与其他 Markdown 编辑器不同的是,Typora 没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的功能,但也可切换至源代码编辑模式。

二、漏洞概述

原因:typora协议

Typora内部实现了typora://协议,可以用于Typora访问特定文件。

Typora 1.6.7之前版本存在安全漏洞,该漏洞源于通过在标签中加载 typora://app/typemark/updater/update.html ,可以在Typora主窗口中加载JavaScript代码。

三、漏洞利用

这个访问为例,lib.asar位于Typora安装目录的resources文件夹下,而updater.html位于Typora安装目录的updater文件下,所以使用typora://协议访问updater.html应该这样写:

typora://app/typemark/updater/updater.html?a=xxx&b=xxx&c=xxx

构建payload

根据常规思路,我们应该require库child_process然后调用exec参数,但是typora内没有定义require函数,而是使用reqnode函数代替:

因此,Windows环境下的payload可以这样写:

reqnode('child_process').exec("calc")

包在svg标签里实现页面加载:

为了同时在Windows环境和Linux环境生效,我们可以这么写payload:


最后对releaseNoteLink、lables两个参数做URI编码,最终Poc为:

base64解码

Typora 远程代码执行漏洞_第1张图片

四、漏洞复现

当在Typora中加载此PoC时,使用DOM-XSS Payload加载updater.html,有效负载在主窗口上执行JavaScript代码,执行系统命令。具体操作如下:

1.下载部署有漏洞版本环境,这里部署版本为

Typora for Windows 1.5.12(下方百度云盘里有安装包)

Typora 远程代码执行漏洞_第2张图片

链接:https://pan.baidu.com/s/12SMngr3Ks3D_OJ1KO17Zgw?pwd=i13d 
提取码:i13d

tips:下载后需要激活,如果只是想复现的话可以不激活

2.新建md文件,写入poc代码,注意类型为html

Typora 远程代码执行漏洞_第3张图片

Typora 远程代码执行漏洞_第4张图片

3.然后打开文件,将进行命令执行。

成功弹出计算器

Typora 远程代码执行漏洞_第5张图片
4.测试视频

上传到平台就好模糊啊,大家将就看吧##

Typora命令执行:CVE-2023-2317

五、修复建议

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://support.typora.io/What's-New-1.6/https://buaq.net/go-175535.html?utm_source=feedly

你可能感兴趣的:(漏洞复现,网络安全,安全,编辑器)