Web渗透流程

时间:2022-05-31点击次数:587

一次偶然的机会,我有幸邀请了一家web来对自己的web系统进行安全。四周后,我与几位安全专家进行了多次沟通,完成了威胁建模、渗透和白盒,发现了28个漏洞。经验是宝贵的,所以有必要总结一下。

现在,随着企业信息化建设的发展,越来越多的重要数据将以电子媒体的形式存储,不仅方便了企业办公,而且造成了巨大的安全风险。近年来,随着APT随着攻击的蔓延,越来越多的企业遭受了不可挽回的重大损失。

面对目的明确、装备精良、经验丰富的雇佣军攻击者,传统的安全设备似乎无能为力。企业需要做的是定期进行专业的渗透,以降低风险,加强安全。

那么,什么是渗透呢?

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

假如说安全检测是横向地毯式自动化扫描

可见渗透试验的目的是发现目标系统潜在的业务漏洞风险。

安全问题反映在输入输出问题上,可以分析数据流。首先了解渗透的过程,用工具找到漏洞,理解和复制它。

如何进行Web渗透?

完整web渗透试验框架

需要的web成千上万的应用程序需要建立一个完整的安全框架户的安全服务质量。

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

系统分析&威胁分析:针对具体情况web应用程序、分析系统架构、使用组件、外部界面等STRIDE对威胁模型进行相应的安全威胁分析,输出安全威胁分析表,重点关注top3威胁;

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

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

问题修复&回归:指导客户应用开发人员修复安全问题or确保安全问题or修复漏洞,未引入新的安全问题;

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

2、Web渗透试验过程的应用

信息收集主要分为三个阶段:→漏洞发现→利用漏洞,仔细分析各个阶段的流程:

一、信息收集

在信息收集阶段,我们需要尽可能多地收集目标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注入的sql p、针对软件漏洞的 tesploit等。


http://www.qdshtddzkj.com

下一篇:渗透基本流程

产品推荐