首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swig模板引擎0day挖掘-代码执行和文件读取

Swig模板Swig是一款Node.JS模板引擎 官方文档: https://myvin.github.io/swig.zh-CN/index.html Github: https://github.com.../node-swig/swig-templates 之前一段时间挖过swig模板,发现了一个RCE,以及一个之前的任意文件读取,之前还用这个任意读漏洞出过CTF题。...刚刚仔细检查了一下,旧版本叫swig,新版是swig-templates,漏洞都是存在的,然后我debug是用的swig,不过代码变化很小,尤其是核心的模板解析和渲染的部分都是一样的。...(output); 漏洞分析▸ 模板渲染过程中,include.js会拼接代码 https://github.com/node-swig/swig-templates/blob/313bed1faa42e310d9dca4cd05d384439d26ec63...://node-swig.github.io/swig-templates/docs/tags/#extends swig可以扩展模板,或包含模板,但对路径和后缀名没有做校验,因此可以实现任意文件读取

49930
您找到你想要的搜索结果了吗?
是的
没有找到

Python中的SWIG入门

Python中的SWIG入门什么是SWIG?...SWIG的优势及应用场景提高开发效率:SWIG可以自动将C/C++函数和类封装为高级编程语言中的对应代码,减少手动编写接口的工作量。...要在Python项目中使用SWIG,可以按照以下步骤进行:安装SWIG:首先,确保已经安装了SWIG。...创建SWIG接口文件:创建一个名为 ​​example.i​​ 的SWIG接口文件,用于指示SWIG如何封装C/C++代码。在接口文件中,我们可以定义要导出给高级编程语言的函数、类、枚举等。...更多关于SWIG的信息和文档,请参考SWIG的官方网站。假设我们有一个C/C++的库,其中有一个函数可以计算两个整数的和,我们希望在Python中使用这个库。我们可以使用SWIG进行封装。

30510

NodeJS学习一(创建启动服务)

"dependencies": { } } 该项目当前需要的模块有: "body-parser": 解析post请求数据 "cookies": 读写cookie "express": node.js...Web应用框架,用于创建Web应用 "markdown": 解析语法生成模板 "mongoose": mongodb数据库操作 "swig": 模板解析引擎 目前用到的就这些,有其他需求后面可以再安装...在blog文件夹下进入终端,安装这些模块: npm install body-parser cookies express markdown mongoose swig 安装完成后会在blog下面生成node_modules...cookies": "^0.7.3", "express": "^4.17.1", "markdown": "^0.5.0", "mongoose": "^5.6.0", "swig...:数据库模型文件目录 public:公共文件目录(js,css等) routers:路由文件目录 node_modules:NodeJS第三方模块目录 shcemas:数据库结构文件目录 views:模板视图文件目录

73920

swig简介_swiping是什么意思

swig简介 swig是个帮助将c、c++编写的程序与其他高级语言嵌入联接的开发工具。例如PHP、python、lua、c#、java等。 swig常将c、c++和其他语言进行API的相互转换。...swig下载 在SWIG内有swig各个release版本,适用于windows、mac系统。 swig使用 windows使用,常用于DLL。更多见官方文档(中文版)。...实例见我的小demo,git-swig-demo 1、创建一个export.i文件,置于资源文件内。...// export.i - SWIG interface %module pair %{ #include "pair.h" %} 3、在export.i内加入所需要swig联接的接口函数。...执行export,命令如下: swig -c++ -lua LuaAMDllExport.i swig为设置环境变量后的宏,第一个参数为原始语言,第二个参数为转换后的语言。

65210

Node.js编写组件的几种方式

