如何进行Web渗透测试

什么是渗透测试?

web安全渗透测试培训 web渗透测试的基本步骤web安全渗透测试培训 web渗透测试的基本步骤


web安全渗透测试培训 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等。

网络安全培训内容

1、基础篇:其中包含安全导论、安全法律法规、web安全与风险、攻防环境搭建、web应用程序技术、核心防御机制、HTML&JS、PHP编程等,让你对网络安全基础知识做一个初步了解。

2、渗透及源码审计:其中主要包含渗透测试概述、信息收集以及社工技巧、渗透测试工具使用、协议渗透、web渗透、系统渗透、中间件渗透、内网渗透、渗透测试报告编写、源码审计工具使用、PHP代码审计、web安全防御等。

3、等级与安全:定级备案、距评估、规划设计、安全整改、等保测评、漏洞扫描、策略检查、日志审计、分析、行业巡检等。

4、风险评估:其中包含项目准备以及启动、资产识别、威胁识别、脆弱性识别、资产分析、威胁分析、脆弱性分析、综合风险分析、措施规划、报告输出、项目验收等。

5、ISO/IEC

27001:其中包含了项目准备、信息安全现状调研、资产识别以及风险评估、体系文件策划与编制、管理体系运行与实施、外部审核、知识转移、项目验收等。

6、应急响应:准备阶段、检测阶段、抑制阶段、根除阶段、恢复阶段、总结阶段等。

网络安全培训的内容

网络安全需要学习的内容有很多,大致分为以下几大模块,每个模块又细分为很多小模块,0基础脱产学习周期3-4个月之间:

部分,基础篇,包括安全导论、安全法律法规、web安全与风险、攻防环境搭建、核心防御机制、HTML&JS、PHP编程等。

第二部分,渗透测试,包括渗透测试概述、信息收集与社工技巧、渗透测试工具使用、协议渗透、web渗透、系统渗透、中间件渗透、内网渗透、渗透测试报告编写、源码审计工具使用、PHP代码审计、web安全防御等。

第三部分,等级保护,包括定级备案、距评估、规划设计、安全整改、等保测评等。

第四部分,风险评估,包括项目准备与气动、资产识别、脆弱性识别、安全措施识别、资产分析、脆弱性分析、综合风险分析、措施规划、报告输出、项目验收等。

第五部分,安全巡检,包括漏洞扫描、策略检查、日志审计、分析、行业巡检、巡检总体汇总报告等。

第六部分,应急响应,应急响应流程、实战网络应急处理、实战Windows应急处理、实战Linux应急处理、实战、Web站点应急处理、数据防泄露、实战行业应急处理、应急响应报告等。

如需学习网络安全技术,欢迎来老男孩教育试听~

新手想要学web渗透,网络安全,要如何开始

首先想想是不是真心想学,这条路注定孤独,不断碰壁。

想好后,就要每天坚持。

我的一些建议:每天多任务进行,比如早上两小时看英语学习,之后看语言,(C语言之后python之后php),下午看些网络上的渗透资料,晚上实践,等到资料看完。可以开始看看渗透博客,然后下午晚上自由分配

web安全要学什么

1.web安全基础阶段

中华网络安全法 (包含18个知识点), Linux作系统 (包含16个知识点), 计算机网络 (包含12个知识点,) SHELL (包含14个知识点), HTML/CSS (包含44个知识点) ,JaScript (包含41个知识点), PHP入门 (包含12个知识点), MySQL数据库 (包含30个知识点) ,Python (包含18个知识点);

入门的步是系统化的学习计算机基础知识,也就是学习以下这几个基础知识模块:作系统、协议/网络、数据库、开发语言、常用漏洞原理。前面的基础知识学完之后,就要进行实了。

如何学习渗透测试?

一个是编程语言的基础,这里面要细分有很多,我大致说几个方向,一个是脚本语言,无论前端或者服务端脚本语言都要有所涉及,还要逐渐加强理解。并且到一定程度能理解一下几个主流的站点程序的源码大致框架,思考一下几个切入点。然后就是C、Ja这类的对什么感兴趣选学什么,比如你以后对手机的安全方向感兴趣可以考虑从ja入手,编程语言都有相同之处,一通百通。除了编程之外,还需要了解常见的数据库的内容,包括SQL的查询语法,正则表达式也能了解一点。再来就是网络工程里面的一些内容,需要知道网络的大致工作原理,端与端之间是怎么通过协议通讯的,之间遵守了什么法则。这些都需要楼主刻苦的钻研才能奠定扎实的基础。总之,楼主加油吧。想成为一个真正的渗透测试人员不是那么容易的。以上的基础是必备的,这些还只是概要。希望能帮到楼主。

