WEB攻防- Javascript项目特性- Node.js框架安全-识别审计-验证绕过

1、什么是JS渗透测试?

在Javascript中也存在变量和函数,当存在可控变量及函数调用即可能存在参数漏洞
JS开发的WEB应用和PHP,JAVA,NET等区别在于即使没有源代码,也可以通过浏览器的查看源代码获取真实的点。所以相当于JS开发的WEB应用属于白盒测试(默认有源码参考)


2、流行的Js框架有那些?

常用的有Node.js, Vue.js


3、如何判定JS开发应用?

可以使用插件wappalyzer
 源代码简短,引入多个js文件
 一般有/static/js/app.js 等顺序的js文件
 cookie中有connect.sid,因为Node.js框架中有这个

 
4、如何获取更多的JS文件?

工具: 

JsFinder
 Packer-Fuzzer
 扫描器后缀替换字典


5、如何快速获取价值代码?

 method:"get"
 http.get("
 method:"post"
 http.post("
 $.ajax
 service.httppost
 service.httpget

案例1:

验证绕过直接重置密码

从该代码中,可以看到重置密码时,通过手机发送验证码验证身份,返回为200则表示验证成功,并跳转到修改密码的页面

当随意输入验证码提交,会返回状态吗206

为了绕过这个验证,使用Burpsuite抓返回包,将状态码改为200就能通过验证,并成功跳转到重置密码页面

同时重置密码页面url为/user/reset_password/+手机号码没经过其他的访问控制 ,直接访问会发现这还是一个未授权访问页面

案例2:

在线客服文件上传

从代码中可以看出 ,上传图片功能是通过js验证的,限制了大小和格式,我们可以通过浏览器禁用js代码来绕过,需要注意如果网站是纯js开发,直接禁用可能会导致网站打不开等问题。这时候可以用网站下载器可以去下载到源码,然后在进行禁用来绕过验证,但这个案例没能下载到源码,也不能直接禁用js,但是上传视频没有验证

案例3:

开发框架-Node.JS 

测试平台:Vulhub

漏洞环境:CVE-2017-14849  Node.js目录穿越漏洞

Node.js CVE-2017-14849 漏洞产生的原因主要涉及Node.js 8.5.0版本中的一个特定逻辑错误,特别是在处理目录路径的normalize操作时。具体来说,这个漏洞的产生可以归纳为以下几点:

  1. normalize操作的逻辑错误:在Node.js 8.5.0版本中,当对目录路径进行normalize操作时,存在一个逻辑错误。这个错误导致在处理向上层目录跳跃的路径(如../../../../../../etc/passwd)时,如果在中间位置增加foo/../(如../../../foo/../../../../etc/passwd),normalize函数会返回错误的路径(如/etc/passwd),而不是正确的原始路径。

  2. Express框架的依赖:Express这类web框架通常会提供静态文件服务器的功能,这些功能依赖于Node.js的normalize函数。由于normalize函数的上述错误,导致Express在判断路径是否超出静态目录范围时,会绕过检查,从而造成了任意文件读取的漏洞。

Vulhub环境搭建:

安装docker

下载Vulhub对应漏洞环境

来到相对应的目录
docker-compose build 
docker-compose up -d 
config 

 或者参考

搭建Vulhub靶场 【附图】_vulhub靶场搭建-CSDN博客 

源码分析,下面两张图片引用于【漏洞复现】Node.js 目录穿越漏洞(CVE-2017-14849)-CSDN博客 

具体原理还没搞懂,可以看下Node.js CVE-2017-14849 漏洞分析 - 博客 - 腾讯安全应急响应中心

漏洞复现:

playload:/static/../../../a/../../../../etc/passwd

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

模块搜索目录

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找。 (1)在当前目录(即执行…

RHCE (Linux进阶) Ubuntu 操作系统安装教程

一、在官网下载iso镜像文件 下载地址: https://cn.ubuntu.com/download/server/step1#downloads(下载最新的Ubuntu 20.04 LTS服务器版本) 二、VMware安装配置过程 基本安装过程 1、新建虚拟机 2、选择典型即可 3、设置下载好的Ubuntu对应路…

数字展示具有广阔发展空间 市场规模保持增长态势

数字展示具有广阔发展空间 市场规模保持增长态势 数字展示是指以数字图像为核心,将触摸屏、红外线感应器、三维数字图像等相结合的高层次展示行业。与传统展示方式相比,数字展示能够突破时间、空间及形态的局限,将文字、图像等各种信息转化为…

【大模型】在大语言模型的架构中,Transformer有何作用?

Transformer在大语言模型架构中的作用 Transformer是一种用于序列到序列(Seq2Seq)任务的深度学习模型,由Vaswani等人于2017年提出。在大语言模型(LLM)的架构中,Transformer扮演着关键的角色,它…

idea ecs部署服务

如图 部署后脚本 cd /home/project; mkdir -p order; cd order; cp /home/project/order-service-0.0.1-SNAPSHOT.jar .; cp --no-clobber /home/shell/ctl-plus.sh .; ./ctl-plus.sh restart;

AI一周大事记 | 主动式AI应用崛起,国内大模型厂商继续发力,微软AI全家桶狂飙...

文章目录 1. 大模型持续更新1.1 百川智能发布最新一代基座大模型 Baichuan 41.2 微软新开源Phi-3系列三个模型1.3 面壁智能发布MMiniCPM-Llama3-V 2.5,成为全球最强端侧多模态模型! 2. AI应用探索2.1 GitHub Copilot扩展定制Copilot体验2.2 微软 Team Co…

扫码报名活动时,如何避免重复报名?

在用二维码进行活动报名或是物品领用时,如果有人重复提交,统计数据就会变得很麻烦。为了避免这种情况,我们可以为表单组件开启【内容不可重复提交】这个设置。 开启后,填表人就不能再填写 和「自己」 或 「其他填表人」 已提交的…

Vxe UI vxe-upload vue上传组件,显示进度条的方法

vxe-upload vue 上传组件 查看官网 https://vxeui.com 显示进度条很简单,需要后台支持进度就可以了,后台实现逻辑具体可以百度,这里只介绍前端逻辑。 vue 上传附件 相关参数说明,具体可以看文档: multiple 是否允许…

【第二节】C/C++数据结构之线性表

目录 一、线性表基本说明 1.1 基本概念 1.2 抽象数据类型 1.3 存储结构 1.4 插入与删除的区别 1.5 顺序存储和链式存储的优缺点 二、链表 2.1 基本概念 2.2 抽象数据类型 2.3 单链表的定义 2.4 单链表的基本操作 2.5 单链表模板形式的类定义与实现 三、单向循环链…

分享一份糟糕透顶的简历,看看跟你写的一样不

最近看了一个人的简历,怎么说呢,前几年这么写没问题,投出去就有回复,但从现在开始,这么写肯定不行了。下面我给大家分享一下内容: 目录 🤦‍♀️这是简历文档截图 🤷‍♀️这是基本…

虚拟海外仓系统哪个比较好?功能和性价比都要考虑到才行

虚拟海外仓作为海外仓的一种形式,因为其特有的一些优势和灵活性,还是受到很多人欢迎的。今天主要和大家聊一下,虚拟海外仓在选择海外仓管理系统的时候,都要注意什么,怎么才能选到合适的虚拟海外仓系统。 1、想选对wms…

谁将决战上海滩,决定权在你手里

关注我们 - 数字罗塞塔计划 - 5月6日雨轩兰台的《【大比武01】AIGC赋能档案文创设计的尝试》,打响了“华夏伟业”杯第二届大比武活动的第一枪,截止到5月31日,入选的10篇优质内容已全部揭晓,好评如潮。感谢雨轩兰台、微柏软件、昀…

【VSCode实战】转换大小写快捷键

今天在VSCode Insiders上编码,突然想将某常量转换为大写。按照virtual studio的习惯,我Ctrl Shift U没有效果,Ctrl U也没效果。网上搜了搜,原来VSCode Insiders没有这个默认功能。 而VSCode Insiders这么强大怎么可能没有大小…

Ubuntu24.04 LTS安装中文输入法

前言 最近,windows玩没了,一怒之下决定换一个操作系统,当然就是最新的Ubuntu24.04 LTS.,其中魔法和咒语(汉语)是inux遇到的第一大难关,我权限不够教不了魔法,但我可以教你咒语(๑•…

04基于Dockerfile创建自定义镜像并运行

自定义镜像 镜像的分层结构 常见的镜像在DockerHub就能找到, 如果我们自己要部署一个Java项目就要手动把它打包为一个镜像 部署一个Java应用的大概流程:准备一个Linux运行环境(CentOS或者Ubuntu均可)--> 安装并配置JDK --> 上传Jar包 --> 运…

智能驱动|ChatGPT视角下的告警事件闭环响应

背景 在人工智能技术浪潮发展驱动的背景下,数字化、智能化、多元化的网络安全格局逐渐形成。在这个时代如何有效利用好智能工具,促进工作有效开展,显得极为重要。很多安全企业也在大力发展GPT机器人从而实现数据智能化应用,发挥其…

深度学习笔记:1.anaconda安装

Download Anaconda Distribution | Anaconda 双击安装 设置环境变量 anaconda常用命令大全(保姆级别建议收藏)-CSDN博客https://blog.csdn.net/m0_64892604/article/details/128806043?ops_request_misc%257B%2522request%255Fid%2522%253A%252217174671831680018…

推荐ChatGPT4.0——Code Copilot辅助编程、Diagrams: Show Me绘制UML图、上传PDF并阅读分析

5月14日凌晨1点、太平洋时间的上午 10 点,OpenAI的GPT-4o的横空出世,再次巩固了其作为行业颠覆者的地位。GPT-4o的发布不仅仅是一个产品的揭晓,它更像是向世界宣告AI技术已迈入了一个全新的纪元,连OpenAI的领航者萨姆奥特曼也不禁…

图书管理系统(https://github.com/plusmultiply0/bookmanagesystem)

特意去github找了一个用flask框架的项目,一起来学习它吧 这个系统包括很多功能:用户权限管理模块(管理员和普通用户),注册登录模块(滑块验证码功能),图书有关信息模块(借…

Django使用正则表达式

本书1-7章样章及配套资源下载链接: https://pan.baidu.com/s/1OGmhHxEMf2ZdozkUnDkAkA?pwdnanc 源码、PPT课件、教学视频等,可以从前言给出的下载信息下载,大家可以评估一下。 在Django框架的新版本(v2.0 )中,URLc…