mongodb漏洞利用_mongodb渗透测试

hacker|
309

网络安全工程师要学些什么?

网络安全工程师需要学服务漏洞扫描、程序漏洞分析检测、权限管理、野谈入侵和攻击分析追踪、网站渗透、病毒木马防范腔脊吵、计算机语言等内容,还需要懂得网络安全产品的配置和使用。

网络安全工程师的工作职责:

一、主持项目网络安全产品的需求分析、项目可行性分析、技术评测、方案规划和搭建,提供相关技术支持;

二、设计满足顾客和网络安全性要求的网络安全解决方案;

三、通过数据分析和其他相关工具,排查解决项目实施过程中的复杂网络故障问题;

四、根据公司流程,规范化的进行项目实施并编写输出实施报告;

五、处理和解决客户的疑问与困难,做好客户的支持与服务工作;

六、其他专项或上级领导安排或支撑工作。

一般情况下,企业招聘网络安全工伍侍程师,要求应聘者具备网络安全通信协议、系统漏洞、恶意代码检测与分析、安全攻防、信息安全技术及产品等方面的理论基础和实践经验,同时具有较强的沟通协作能力。 感兴趣的话点击此处,免费学习一下

想了解更多有关网络安全工程师的相关信息,推荐咨询达内教育。达内教育已从事19年IT技术培训,累计培养100万学员,并且独创TTS8.0教学系统,1v1督学,跟踪式学习,有疑问随时沟通。该机构26大课程体系紧跟企业需求,企业级项目,课程穿插大厂真实项目讲解,对标企业人才标准,制定专业学习计划,囊括主流热点技术,助力学生更好的学习。

个人博客

代理 :

lambda 表达式 :

接口 :

泛型初迅桥销探 :

MYSQL 索引(二)--- 索引优化 :

MYSQL 索引(三)--- SQL日志分析 :

MYSQL 索引(一)--- 简介 :

API 测试 :

SQLMAP注入参数详解 :

MongoDB 监控 --- MongoDB基础用法(八) :

MongoDB 数据备份和恢复 --- MongoDB基础用法(七) :

MongoDB分片 --- MongoDB基础用法(六) :

MongoDB复制 --- MongoDB基础用法(五) :

MongoDB Java连接---MongoDB基础亩游用法(四) :

MongoDB用户,角色管理 --- MongoDB基础用法(三) :

Mongodb命令 --- MongoDB基础用法(二) :

MongoDB简消乱介---MongoDB基础用法(一) :

Interface 接口详解 :

XPath注入 :

Nmap 使用教程 :

Whatweb 使用教程 :

Flask框架 :

Scrapy爬虫框架初探 :

HTTP协议简介 :

正则表达式 :

CentOS下环境搭建安装Java,Mysql,Nginx,Php,Nodejs,Docker,Solo,图库,Empire :

继承的设计技巧 :

反射 :

核心防御机制 :

Web应用程序安全 :

Web安全攻防之常见漏洞 :

Web安全攻防之信息搜集 :

Ubuntu创建本地apt仓库 :

CentOS创建本地yum仓库 :

Docker 私有仓库 :

Docker镜像和Dockerfile :

Docker部署Mysql, Tomcat, Nginx, Redis :

Docker数据卷 :

Docker命令 :

CentOS 安装 Docker :

Spring Boot + Swagger Demo :

类设计技巧 :

包修饰符 :

JAVA 杂谈 --- 重载 构造器 :

SQLMAP API 使用教程 :

方法参数 :

JAVA 运算符优先级 :

数组拷贝 :

JAVA 基本数据类型 :

JAVA数值类型之间类型转换 :

StringBuilder---构建字符串 :

JAVA 大数值 :

Java环境搭建 :

Java白皮书---十一个特性 :

SQLMAP注入教程 :

如何进行Web渗透测试

什么是渗透测试?

渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,发现系统最脆弱的环节。

如何进行Web渗透测试?

完整web渗透测试框架当需要测试的web应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目标是要保证交付给客户的安全测试服务质量。

1、立项:项目建立,时间安排,人力分配,目标制定,厂商接口人确定;

