Web渗透测试流程

什么是渗透测试?

渗透测试 (penetration test)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。我们认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的公司实施渗透测试并不容易。

 

渗透测试?Web如何进行

 

应用数以千计,就有必要建立一套完整的安全测试框架,流程的最高目的web当需要测试的标是要保证交付给客户的安全测试服务质量。    立项:项目建立,时间安排,人力分配,目标制定,厂商接口确定;   应用分析系统架构、使用的组件、对外提供的接web威胁分析:针对具体的&系统分析top3重点关注输出安全威胁分析表,为威胁模型进行对应的安全威胁分析,STRIDE以口等,   威胁具备可测试用例按照模板输出,根据威胁分析的结果制定对应的测试用例,制定测试用例:   执行性:or发散测试,挖掘对应的安全问题&漏洞挖掘:测试用例执行&测试执行漏洞;漏洞并进行回归测试,确保or回归测试:指导客户应用开方修复安全问题&问题修复漏洞得到修复,并且没有引入新的安全问题;or安全问题

 

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

 

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

 

一.信息收集:

 

 

1,获取域名的whois信息,获取注册者邮箱姓名电话等。

 

2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。

 

3,查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞

 

4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。

 

5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针

 

6,google hack 进一步探测网站的信息,后台,敏感文件

二.漏洞发现:

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

关于开源软件的漏洞发现:

开源的软件:常见的开源软件有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,nessus等

可能存在的漏洞

Owasp关键点

SQL注入

XSS攻击

代码安全之上传文件

代码安全之文件包含

代码安全之SSRF

逻辑漏洞之密码重置

逻辑漏洞之支付漏洞

逻辑漏洞之越权访问

平台安全之中间件安全

 

三.漏洞利用:

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

手工测试:

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

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

工具测试:

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

 

注:部分内容选自百度,持续更新中!

 

你可能感兴趣的:(Web渗透测试流程)