学习渗透测试必须掌握的知识:

了解基本的网络知识、什么是IP地址、IP地址的基本概念、IP段划分、什么是A段、B段、C段等

端口的基本概念、端口的分类

域名的基本概念、什么是URL、了解TCP/IP协议

了解开放式通信系统互联参考模型(OSI)

了解(超文本传输协议)协议概念、工作原理

了解WEB的静态页面和WEB动态页面,B/S和C/S结构

了解常见的、例如、Windows server2003、Linux、UNIX等

了解常见的数据库、MySQL、Mssql、、Access、Oracle、db2等

了解基本的网络架构、例如:Linux + Apache + MySQL + php

了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言

了解一种基本的脚本语言、例如PHP或者asp,jsp,cgi

当然最重要的就是实战,说得再多,不去行动,你多久都不会提升自己的水平。

一个是编程语言的基础,这里面要细分有很多,我大致说几个方向,一个是脚本语言,版无论前端或者服权务端脚本语言都要有所涉及,还要逐渐加强理解。并且到一定程度能理解一下几个主流的站点程序的源码大致框架,思考一下几个切入点。然后就是C、Ja这类的对什么感兴趣选学什么,比如你以后对手机的安全方向感兴趣可以考虑从ja入手,编程语言都有相同之处,一通百通。除了编程之外,还需要了解常见的数据库的内容,包括SQL的查询语法,正则表达式也能了解一点。再来就是网络工程里面的一些内容,需要知道网络的大致工作原理,端与端之间是怎么通过协议通讯的,之间遵守了什么法则。这些都需要楼主刻苦的钻研才能奠定扎实的基础。总之,楼主加油吧。想成为一个真正的渗透测试人员不是那么容易的。以上的基础是必备的,这些还只是概要。希望能帮到楼主。

报班学习是最合适的,省去很多不必要的坑。

网络安全培训的内容

网络安全培训主要分为五个阶段,阶段主要是学数据库基础、网络基础和linux基础,第二阶段主要学习内容web安全编程开发,第三阶段主要学习内容web漏洞与代码审计,第四阶段主要是高级web渗透测试项目实战,第五阶段主要是网络安全应急响应。

阶段:

学习数据库基础、网络基础和linux基础。具体细致的技术包括MySQL安装作,基本使用命令,MySQL事物、MySQL函数、tcp和udp基本原理,VIM编辑器等。

第二阶段:

主要学习内容是web具体技术包括安全编程开发html/js、PHP语言基础、HTML、基本语法、常用标签、表单元素、PHP环境安装、Nginx、配置文件等。

第三阶段:

主要学习内容:web漏洞与代码审计,具体技术包括xss跨站脚本漏洞、文件上传漏洞、文件分析漏洞、PHP代码审计、web安全基础概述等。

第四阶段:

高级web实战渗透测试项目,AV bypAss、webshell bypass、sql注入bypass、waf解释工作原理等内容。

第五阶段:

网络安全应急响应,具体技术包括日志格式解释、常用分析工具、攻击代码特征识别、IP编制可追溯性、工艺分析、工具使用、等级保护体系建设、等级保护评价标准、等级保护方案。

自学web渗透测试学成什么样能找工作?正常需要多久?

学成能完成web层面渗透,修复,能在web架构层面提供安全解决方案的样子就可以找工作了,一般的话,全日制脱产学习网络安全课程需要4个月左右,渗透测试阶段的内容学习大概20天,当然,这些仅供参考。

学成WEB前端开发的必要因素,一样都不可以少:

1.自主学习的能力,自己不动,谁都帮不了你。

2.有经验的技术好的人在前期带你少走弯路。

3.明确的学习规划路线,学最新最有用的东西。

4.坚定的目标感,没有持之以恒的态度,什么都学不了,学习都是枯燥的。

关于WEB前端的教程以及学习内容

基础:HTML+CSS网站页面搭建,CS核心和PC端页面开发,HTML5移动端页面开发

核心:web前端核心技术Ja,ecmasript,dom,ajax,json,正则,作用域,运动框架,核心算法,高级函数,插件封装,jQuery等。

高级:html5+高级Ja开发,大数据可视化,webapp交互接口,lbs定位,微信sdk,es6标准,高级算法,数据结构,插件封装。

框架:vue、react、angular企业开发应用。

企业要求:bootstrap,swiper,iscroll,sass,ps切图,网站上线等。

以上知识点内容都真正的掌握了,当然可以找到一份很不错的WEB前端开发的工作。但是能持之以恒学下去的人并不多,弯路走的太多了,人的状态自然就下降了。所以学习WEB前端开发的还是少走弯路,这样的效率才会高。