一个典型的Node应用可能会有几百个,甚至上千个包依赖(大部分的依赖是间接的,即下载一个包,这个包会依赖其他的好多包),所以最终的结果是,应用程序就会像是这个样子的:
和所依赖的包相比,自己写的代码量就显得少的可怜,引入了大量的包成为了应用程序的代码,也就引入了一些不可预知的隐患,比如我们是否知道这些包是否是安全的,如果我们引入的包是安全的,那这些包自己引入的第三方的包也是安全的吗?如果不是,那么这些隐患也会就成了应用程序的小后门,让黑客可以随意进出。
所以我们需要一个工具能够扫描这些包的漏洞,减少自己应用程序被黑客攻击的可能性。在这里我推荐我目前在用的snyk,https://snyk.io/,这里面可以有两种方式来检测我们应用程序的漏洞,一种是从代码仓库中直接引入进来,目前支持的代码仓库有:
首先来讲一种比较繁琐,但是比较直观的方法:
选择一个你的代码仓库,我们这里以GItHub为例,演示一下:
选择需要添加的账号:
给添加需要扫描的漏洞的仓库
如果是NodeJs的项目,他会自动关联,如果没有自动关联,自己添加文件的位置
生成测试报告
点击 View report and fix 可以查看详细的报告
然后根据修复的方法把漏洞给修复就行了,基本上是更新打补丁进行修复。如果还没有修复方案的,可以自己向作者提出如何修复这个漏洞。如果选择了自动扫描,他会自己扫描应用程序中的package.json文件,如果有新的漏洞出来,会有邮件通知,及时修复这个漏洞就行。
 
接下来我们用第二种方法,第二种相对快速简单一些:
打开 iTerm(其他命令行工具也可以,但这里以iTerm为例),安装snyk的命令行工具:
 
npm install -g snyk
 
安装成功之后,进入Node应用的根目录中,输入 snyk test:
 
就会看到漏洞的列表
然后再运行 snyk wizard 可以对漏洞进行修复
 
