Web开发-JS应用NodeJS原型链污染文件系统Express模块数据库通讯

知识点:
1、安全开发-NodeJS-开发环境&功能实现
2、安全开发-NodeJS-安全漏洞&案例分析
3、安全开发-NodeJS-特有漏洞

在这里插入图片描述
在这里插入图片描述
node.js就是专门运行javascript的一个应用程序,区别于以往用浏览器解析原生js代码,node.js本身就可以解析执行js代码,并且效率更高更快。

演示案例-WEB开发-NodeJS-安装&语法&模块&安全&原型链污染

环境搭建-NodeJS-解析安装&库安装

0、文档参考:

https://www.runoob.com/nodejs/nodejs-tutorial.html

1、Nodejs安装

https://nodejs.org/en
在这里插入图片描述
在这里插入图片描述

2、三方库安装(用node.js启用一个网站)

安装命令:
npm install express
npm install body-parser
npm install cookie-parser
npm install multer
npm install mysqlexpress
Express是一个简洁而灵活的node.js Web应用框架body-parser
node.js中间件,用于处理 JSON, Raw, Text和URL编码的数据。cookie-parser
这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。multer
node.js中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。mysql
Node.js来连接MySQL专用库,并对数据库进行操作。

功能实现-文件操作&目录遍历&文件读取

0、文件操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、Express开发(起一个网站接口)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2、加入传参接受

返回值
在这里插入图片描述
在这里插入图片描述
请求值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、实现文件读取/目录遍历

任意文件读取
在这里插入图片描述
在这里插入图片描述
目录遍历
在这里插入图片描述
在这里插入图片描述

功能实现-链接数据库&SQL注入

0、mysql数据库操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、Express开发

在这里插入图片描述

2、SQL注入

在这里插入图片描述
在这里插入图片描述

功能实现-命令执行(RCE)

在这里插入图片描述

1、eval

在这里插入图片描述

2、exec & spawnSync

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原型链污染

如果攻击者控制并修改了一个对象的原型,(__proto__)
那么将可以影响所有和这个对象来自同一个类、父祖类的对象。CTF方向
参考:https://f1veseven.github.io/2022/04/03/ctf-nodejs-zhi-yi-xie-xiao-zhi-shi/

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

NodeJS安全

1、SQL注入&文件操作
2、RCE执行&原型链污染
2、NodeJS黑盒无代码分析

实战测试NodeJS安全

判断:参考前期的信息收集
黑盒:通过对各种功能和参数进行payload测试
白盒:通过对代码中写法安全进行审计分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring AOP 核心概念与实践指南

第一章:AOP 核心概念与基础应用 1.1 AOP 核心思想 ​面向切面编程:通过横向抽取机制解决代码重复问题(如日志、事务、安全等)​核心优势:不修改源代码增强功能,提高代码复用性和可维护性 1.2 基础环境搭…

Flutter使用自签证书打包ipa

在 Flutter 中使用自签证书打包 IPA 文件,可以通过以下步骤完成: 1. 准备自签证书 方式一 生成自签证书: 打开 钥匙串访问 应用。选择 证书助理 > 创建证书。按照提示填写证书信息,选择证书类型为 代码签名,并保存…

基于STM32的机器人控制系统设计方案

一、系统概述 该机器人控制系统以STM32微控制器为核心,旨在实现对机器人的运动控制、传感器数据采集与处理、任务调度以及人机交互等功能。适用于多种类型的移动机器人,如轮式机器人、履带式机器人等,可应用于室内导航、环境监测、物流搬运等场景。 二、硬件设计 STM32微控…

【leetcode hot 100 51】N皇后

解法一:(基于集合的回溯)我们从第一行开始寻找,找每一行皇后应该放在第几列。每次找到都用Set记录已经用过的列和对角,其中从左到右向下的对角(行-列相同),右到左向下的对角&#xf…

蓝桥刷题note9(分发饼干,最长回文子串)

1.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有…

面试常问系列(一)-神经网络参数初始化

一、背景 说到参数初始化,先提一下大家常见的两个概念梯度消失和梯度爆炸。 (一)、梯度消失:深层网络的“静默杀手” 定义: 在反向传播过程中,梯度值随着网络层数增加呈指数级衰减,最终趋近…

Manacher 马拉车算法

Manacher 马拉车算法 5. 最长回文子串 - 力扣(LeetCode) 马拉车算法是目前解决寻找字符串中最长的回文子串时间复杂度最低的算法(线性O(n)). 中心扩散法 初始化一个长度与字符串 s 相等的 臂长数组 arr 和 最长臂长 max 与 最…

(学习总结29)Linux 进程概念和进程状态

