什么是渗透测试

渗透测试是渗透测试工程师对黑客可能用来深入检测目标网络、主机和应用程序安全的攻击技术和漏洞发现技术的完整模拟,并找到系统之中最易受攻击的环节

如何进行web渗透测试

完整的web渗透测试框架当有数千个web应用程序需要测试时,有必要建立一个完整的安全测试框架。该流程的最高目标是确保向客户提供的安全测试服务的质量。

web渗透测试的基本流程(如何进行Web渗透测试)(1)

项目立项:

项目立项、时间安排、人力配置、目标制定、厂商接口人确定

系统分析与威胁分析:针对具体的web应用,分析系统架构、使用的组件、内部提供的接口等,以STERID作为威胁模型进行相应的安全威胁分析,输出安全威胁分析表,关注后三名威胁

制定测试用例:根据威胁分析结果制定相应的测试用例。测试用例根据模板输出,可以执行

测试执行和漏洞挖掘:测试用例执行和发散测试,挖掘相应的安全问题或漏洞

问题修复和回归测试:指导客户端应用程序开发人员修复安全问题或漏洞,并进行回归测试,以确保安全问题或漏洞得到修复,并且没有引入新的安全问题

项目总结审查:项目过程总结,输出文档审阅,以及相关文档归档[2]。

web应用程序

渗透测试过程主要分为三个阶段:信息收集→ 漏洞发现→ 漏洞利用率。让我们仔细分析每个阶段的过程:

I.信息收集

在信息收集阶段,我们需要收集尽可能多的有关目标web应用程序的信息,例如脚本语言类型、服务器类型、目录结构、使用的开源软件、数据库类型所有链接页面、使用的框架、,etc

脚本语言类型:常见的脚本语言类型包括:PHP、ASP、ASPX、JSP等

测试方法:

1抓取网站的所有链接并检查后缀

2直接访问不存在的页面,然后进行不同的后缀测试

3检查robots Txt,检查后缀

服务器类型:常见的web服务器包括Apache、Tomcat、IIS、,ngnix等

测试方法:

1检查头部并判断服务器类型

2根据错误信息判断

3根据默认页面判断

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

使用Google

robot 1获取整个目录,或者使用Google

robot 2搜索整个目录Txt是否披露使用的开源软件

如果我们知道目标公司使用的开源软件,我们可以找到相关软件的漏洞,直接测试网站

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

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

1。使用应用程序报告错误并检查错误信息

2扫描服务器的数据库端口(在未完成NAT且未过滤防火墙时生效)

所有链接页面:这与以前的目录结构类似,但这不仅是为了获取网站的所有功能页面,但也要获取管理员备份的源代码有时

1使用字典枚举页面

2使用爬虫对整个网站进行爬网,或使用谷歌等搜索引擎获取

3查看机器人Txt是否泄漏

许多网站使用开源框架快速开发网站,因此,收集网站的框架信息也非常重要。指纹识别(网络之上有许多开源的指纹识别工具)

2。漏洞发现

在这个阶段,我们应该在测试时对案例应用正确的药物,而不能盲目扫描。首先,我们应该确定目标应用程序是否使用开源软件、开源框架等,然后进行深入的漏洞扫描

关于开源软件的漏洞发现

开源软件:常见的开源软件包括WordPress、phpbb、dedecms等。

开源框架:常见的开源框架包括struts 2,spring MVC、ThinkPHP等

下方件服务器:常用中间件服务器包括JBoss、Tomcat、Weblogic等

数据库服务:常用数据库服务MSSQL、mysql、Oracle、redis、Sybase、mongodb DB2等

开源软件测试方法

1通过指纹识别软件判断开源软件的版本信息,并根据不同的版本信息,在开放的漏洞数据库之中找到相应版本的漏洞进行测试

2默认后台登录页面可以进行简单的暴力破解,数据库服务端口身份验证和其他条目默认密码尝试和其他操作

3使用开源漏洞发现工具扫描漏洞,例如wpscan

3。漏洞利用

针对不同的漏洞,有不同的漏洞利用方法,需要更多的知识点。通常,该阶段包括两种方式:一种是手动测试,另一种是工具测试

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

有想要学习资料的,私聊加V。

,