一般选择第一项,通过更新依赖来修复漏洞。一项一项修复就行了。
两种方法说完了,接下来我们来拿几个漏洞来测试一下怎么利用这些漏洞进行测试攻击:
Node项目Demo代码(https://github.com/wjszxli/goof):
1.利用 st 模块进行目录遍历
这是模块信息:
st 模块是一个提供静态文件服务的中间件,比如我们的javascript,css和图像等文件,在我们示例的项目中的代码的位置是在
这是检测出来的漏洞信息:
接下来我们开始模仿:
我们在iTerm中先尝试着获取他的 about页面:
可以看到,获取了源代码
那来试试看看能不能突破文件夹的限制:
规范化的文件夹路径被过滤掉了,那用 URL编码的格式来试试看:
额,得到了项目根目录的文件,那如果要获取其中任意一个文件的源代码就轻而易举了,比如我们要拿到db.js的内容:
简简单单就得到了
那如果要获取服务器上的其他文件夹呢
黑客就能用Node有权访问的任何文件
2.利用 marked 进行跨站脚本攻击(xss):
这是模块信息
这是我们的漏洞信息:
 
在标签页有使用到 marked,那我们就试试标签页,第一次先这样试一试,输入 <script>alert(1)</script>
这种情况倒是控制住了:
那我们来创建一个标记格式的链接,输入 [Gotcha](javascript:alert(1)),看看发生了什么:
也没产生效果,他也做了处理。
那再试试转义,试试他做了转义没有,那我输入:[Gotcha](javascript&#58this;alert(1)),这下效果出来了,
好像有反应了,点击一下,还真的生效了!
 
 
 

NodeJs的包漏洞扫描与漏洞测试攻击的更多相关文章

  1. 10大Web漏洞扫描工具

    Web scan tool 推荐10大Web漏洞扫描程序 Nikto 这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI,以及超过900个服务器版 ...

  2. 20155208徐子涵 Exp 6 信息搜集与漏洞扫描

    20155208徐子涵 Exp 6 信息搜集与漏洞扫描 实验目的 掌握信息搜集的最基础技能与常用工具的使用方法 实验内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技 ...

  3. 20155326刘美岑 Exp6 信息收集与漏洞扫描

    20155326刘美岑 Exp6 信息收集与漏洞扫描 实验后回答的问题 (1)哪些组织负责DNS,IP的管理. 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地 ...

  4. 20155232《网络对抗》Exp 6 信息搜集与漏洞扫描

    20155232<网络对抗>Exp 6 信息搜集与漏洞扫描 一.实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版 ...

  5. 20155301 Exp6 信息搜集与漏洞扫描

    20155301 Exp6 信息搜集与漏洞扫描 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 (4 ...

  6. APP漏洞扫描用地址空间随机化

    APP漏洞扫描用地址空间随机化 前言 我们在前文<APP漏洞扫描器之本地拒绝服务检测详解>了解到阿里聚安全漏洞扫描器有一项静态分析加动态模糊测试的方法来检测的功能,并详细的介绍了它在针对本 ...

  7. APP漏洞扫描器之本地拒绝服务检测详解

    APP漏洞扫描器之本地拒绝服务检测详解 阿里聚安全的Android应用漏洞扫描器有一个检测项是本地拒绝服务漏洞的检测,采用的是静态分析加动态模糊测试的方法来检测,检测结果准确全面.本文将讲一下应用漏洞 ...

  8. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  9. (汉化改进作品)BruteXSS:Xss漏洞扫描脚本

    今天给大家进行汉化改进的事一款脚本工具:BruteXSS,这款脚本能自动进行插入XSS,而且可以自定义攻击载荷. 该脚本也同时提供包含了一些绕过各种WAF(Web应用防护系统)的语句.   0×01简 ...

随机推荐

  1. Android Studio 安装后首次启动的 Config path ...... is invalid 问题(转)

    原文链接:http://m.blog.csdn.net/blog/hnust_xiehonghao/46127775 1. 问题描述: 安装好Android Studio后,启动时弹出如下信息: Co ...

  2. ajax大洋第一步

    Ajax工具包 Ajax并不是一项新技术,它实际上是几种技术,每种技术各尽其职,以一种全新的方式聚合在一起. 服务器端语言:服务器需要具备向浏览器发送特定信息的能力.Ajax与服务器端语言无关. XM ...

  3. 伸展树(Splay树)的简要操作

    伸展树(splay树),是二叉排序树的一种.[两个月之前写过,今天突然想写个博客...] 伸展树和一般的二叉排序树不同的是,在每次执行完插入.查询.删除等操作后,都会自动平衡这棵树.(说是自动,也就是 ...

  4. 常用SQL_官方文档使用

    SQL语句基础理论 SQL是操作和检索关系型数据库的标准语言,标准SQL语句可用于操作关系型数据库. 5大主要类型: ①DQL(Data Query Language,数据查询语言)语句,主要由于se ...

  5. 如何在多个项目中分离Asp.Net Core Mvc的Controller和Areas

    前言 软件系统中总是希望做到松耦合,项目的组织形式也是一样,本篇文章将介绍在ASP.NET CORE MVC中怎么样将Controller与主网站项目进行分离,并且对Areas进行支持. 实践 1.新 ...

  6. Entity Framework快速入门--ModelFirst

    Entity Framework带给我们的不仅仅是操作上的方便,而且使用上也很是考虑了用户的友好交互,EF4.0与vs2010的完美融合也是我们选择它的一个理由吧.相比Nhibernate微软这方面做 ...

  7. linux_cmd_list_0

    一.文件 touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 unix2dos ...

  8. Java与面向对象之随感(2)

    我们知道Java语言的一大特性就是相比于c语言和c++语言,其更加安全.那么Java安全性的一个重要保证就是它取消了指针,并且坚决反对数组的出界(c++对当数组超出上限但是还进行读写操作时允许的!), ...

  9. [编织消息框架][JAVA核心技术]动态代理应用8-IRpcReceive实现

    private static Map<Short, Map<Byte, Method>> RECEIVE_METHOD_INFO = new HashMap<>() ...

  10. seo从业者发展方向

    对于很多朋友来说,seo就是一项比较简单的技能,内容+外链,就可以基本囊括seo的基本内容了.可能很多朋友对此不屑一顾,会说seo可是包含万象, 你需要懂网页设计.标签设计,分词优化.企业建站等等方面 ...