Linux 进程概念 冯诺依曼体系结构软件运行与存储分级数据流动的理论过程 操作系统操作系统(Operator System) 概念操作系统的功能与作用系统调用和库函数概念 进程概念描述进程 - PCBtask_struct查看进程通过系统调用获取进程标示符 PID通过系统调用 fork 函数创建进程简单使用…

MySQL密码修改的全部方式一篇详解

本文将详细介绍多种修改MySQL密码的方式。 本文目录 一、alter user 语句操作步骤 二、set password操作步骤 三、直接修改 mysql.user表操作步骤 一、alter user 语句 当你以 root 用户或者拥有足够权限的用户登录 MySQL 时,可以使用 ALTER USER 语句来修改密码。…

Wi-Fi NAN 架构(Wi-Fi Aware Specification v4.0,第2章:2.3~2.6)

1. NAN 数据通信架构 1.1 单播支持 要在两个NAN设备之间启动单播数据通信,服务需发起一个NAN数据路径(NDP,NAN Data Path)请求。这对NAN设备之间会建立一个NAN设备链路(NDL,NAN Device Link)&…

Lineageos 22.1(Android 15)实现负一屏

一、前言 方案是参考的这位大佬的,大家可以去付费订阅支持一波。我大概理一下Android15的修改。 大佬的方案代码 二、Android15适配调整 1.bp调整,加入aidl引入,这样make之后就可以索引代码了 filegroup {name: "launcher-src"…

Java 大视界 -- Java 大数据在智能医疗远程会诊与专家协作中的技术支持(146)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

Sqlite3数据库

工具库的使用&#xff1a;程序编写时#include <库名.h>即可调用库中的函数 编译时链接工具库&#xff1b; 注意&#xff1a;数据库中不区分字母大小写&#xff1b; SQLite 中的事务是数据库操作中非常重要的一个概念&#xff0c;它用于确保数据库操作的完整性和一致性。…

虚拟路由与单页应用(SPA):详解

在单页应用&#xff08;SPA&#xff0c;Single Page Application&#xff09;中&#xff0c;虚拟路由&#xff08;也称为前端路由&#xff09;是一种关键的技术&#xff0c;用于管理页面导航和状态变化&#xff0c;而无需重新加载整个页面。为了帮助你更好地理解这一概念&#…

练习:运动计划

需求&#xff1a;键盘录入星期数&#xff0c;显示今天的减肥活动。 周一&#xff1a;跑步&#xff1b; 周二&#xff1a;游泳&#xff1b; 周三&#xff1a;慢走&#xff1b; 周四&#xff1a;骑动感单车&#xff1b; 周五&#xff1a;拳击&#xff1b; 周六&#xff1a;…

通过webrtc+canvas+css实现简单的电脑滤镜拍照效果

这里我们用的是webrtc中的MediaDevices.getUserMedia()的浏览器api进行的效果实现&#xff0c;MediaDevices.getUserMedia() 会提示用户给予使用媒体输入的许可&#xff0c;媒体输入会产生一个MediaStream&#xff0c;里面包含了请求的媒体类型的轨道。此流可以包含一个视频轨道…

《TCP/IP网络编程》学习笔记 | Chapter 20:Windows 中的线程同步

《TCP/IP网络编程》学习笔记 | Chapter 20&#xff1a;Windows 中的线程同步 《TCP/IP网络编程》学习笔记 | Chapter 20&#xff1a;Windows 中的线程同步用户模式和内核模式用户模式同步内核模式同步 基于 CRITICAL_SECTION 的同步内核模式的同步方法基于互斥量对象的同步基于…

VBA-Excel

VBA 一、数据类型与变量 常用数据类型&#xff1a; Byte&#xff1a;字节型&#xff0c;0~255。Integer&#xff1a;整数型&#xff0c;用于存储整数值&#xff0c;范围 -32768 到 32767。Long&#xff1a;长整型&#xff0c;可存储更大范围的整数&#xff0c;范围 -214748364…

kotlin 内联函数 inline

高阶函数实现的原理&#xff1a;函数类型其实是生成了一个对象 。 inline翻译成中文的意思就是内联&#xff0c;在kotlin里面inline被用来修饰函数&#xff0c;表明当前函数在编译时是以内嵌的形式进行编译的&#xff0c;从而减少了一层函数调用栈&#xff1a; inline fun fun…

PairRE: Knowledge Graph Embeddings via Paired Relation Vectors(论文笔记)

CCF等级&#xff1a;A 发布时间&#xff1a;2020年11月 25年3月24日交 目录 一、简介 二、原理 1.整体 2.关系模式 3.优化模型 三、实验性能 四、结论和未来工作 一、简介 将RotatE进行生级&#xff0c;RotatE只对头实体h进行计算&#xff0c;PairRE对头尾实体都进行…