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。 

  • 相关阅读:
    安全测试的概述和用例设计
    性能测试(四)常见调优
    性能测试(三)常见的性能测试缺陷
    Jmeter(七)六种参数化的方式
    Jmeter(六)所有的断言
    接口测试的问题解答
    ES学习
    flutter 之BottomNavigationBar属性
    flutter StaggeredGridView.countBuilder 上方取消空白
    flutter升级、回退到指定版本---mac版
  • 原文地址:https://www.cnblogs.com/kuaile1314/p/11371059.html
Copyright © 2011-2022 走看看