系统分析威胁分析:针对具体的web应用,分析系统架构、使用的组件、对外提供的接口等,以STRIDE为威胁模型进行对应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;

制定测试用例:根据威胁分析的结果制定对应的测试用例,测试用例按照模板输出,具备可执行性;

测试执行漏洞挖掘:测试用例执行发散测试,挖掘对应的安全问题or漏洞;

问题修复回归测试:指导客户应用开发方修复安全问题or漏洞,并进行回归测试,确保安全问题or漏洞得到修复,并且没有引入新的安全问题;

项目总结评审:项目过程总结,输出文档评审,相关文档归档。

2、Web应用的渗透测试流程

主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用,下面仔细分析一下各个阶段流程:

一、信息收集

在信息收集阶段,我们需要尽量多的收集关于目标枣岁web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等

脚本语言的类型:常见的脚本语言的类型包括:php、asp、aspx、jsp等

测试方法:

1 爬取网站所有链接,查看后缀

2 直接访问一个不存在页面后面加不同的后缀测试

3 查看robots.txt,查看后缀

服务器的类型:常见的web服务器包括:apache、tomcat、IIS、ngnix等

测试方法:

1 查看header,判断服务器类型

2 根据报错信息判断

3 根据默认页面判断

目录的结构:了解更多的目录,可能发现更多的弱点,如:目录浏览、代码泄漏等。

测试方法

1 使用字典枚举目录

2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取

3 查看robots.txt是否泄漏

使用的开源软件:我们如果知道了目标使用的开源软件,我们可以查找相关的软件的漏洞直接对网站进行测试。

测试方法

指纹识别(网络上有很多开源的指纹识别工具)

数据库类型:对于不同的数据库有不同的测试方法。

测试方法

1 使应用程序报错,查看报错信息

2 扫描服务器凳乎睁的数据库端口(没做NAT且防火墙不过滤时有效)

所有链接页面:这个跟前面的获取目录结构类似,但是这个不只是获取网站的所有功能页面,有时候还可以获取到管理员备份的源码。

测试方法

1 使用字典枚举页面

2 使用爬虫爬取整个网站,或者使用google等搜索引擎获取

3 查看robots.txt是否泄漏

用到的框架:很多网站都利用开源的框架来快速开发网站,所以收集网站的框架信息也是非常关键的。

测试方法

指纹识别(网络上有很多开源的指纹识别工具)

二、漏洞发现

在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。

关于开源软件的漏洞发现

开源的软件:常见的开源软件有wordpress、phpbb、dedecms等

开源的框架:常见的开源框架有Struts2、 Spring MVC、ThinkPHP等

中间件服顷扒务器:常见的中间件服务器有jboss、tomcat、Weblogic等

数据库服务:常见的数据库服务mssql、mysql、oracle、redis、sybase、MongoDB、DB2等

对于开源软件的测试方法

1 通过指纹识别软件判断开源软件的版本信息,针对不同的版本信息去开放的漏洞数据库查找相应版本的漏洞进行测试

2 对于默认的后台登录页、数据库服务端口认证等入口可以进行简单的暴力破解、默认口令尝试等操作

3 使用开源的漏洞发现工具对其进行漏洞扫描,如:WPScan

关于自主开发的应用

手动测试:这个阶段,我们需要手工测试所有与用户交互的功能,比如:留言、登入、下单、退出、退货、付款等操作

软件扫描:使用免费的软件扫描,如:appscan、wvs、netsparker,burp等

可能存在的漏洞

Owasp关键点

代码安全之上传文件

代码安全之文件包含

代码安全之SSRF

逻辑漏洞之密码重置

逻辑漏洞之支付漏洞

逻辑漏洞之越权访问

平台安全之中间件安全

三、漏洞利用

针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试

手工测试

手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。手工测试不需要额外的辅助工具,可由测试者独立完成,实现起来比较简单。但这种方法高度依赖于测试者,需要测试者对目标比较了解。手工测试可用于Web应用程序、浏览器及其他需要用户交互的程序。

这种方式对于有特殊过滤等操作,或者网络上没有成型的利用工具的时候可以使用。

工具测试

网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。

0条大神的评论

发表评论