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

和恶魔做交易的网站简单制作网站的过程

和恶魔做交易的网站,简单制作网站的过程,福州关键词排名优化,网站备案 加急目录 环境搭建-NodeJS-解析安装库安装 功能实现-NodeJS-数据库文件执行 安全问题-NodeJS-注入RCE原型链 案例分析-NodeJS-CTF题目源码审计 开发指南-NodeJS-安全SecGuide项目 思维导图 JS知识点#xff1a; 功能#xff1a;登录验证库安装 功能实现-NodeJS-数据库文件执行 安全问题-NodeJS-注入RCE原型链 案例分析-NodeJS-CTF题目源码审计 开发指南-NodeJS-安全SecGuide项目 思维导图 JS知识点 功能登录验证文件操作SQL操作云应用接入框架开发打包器使用等 技术原生开发DOM常见库使用框架开发VueNodeJS打包器(Webpack)等 安全原生开发安全NodeJS安全Vue安全打包器Webpack安全三方库安全问题等 环境搭建-NodeJS-解析安装库安装 0 、文档参考 https://www.w3cschool.cn/nodejs/ 1、Nodejs安装 https://nodejs.org/en 2、三方库安装 express Express是一个简洁而灵活的node.js Web应用框架 body-parser node.js中间件用于处理 JSON, Raw, Text和URL编码的数据。 cookie-parser 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie并把它们转成对象。 multer node.js中间件用于处理 enctypemultipart/form-data设置表单的MIME编码的表单数据。 mysql Node.js来连接MySQL专用库并对数据库进行操作。 安装命令 npm i express npm i body-parser npm i cookie-parser npm i multer npm i mysql node.js开发的Web应用使用的是JS但是属于是后端代码浏览器是看不到的类似php 创建sql.js文件并粘贴实例代码 发现代码不能运行需要安装需要的库注意如果网速太慢可以设置国内的镜像换上 阿里巴巴开源镜像站-OPSX镜像站里的淘宝 NPM 镜像发现展示出Hello World。 sql.js // express_demo.js 文件// 引入 Express 框架用于快速构建基于 Node.js 的 Web 应用程序。 var express require(express); // 创建 Express 应用程序实例 var app express();// 处理根路径的 GET 请求返回 Hello World app.get(/, function (req, res) {res.send(Hello World); });// 启动服务器监听端口 3000 var server app.listen(3000, function () {// 获取服务器地址和端口var host server.address().address;var port server.address().port;// 输出服务器访问地址信息到控制台console.log(应用实例访问地址为 http://%s:%s, host, port); });查看需要下载源修改下载源 //查看是否更换 npm config get registrynpm config set registry [https://registry.npmmirror.com](https://link.zhihu.com/?targethttps%3A//registry.npmmirror.com)安装需要用到的库在终端输入命令node .\sql.js 设置不同的页面渲染 // 引入 Express 框架 const express require(express); // 创建 Express 应用程序实例 const app express();// 处理 /login 路径的 GET 请求返回简单的登录页面 app.get(/login, function(req, res) {res.send(hr登录页面/hr); });// 处理根路径的 GET 请求发送名为 sql.html 的文件 // __dirname 是一个 Node.js 全局变量表示当前脚本所在的目录。 app.get(/, function(req, res) {res.sendFile(__dirname / sql.html); });// 启动服务器监听端口 3001 const server app.listen(3001, function() {console.log(Web 服务器已经启动监听端口 3001); });功能实现-NodeJS-数据库文件执行 1 、Express开发  2、实现用户登录  3、加入数据库操作 -文件操作 1、Express开发 2、实现目录读取 3、加入传参接受 -命令执行RCE 1、eval 2、exec  spawnSync 实现用户登录 req.query 用于处理 URL 查询字符串参数GET请求而 req.body 用于处理 POST 请求中的表单数据。还需要下载const bodyParser require(body-parser); 相关库 npm i body-parser并且post请求还需要创建一个解析URL编码的bodyParser中间件实例 // 引入 Express 框架 const express require(express); const bodyParser require(body-parser);// 创建 Express 应用程序实例 const app express(); // 创建一个用于解析 URL 编码的 bodyParser 中间件实例 const urlencodedParser bodyParser.urlencoded({ extended: false });// 处理 /login 路径的 GET 请求返回简单的登录页面 app.get(/login, function(req, res) {// 从请求中获取用户名和密码const u req.query.username;const p req.query.password;console.log(u);console.log(p);// 检查用户名和密码是否为 admin 和 123456if (u admin p 123456) {res.send(欢迎进入后台管理页面);} else {res.send(登录用户或密码错误);} });// 处理 /login 路径的 POST 请求使用 bodyParser 解析表单数据 app.post(/login, urlencodedParser, function(req, res) {// 从请求中获取表单提交的用户名和密码const u req.body.username;const p req.body.password;console.log(u);console.log(p);// 检查用户名和密码是否为 admin 和 123456if (u admin p 123456) {res.send(欢迎进入后台管理页面);} else {res.send(登录用户或密码错误);} });// 处理根路径的 GET 请求发送名为 sql.html 的文件 // __dirname 是一个 Node.js 全局变量表示当前脚本所在的目录。 app.get(/, function(req, res) {res.sendFile(__dirname / sql.html); });// 启动服务器监听端口 3001 const server app.listen(3001, function() {console.log(Web 服务器已经启动监听端口 3001); });sql.html Post提交 登录成功 加入数据库操作 导入mysql npm i mysql下载相关依赖 const mysql require(mysql);导入 mysql 模块 var connection mysql.createConnection({ host : localhost, user : root, password : root, database : dome01 });建立与 MySQL 数据库的连接并执行查询语句查询数据库中的内容 const mysql require(mysql);var connection mysql.createConnection({ host : localhost, user : root, password : root, database : dome01 });// 建立与 MySQL 数据库的连接 connection.connect();// 定义从 admin 表中选择所有列的 SQL 查询 const sql select * from admin;// 执行 SQL 查询 connection.query(sql, function(error, data){// 检查查询执行中是否存在错误if(error){console.log(数据库连接失败);}// 记录从查询中检索到的全部数据console.log(data);// 记录结果集中第一行的用户名console.log(data[0][username]);// 记录结果集中第一行的密码console.log(data[0][password]); });将mysql的内容添加至登录验证中 // 处理 /login 路径的 POST 请求使用 bodyParser 解析表单数据 app.post(/login, urlencodedParser, function(req, res) {// 从请求中获取表单提交的用户名和密码const u req.body.username;const p req.body.password;// 输出获取到的用户名和密码用于调试console.log(u);console.log(p);// 创建与 MySQL 数据库的连接var connection mysql.createConnection({host : localhost,user : root,password : root,database : dome01});// 建立数据库连接connection.connect();// 构建 SQL 查询检查数据库中是否存在匹配的用户名和密码const sql select * from admin where usernameu and passwordp;console.log(sql);// 执行 SQL 查询connection.query(sql, function(error, data){// 检查查询执行中是否存在错误if(error){console.log(数据库连接失败);}try {// 检查用户名和密码是否匹配数据库中的数据if(u data[0][username] p data[0][password]){// 如果匹配发送欢迎消息到前端res.send(欢迎进入后台管理页面);}} catch {// 捕获异常如果没有匹配的数据或其他错误发送错误消息到前端res.send(错误);};**}); })文件操作 导入fs npm i fs下载相关依赖npm i fs const fs require(fs);调用文件管理函数传递目录参数 http://127.0.0.1:3000/file?dir./ http://127.0.0.1:3000/file?dir…/ // 引入文件系统和 Express 框架 const fs require(fs); const express require(express); const app express();// 处理 /file 路径的 GET 请求 app.get(/file, function (req, res) {// 从请求中获取目录参数const dir req.query.dir;console.log(dir);**// 调用文件管理函数传递目录参数filemanage(dir);** });// 启动 Express 应用监听在3000端口 var server app.listen(3000, function () {console.log(Web应用已启动在3000端口); });// 文件管理函数接收一个目录参数 function filemanage(dir) {**// 使用 fs.readdir 读取目录下的文件fs.readdir(dir, function (error, files) {// 打印目录中的文件列表console.log(files);**}); }命令执行(RCE) 导入child_process npm i child_process下载相关依赖 const rcerequire(child_process);exec spawnSync调用系统命令 eval调用代码命令执行将字符串当做代码解析 安全问题-NodeJS-注入RCE原型链 1 、 SQL 注入 文件操作 2、RCE执行原型链污染 2、NodeJS黑盒无代码分析 实战测试NodeJS安全 判断参考前期的信息收集 黑盒通过对各种功能和参数进行payload测试 白盒通过对代码中写法安全进行审计分析 -原型链污染 如果攻击者控制并修改了一个对象的原型(__proto__) 那么将可以影响所有和这个对象来自同一个类、父祖类的对象。 SQL注入 这个语句后面整体为真实际上是查询了真个表 当使用拼接方式带入数据库查询时这里就已经产生了 sql 注入漏洞 sql 注入防护手段预编译 RCE执行原型链污染 在很多 Web 应用中开发人员会使用一些函数这些函数以一些字符串作为输入功能是将输入的字符串当作代码或者命令来进行执行。当用户可以控制这些函数的输入时就产生了 RCE 漏洞。 RCE 漏洞是非常严重的安全漏洞一旦出现就意味着攻击者可以获取服务器的命令执行权限从而对服务器安全造成极大的影响。 nodejs 中主要就是下面这eval(代码执行)exec spawnSync(命令执行) 文件操作 这里的 server 是访问以下 urldir 是传递的参数这里就可以目录遍历通过修改 dir 参数即可。127.0.0.1:3000/file?dir./ 这里文件管理权限设置不当同样也会造成目录遍历漏洞 原型链污染 如果攻击者控制并修改了一个对象的原型(__proto__) 那么将可以影响所有和这个对象来自同一个类、父祖类的对象。 测试代码 // foo是一个简单的JavaScript对象 let foo {bar: 1} //11 0 __proto__ x // 原型链污染 // foo.bar 此时为1 console.log(foo.bar)//输出为1// 修改foo的原型即Object foo.__proto__.bar 2// // 由于查找顺序的原因foo.bar仍然是1 console.log(foo.bar)//输出为1// // 此时再用Object创建一个空的zoo对象 let zoo {}// 查看zoo.bar此时bar为2 console.log(zoo.bar)//输出为2执行结果 利用原型链污染调用系统计算器 // 创建一个包含属性 bar 的对象 foo并将 bar 设置为 1 let foo {bar: 1};// 输出 foo 对象的 bar 属性预期输出为 1 console.log(foo.bar); // 输出: 1// 修改 foo 对象的原型链上的 bar 属性将其设置为执行命令 require(\child_process\).execSync(\calc\); //调用计算机 foo.__proto__.bar require(\child_process\).execSync(\calc\);;// 输出 foo 对象的 bar 属性预期输出仍为 1因为直接属性优先于原型链上的属性 console.log(foo.bar); // 输出: 1// 创建一个空对象 zoo let zoo {};// 使用 eval 执行 zoo 对象的 bar 属性由于 zoo 对象没有 bar 属性会导致 ReferenceError //调用计算机 console.log(eval(zoo.bar));安全问题 额迪总说了打 ctf 有用实战中基本没用要求太多了听了就当没听过就行。在 y2-rce.js 演示了一下原型链污染结合 rce 导致的漏洞通过污染原型链使其新创建的对象拥有 bar 且由于后续还使用了不安全函数 eval 执行了其中的代码 案例分析-NodeJS-CTF题目源码审计 1 、 CTFSHOW 几个题目 https://ctf.show/ Web334-344 https://f1veseven.github.io/2022/04/03/ctf-nodejs-zhi-yi-xie-xiao-zhi-shi/ 2、YApi管理平台漏洞 https://blog.csdn.net/weixin_42353842/article/details/127960229 CTFSHOW 几个题目 CTFSHOW 这个需要 vip而且不便宜感兴趣的可以自己冲没 vip 貌似不能打 迪总演示的是 web 入门的 334 关直接 ctrlf 在 web 入门页面搜 334 就能找到这关 ctfshowhttps://ctf.showctf-nodejs 之一些小知识https://f1veseven.github.io/2022/04/03/ctf-nodejs-zhi-yi-xie-xiao-zhi-shi/ 2、YApi 管理平台漏洞这个没讲迪总只是给看了下https://blog.csdn.net/weixin_42353842/article/details/127960229 开发指南-NodeJS-安全SecGuide项目 https :// github . com / Tencent / secguide 思维导图
http://www.pierceye.com/news/448504/

