zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    实验目的 (转载自I春秋  )

    了解Node.js 序列化漏洞原理

    掌握利用Node.js 序列化漏洞进行任意代码执行

    漏洞原理

    现在我们使用0.0.4版本的node-serialize进行研究,成功利用的话,不可信输入传递到 unserialize()的时候可以执行任意代码。创建

    Payload最好使用同一模块的serialize()函数。 我创建了以下 JavaScript 对象,将其传入 serialize() 函数。

    运行后得到以下输出:

    现在我们得到序列化的字符串,可以用 unserialize() 函数进行反序列化操作。那么问题来了,怎么代码执行呢?

    只有触发对象的 rce 成员函数才可以。 后来我想到可以使用 JavaScript 的立即调用的函数表达式(IIFE)来调用该函数。

    如果我们在函数后使用 IIFE 括号 () ,在对象被创建时,函数就会马上被调用。有点类似于 C 中的类构造函数。 现在修改过的

    代码经 serialize() 函数马上会被调用。

    运行后得到以下输出:

    我们知道了,在之前序列化的字符串中函数体后面

    加上括号 (),并将其传入 unserialize() 函数,很幸运,成功执行。那么就有了下面的 exploit: 

    将其传入unserialize() 函数,触发代码执行。 

    运行后得到以下输出: 

    实验环境

    操作机:kali linux

    目标机:Centos6.5

    实验工具 exp.txt:

    利用nodejs代码执行的代码文件。 

    实验步骤

    首先访问目标机器http://172.16.12.2 可以看到一个存在node.js漏洞的登录界面。 我们使用nc监听本地端口,用于接收漏洞环境的反弹Shell. nc -lv -p 8080 即监听本机8080端口 Alt text 将实验工具提供的exp代码,下载后修改里面的 <ip> <port>,修改为本机IP和NC监听的端口号。修改后复制该代码,去尝试到登录界面利用。 Alt text 用户名任意输入,将修改好的exp代码复制到密码框点击登录即可。 小提示: 如果代码错误,出现报错导致环境崩溃请从新创建环境,并检测代码错误继续实验 点击登录后,如下图所示:利用成功,已经反弹回一个shell,并且权限为root。 

  • 相关阅读:
    内存分配方式与变量的生存周期【转】
    C++动态内存创建与内存管理学习笔记【转】
    C内存分配问题(内存达人请进)【转】
    Singular Value Decomposition(SVD)奇异值分解【转】
    Euclidean space欧几里得空间【转】
    C语言面试题汇总(华为公司) 【转】
    C语言内存分配问题和C语言中的内存【转】
    iPhone无法在Mac的Finder中显示?如何解决问题
    OGRE 入门 三、Basic Tutorial 2 : Cameras, Lights, and Shadows
    leetcode 一个算法面试题相关的网站
  • 原文地址:https://www.cnblogs.com/kuaile1314/p/11371059.html
Copyright © 2011-2022 走看看