Node.js编写组件的几种方式 本文主要备忘为Node.js编写组件的三种实现:纯js实现、v8 API实现(同步&异步)、借助swig框架实现。...关键字:Node.js、C++、v8、swig、异步、回调。...(2)swig为第三方支持,一个强大的组件开发工具,支持为python、lua、js等多种常见脚本语言生成C++组件包装代码,swig使用者只需要编写C++代码和swig配置文件即可开发各种脚本语言的C...实现Node.js组件 利用swig框架编写Node.js组件 (1)编写好组件的实现:.h和.cpp ** eg: namespace a { class A{ public: int add(int...swig支持的更多的stl类型参见:https://github.com/swig/swig/tree/master/Lib/javascript/v8 (3)编写binding.gyp,用于使用node-gyp

1.3K41

NodeJS学习二(模板引擎的配置和使用)

配置swig模板引擎分为四个步骤: 1)加载模板引擎 2)配置模板引擎应用模板 3)设置模板文件存放目录 4)注册模板 5)路由中返回模板 //应用程序的启动入口文件 //加载express模块 var...var swig = require('swig'); //2配置模板应用模块 //定义当前应用所使用的模板引擎,第一个参数:模板引擎名称,同时也是模板文件的后缀;第二个参数:解析处理模板内容的方法...应用,相当于nodeJS的http.createService() var app = express(); //1加载模板处理模块 var swig = require('swig'); //2配置模板应用模块...//定义当前应用所使用的模板引擎,第一个参数:模板引擎名称,同时也是模板文件的后缀;第二个参数:解析处理模板内容的方法 app.engine('html',swig.renderFile); //3设置模板文件存放的目录...//1.加载模板处理文件 var swig=require('swig'); //2.配置模板应用模块儿 //定义当前应用使用的模板引擎,第一个参数:模板引擎名称,同时也是 //模板文件的后缀;第二个参数

68730

NDK学习笔记(三)SWIG:自动生成JNI代码

关于SWIG SWIG是一个运用于编译环节的软件开发工具,它能生成出代码来使得用 C/C++ 编写的代码可以同其它编程语言连接在一起。...SWIG诞生于1995年,开始的时候用于科研,如今作为通用工具在以 GUI GPL 协议开放了源代码,官网是:www.swig.org。...SWIG在三大主力平台都可以安装,下载地址:www.swig.org/download.html,windows 中下载到的是一个zip压缩包,解压然后配置好环境变量(SWIG_HOME,Path)即可使用了...流程如下: 编写一个SWIG接口文件暴露出 getuid 函数。 将 SWIG 集成到 Android 构建流程。 将 SWIG 生成的源代码文件添加到 Android.mk 构建文件。...在命令行中运行 swig 命令就可以在相应文职生成原生代码和Java代理类,例如: swig -java -package com.apress.swig -outdir src/com/apress/

2.2K30

node.js向ejs模板发送数据的两种方式

key-value的JSON数据     callback:为回调函数 弊端:此方法在给模板赋值时,必须一次性将模板里的所有变量都传值,否则会报错。...优点:     不用一次性给模板里的所有变量都传值,可以分步传值,类似于PHP与smarty模板结合的方式。...虽然可以分步传值,但是在渲染模板(res.render)之前,也必须给所有变量都传值,否则也会报错。这是和PHP与smarty模板结合的最大不同之处。...补充说明,一个解决:     上面提到,在给模板传值时,必须要将模板里的所有变量都传值,否则会报错。...本站文章除注明转载外,均为本站原创 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动 转载请注明:文章转载自:Marser [https://www.marser.cn] 本文标题:node.js向ejs

2K20

如何把传统写法改成框架形式 es6http:www.expressjs.com.cn

"svon@svon.org", "license": "ISC" } Image.png 1.搭建网站的模块: npm install express --save Image.png 2.处理node.js...里post请求的数据: npm install body-parser --save Image.png 3.HTML的高级语法: npm install swig --save Image.png http...express: const app=express(); 请求路由地址,如果是post,就会触发: Image.png 监听什么端口,这里就写什么端口; Image.png 三个语法:在浏览器中,在node.js...= require('swig'); const swig = new Swig.Swig(); //声明get 请求,路由是/ app.get('/',function(req,res).../views"); //app.set('view engine', 'swig'); //把一个目录当做一个静态文件服务的根目录 //访问的路由是配置的路由地址开头的都能访问 app.use("/views

1.3K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券