相关文章:

  • 成立网站建设工作领导小组seo网站关键词优化软件
  • 怎么兼职做网站网站建设 运维 管理包括
  • 乐清市住房和城乡建设规划局网站专业做家居的网站
  • 做3d打印网站苏州建设工程人才招聘网信息网站
  • 网站建设丂金手指科杰wordpress中logo大小
  • 微餐饮网站建设被老板抓到用公司产品做自己的网站
  • 软件公司网站模板下载定制搭建网站
  • 网站建设实训报告要求怎么做公司门户网站
  • 深圳规划建设局网站wordpress改变访问目录
  • dw怎么做购物网站o2o平台都有哪些
  • 阿里云备案多个网站吗应用商店下载app软件
  • 响应式网站手机端尺寸网站开发培训心得
  • 徐州手机网站开发公司电话江苏五星建设网站
  • 网站建设全包广做短视频素材哪里找
  • 做网站为什么每年都要续费企业官网建站步骤
  • 培训行业门户网站建设方案专业网站运营制作
  • 百度网站两两学一做心得体会江苏专业网站建设费用
  • 做企业网站的架构图网站上的销售怎么做
  • 网站开发思维导图内容淘宝客在百度推广网站么做
  • 国外美容网站crm开发
  • 辽宁建设资质申报网站wordpress提示插件安装
  • 做网站用什么软件语言wordpress绑定域名后乱码
  • 网站建设邀请函郑州网站搭建的公司
  • 网站制作论文优帮云广州网站设计首选柚米
  • 唐山建设厅官方网站我有一个网站怎么做外贸
  • 荣成城市规划建设局网站宁晋网站开发
  • 福州电子商务网站手机触屏版网站开发
  • 佛山网站建设骏域开发公司综合部内部管理章程
  • 网站建设 迅雷下载西安建设工程信息网网上招投标
  • 浅析个人网站的设计论文二本网络工程就业前景