第5章-5.1-Web应用渗透简介_第1页
第5章-5.1-Web应用渗透简介_第2页
第5章-5.1-Web应用渗透简介_第3页
第5章-5.1-Web应用渗透简介_第4页
第5章-5.1-Web应用渗透简介_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web应用渗透简介

随着网络的发展,越来越多的企业将应用架设在web平台上,为客户提供更为方便、快捷的服务支持。根据Gartner的调查,信息安全攻击有75%都是发生Web应用而非网络层面上。因此保护web应用安全非常重要。Web渗透测试主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试。Web应用渗透是通过模拟黑客的思维和攻击手段,对Web应用服务的弱点、技术缺陷和漏洞进行探查评估。本章旨在让读者对Web应用渗透有基本了解,包括Web应用渗透的定义、常见Web应用漏洞。前言目录/CONTENTSWeb应用渗透基础HTTP基础原理OWASPTOP10Web安全漏洞一般由以下几种原因造成:输入输出验证:由于用户的输入不合规或者具有攻击性的语句造成代码出错,或者不能执行预期的目标,从而导致web应用方面的漏洞。系统设计缺陷:编码逻辑上的处理不当造成的缺陷引发的漏洞。环境缺陷:应用程序在引用第三方的框架或者库之类的代码,这些第三方的程序随着时间的积累不去更新维护的话会产生一些漏洞。Web安全漏洞产生原因一般的流程如下:Web应用渗透测试流程明确此次Web应用渗透测试的目标,主要有以下几个方面:确定范围:测试目标的范围、IP、域名、内外网、测试账户。确定规则:能渗透到什么程度,所需要的时间、能否修改上传、能否提权等。确定需求:Web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞等。明确目标通过信息收集技术,获取应用系统的相关信息,主要有以下几个方面:方式:主动扫描,开放搜索等。开放搜索:利用搜索引擎获得:后台、未授权页面、敏感URL等。基础信息:IP、网段、域名、端口。应用信息:各端口的应用。例如Web应用、邮件应用等。系统信息:操作系统版本。版本信息:所有这些探测到的应用的版本。服务信息:中间件的各类信息,插件信息。人员信息:域名注册人员信息,Web应用中发帖人的ID,管理员姓名等。防护信息:试着看能否探测到防护设备。信息收集利用上一步中列出的各种系统,应用等使用相应的漏洞,主要有以下几种方式:漏扫、AWVS、AppScan等。结合漏洞去exploit-db等位置找利用。在网上寻找验证POC。漏洞探测将上一步中发现的有可能成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中,主要有以下几种方式:自动化验证:结合自动化扫描工具提供的结果。手工验证,根据公开资源进行验证。试验验证:自己搭建模拟环境进行验证。登录猜解:有时可以尝试猜解一下登录口的账号密码等信息。业务漏洞验证:如发现业务漏洞,要进行验证。漏洞验证为下一步实施渗透做准备,主要有以下几种方式:精准打击:准备好上一步探测到的漏洞的EXP,用来精准打击。绕过防御机制:是否有防火墙等设备,如何绕过。定制攻击路径:最佳工具路径,根据薄弱入口、高内网权限位置、最终目标。绕过检测机制:是否有检测机制、流量监控、杀毒软件、恶意代码检测等(免杀)。攻击代码:经过试验得来的代码,包括不限于XSS代码、SQL注入语句等。信息分析通过对获取的信息进行分析,帮助我们获取渗透测试所需关键信息,主要有以下几种方式:实施攻击:根据前几步的结果,进行攻击。获取内部信息:基础设施(网络连接、VPN、路由,拓扑等)。进一步渗透:内网入侵,敏感目标。持续性存在:一般我们对客户做渗透不需要。通过rookit、后门、添加管理账号、驻扎手法等。清理痕迹:清理相关日志(访问,操作)、上传文件等。获取所需对渗透测试信息进行整理,主要有以下几种方式:整理渗透工具:整理渗透过程中用到的代码、POC、EXP等。整理收集信息:整理渗透过程中收集到的一切信息。整理漏洞信息:整理渗透过程中遇到的各种漏洞、各种脆弱位置信息。信息整理对渗透测试结果进行梳理,形成报告,主要有以下几种方式:按需整理:按照之前第一步跟客户确定好的范围、需求来整理资料,并将资料形成报告。补充介绍:要对漏洞成因、验证过程和带来危害进行分析。修补建议:当然要对所有产生的问题提出合理高效安全的解决办法。形成报告目录/CONTENTSWeb应用渗透基础HTTP基础原理OWASPTOP10HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。HTTP设计用来将超文本标记语言(HTML)文档从Web服务器传送到Web浏览器HTTP是一个请求和回应协议:客户机发送请求,服务器对请求给出回应HTTP使用可靠的TCP连接,默认TCP端口是80。承载于TLS或SSL协议层之上,默认端口为443。(https)HTTP简介HTTP协议永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。HTTP的请求响应模型非持久连接:浏览器首先初始化与运行http服务器主机的TCP连接,使用URL指定端口浏览器通过与TCP连接相关联的本地套接字发出一个HTTP请求消息服务器接收到请求之后,解析请求并处理请求,然后通过一个套接字发出相应消息服务器通知TCP需要关闭连接(在浏览器收到相应消息之后才会真正终止连接)浏览器收到响应消息,TCP连接终止持久连接:持久连接没有关闭连接这一步,服务器响应后会继续让TCP连接保持打开状态HTTP连接1.支持客户/服务器模式2.简单快速客户向服务器请求服务时,只需传送请求方法和路径。3.灵活HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。5.HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。HTTP特点统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。URL标准格式:schema://[user:password@]domain:port/path?query_string#fragments注意:URL中允许出现的字符是有限制的,URL的path开始允许直接出现A-Za-z0-9以及半角连接(-,半角减号)、下划线(_)、句点(.)、波浪号(~)。其他字符均会被进行百分号编码URL:统一资源定位符HTTP的一个会话,由Request和response组成。HTTP请求(Requests)由请求行、消息报头、请求正文三个部分组成请求行:方法,URL,协议/版本(Method-URI-Protocol/Version)消息报头/请求头(Requestheaders)请求正文(Entitybody)HTTP响应(Responses)也包含三个部分:状态行、消息报头、响应正文状态行:协议状态代码描叙(Protocol-Statuscode-Description)消息报头(Responseheaders)响应正文(Entitybody)HTTP报文根据协议的学习我们了解HTTP协议分为两个部分:请求和回应。而平时浏览网页,请求报文是经过浏览器包装好的,不通过工具直接访问只能够控制很少的部分。要想真正的人为控制与服务器交互,只能通过代理抓包的方法。代理:作为客户端和服务器的中间者,在利用http协议交互时,所有请求和回应都不会直接发送给目标而是由代理接受和转发。设置代理进入浏览器的“选项”配置网络代理“设置”通常在本机(代理在本机上)进行抓包:设置ip地址为,端口为任意空闲端口并记录(代理模式为http代理)

浏览器代理设置进入burpsuite的proxy选项点击Options设置栏选中需要的代理地址点击edit进行配置将IP和端口设置为与浏览器中相同的选项burpsuite代理设置切换到proxy功能中的Intercept窗口将intercept选项置为On开启状态浏览器访问任意网页,Burp即可抓取到请求报文抓包实践HTTP请求(Requests)由请求行、消息报头、请求正文三个部分组成请求行:方法,URL,协议/版本(Method-URI-Protocol/Version)消息报头(Requestheaders)请求正文(Entitybody)HTTP请求报文HTTP请求方法HTTP请求方法Host:主要用于指定被请求支援的Internet主机和端口号User-Agent:向服务端传递客户端操作系统、浏览器、和其他属性Referer:包含一个URL,代表当前URL的上一个URLCookie:是一段文本,通常来表示请求者的身份Range:Range可以请求实体部分内容,多线程下载一定会用到此请求头x-forward-for:即XFF头,代表请求端的IP,也可以是多个,中间用逗号隔开Accept:用于指定客户端接收哪些MIME类型的信息Accept-Charset:用于指定客户端接收的字符集HTTP请求首部信息:就是实体内容的属性,包括实体信息类型,长度,压缩方法,最后一次修改时间等。Content-Type:用于向接收方指示实体的介质类型。Content-Encoding:被用作媒体类型的修饰符,表示了已经被用到实体正文的附加内容编码,想要获得content-type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Length:用于指明实体正文的长度,以字节方式存储的十进制数字来表示。Last-Modified:用于指示资源的最好修改时间和日期。HTTP请求首部HTTP响应(Responses)也包含三个部分:状态行、消息报头、响应正文状态行:协议状态代码描叙(Protocol-Statuscode-Description)消息报头(Responseheaders)响应正文(Entitybody)HTTP响应1、状态行:HTTP-VersionStatus-CodeReason-PhraseHTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码Reason-Phrase表示状态代码的文本描述。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收,继续处理,范围是100~101

2xx:成功--表示请求已被成功接收、理解、接受,范围是200~2063xx:重定向--要完成请求必须进行更进一步的操作,范围是300~3054xx:客户端错误--请求有语法错误或请求无法实现,范围是400~4155xx:服务器端错误--服务器未能实现合法的请求,范围是500~5052、响应报头3、响应正文就是服务器返回的资源的内容HTTP响应200:客户端请求成功302:重定向404:请求的资源不存在400:客户端请求有语法错误,不能被服务器所理解401:请求未授权403:服务器收到请求,但是拒绝提供服务500:服务器内部错误503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常HTTP常见响应状态码响应头:是服务器根据客户端发送的请求返回的内容HTTP响应首部Server:服务器所使用的Web服务器名称Set-Cookie:向客户端设置CookieLast-Modified:服务器通过这个头信息告诉浏览器,资源的最后修改时间Location:告诉浏览器去访问那个页面,浏览器接收到这个请求后会立刻访问Location头所指向的页面Refresh:服务器通过Refresh头告诉浏览器定时刷新浏览器HTTP响应首部HTTP协议的使用极为广泛,但是在设计时并没有考虑到信息的加密和验证问题,因此HTTP面临着数据明文传送和缺乏对消息完整性的验证这两个问题。HTTP协议在数据传输过程中,只要攻击者能够控制到受害者的网络,便可以轻易的嗅探、修改HTTP传输的内容。HTTP协议在传输客户端请求和服务端响应时,仅仅在报文头部包含了传输数据长度,没有任何校验数据完整性的机制。HTTP安全问题为了加强web服务数据传输是的安全性,提出了HTTPS协议,通过在TCP层与HTTP层增加一个SSL(安全套接字层)来增强数据传输时的安全性。使用HTTPS时,数据的传输的加密解密均有SSL进行,与上层HTTP无关。HTTPS提高了数据传输时的机密性,有着严格的完整性校验,大大提升的信息传输的安全性。HTTP安全协议HTTPS是在HTTP协议基础上,HTTP请求与响应都是以相同的方式进行工作,主要区别如下:HTTP是超文本传输协议,信息明文传输。HTTPS是有安全性的SSL加密传输协议。HTTP与HTTPS采用是完全不同的连接方式,HTTP是80端口,HTTPS是443端口。HTTP连接相对简单,是无状态的,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议。HTTP与HTTPS的区别目录/CONTENTSWeb应用渗透基础HTTP基础原理OWASPTOP10开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个非营利组织,不附属于任何企业或财团,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。OWASPOWASP项目最具权威的就是其“十大安全漏洞列表”(OWASPTop10),OWASPTop10不是官方文档或标准,而只是一个被广泛采用的意识文档,被用来分类网络安全漏洞的严重程度,目前被许多漏洞奖励平台和企业安全团队评估错误报告。这个列表总结了Web应用程序最可能、最常见、最危险的十大漏洞,可以帮助IT公司和开发团队规范应用程序开发流程和测试流程,提高Web产品的安全性。OWASPTop102021年版TOP10相较于2017版本产生三个新类别,且进行了一些整合。OWASPTOP102021访问强制实施策略,使用户无法在其预期权限之外操作。失败的访问控制通常导致未经授权的信息泄露,修改或者销毁所有数据,或在用户权限之外执行业务功能。常见的CWE包括:将敏感信息泄露给未经授权的参与者、通过发送的数据泄露敏感信息、跨站请求伪造(CSRF)。A01:失效的访问控制常见的访问控制脆弱点:违法最小权限原则或默认拒绝原则,即访问权限应只授予特定能力、角色或用户,但实际上任何人都可以访问;通过修改URL(参数修改或强制浏览),内部应用程序状态或者HTML页面,或者使用修改API请求的攻击工具绕过访问控制检查;通过提供唯一的标识符允许查看或编辑他人账户;API没有对POST、PUT和DELETE强制执行访问控制;特权提升,在未登陆的情况下假扮用户或以用户身份登入时充当管理员。A01:失效的访问控制预防措施:除公有资源外,默认访问拒绝使用一次性的访问控制机制,并在整个应用程序中不断重用它们,包括最小化跨资源共享(CORS)的使用建立访问控制模型以强制执行所有权记录,而不是简单接受用户创建、读取、更新或删除的任何记录在日志中记录失败的访问控制,并在适当时向管理员告警(例如:重复故障)A01:失效的访问控制​传输中的数据和存储数据都有哪些保护需求?例如:密码、信用卡号、医疗记录、个人信息和商业秘密需要额外保护。敏感数据泄露更像是一种常见的表象问题而不是根本原因,这项风险重点是与加密机制相关的故障(或缺乏加密机制)。A02:加密机制失效常见的加密机制脆弱点:在传输数据过程中是否使用明文传输?这和传输协议有关:HTTP、SMTP、经过TLS升级的FTP;外部网络流量是有害的,需要验证所有的内部通信;无论是在默认情况还是在旧的代码中,是否还在使用任何旧或者脆弱的加密算法或传输协议;是否默认使用加密密钥、生成或重复使用脆弱的加密密钥,或者是否缺少适当的密钥管理或密钥回转;接收到的服务器证书和信任链是否经过正确验证。A02:加密机制失效预防措施:对应用程序处理、存储或者传输的数据分类,并根据相关要求确认哪些数据敏感。对于没有必要存储的敏感数据,应当尽快清除。确保加密存储所有的敏感数据。确保使用了最新的,强大的标准算法、协议和密钥,并且密钥管理到位。禁用缓存对包含敏感数据的响应。不要使用传统协议HTTP、FTP等来传输敏感数据。A02:加密机制失效​将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、NoSQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。常见的CWE:跨站点脚本、SQL注入、文件名或路径的外部控制。A03:注入常见的注入脆弱点:应用程序不会验证、过滤或清洗用户提供的数据动态查询或无上下文感知转义的非参数化调用之间在解释器中使用恶意数据被直接使用或连接。SQL或命令包含动态查询、命令或存储过程中的结构和恶意数据A03:注入预防措施:防止注入需要将数据与命令和查询分开:使用安全的API使用肯定或者白名单服务器端输入验证对于任何残余的动态查询,使用该解释器的特定转义语法转义特殊字符在查询中使用LIMIT和其他SQL控件,以防止在SQL注入的情况下大量披露记录A03:注入​“不安全设计”是2021年新增的一个类型,它重点关注的是设计缺陷的风险,“不安全设计”代表的是一类漏洞。不安全设计和不安全实现直接存在差异,我们区别设计缺陷和实现缺陷是有原因的,安全设计仍然可能存在实现缺陷,从而导致可能被利用的漏洞。A04:不安全设计常见不安全设计脆弱点:需求和资源管理安全设计安全开发生命周期A04:不安全设计预防措施:与应用安全专业人员建立并使用安全的开发生命周期,以帮助评估和设计与安全和隐私相关的控制;限制用户或服务的资源消耗;通过设计咋所有层中严格隔离租户;根据暴露和保护需要,对系统层和网络层进行分层。A04:不安全设计​90%的web应用程序都经历过错误配置测试。缺少一个体系的、可重复的应用程序安全配置过程(安全基线),系统将处于高风险中。A05:安全配置错误常见的安全配置脆弱点:应用程序栈的任何部分缺少适当的安全加固,或者云服务的权限配置错误;应用程序启用或安装了不必要的功能(例如:不必要的端口、服务、网页、账户或权限);默认账户和密码仍然可用且没有更改;错误处理机制向用户纰漏堆栈信息或其他大量错误信息;对于升级的系统,最新的安全特性被禁用或未安全配置;应用程序服务器、应用程序框架(如:Struts、Spring、ASP。net)、库文件、数据库等没有进行安全配置。A05:安全配置错误预防措施:一个可以快速且易于部署在另一个锁定环境的可重复的加固过程。开发、质量保证和生产环境都应该进行相同配置,并且在每个环境中使用不同的密码。这个过程应该是自动化的,以尽量减少安装一个新安全环境的消耗搭建最小化平台,该平台不包含任何不必要的功能、组件、文档和实例。移除或不安装不适用的功能和框架检查和修复安全配置来适应最新的安全说明、更新和补丁,并将作为更新管理过程的一部分一个能在组件和用户间提供有效的分离和安全性的分段应用程序架构。A05:安全配置错误​客户端和服务器使用了易受攻击的组件版本,就可能成为被攻击者攻击的目标。不安全的组件是我们测试和评估风险的已知问题,漏洞库、应用指纹等。A06:自带缺陷和过时的组件常见的过时组件脆弱点:不知道所使用的组件的版本不定期扫描漏洞,不关注所使用组件的官方公告没有以基于风险的方式及时修复或升级底层平台、框架和依赖项。这通常发生在修补是变更控制下的每月或每季度任务的环境中,使组织面临数天或数月不必要地暴露于固定漏洞的风险。软件开发人员不测试、升级或修补库的兼容性不保护组件的配置A06:自带缺陷和过时的组件预防措施:制定相应的计划,对整个软件生命周期进行监控、评审、升级或更改配置;制定补丁管理流程;移除不使用的依赖、不需要的功能、组件、文件和文档;仅从官方渠道安全的获取组件,并使用前面机制来降低组件被篡改或加入恶意漏洞的风险;监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,就考虑部署虚拟补丁来监控、检查或保护。A06:自带缺陷和过时的组件​之前称为无效的身份认证,通俗地说,该漏洞会导致攻击者使用用户的用户名和密码进行填充,从而入侵系统。常见的CWE包括:身份识别失效相关的漏洞。A07:身份识别和身份验证错误常见的身份识别脆弱点:允许像是攻击者已经拥有有效用户名称和密码列表的撞库自动化攻击;允许暴力或其他自动化攻击;允许预设、脆弱、常见的密码;使用脆弱或无效的认证资讯回复或忘记密码的流程;使用明码,被加密的或使用较脆弱杂凑法的密码。A07:身份识别和身份验证错误预防措施:实施弱密码的检查,如测试新设定或变更的密码是否存在于前10000个最差密码清单;在可能的情况下,实施多因素认证来防止自动化撞库攻击,暴力破解,以及遭窃认证咨询被重复利用的攻击;不要交付或部署任何预设的认证凭证,特别是管理者;限制或增加登入失败尝试的延迟。A07:身份识别和身份验证错误这是2021年的新类型,着重在软体更新,关键资料及持续性整合/部署(CI/CD)流程未经完整性验证之假设。同时在CVE/CVSS资料加权后之最高影响之一。值得注意的CWE包含CWE-502:不受信任资料之反序列化,CWE-829:包含来自不受信任控制领域之功能及CWE-494:下载未经完整性验证之程式码。A08:软件和数据完整性故障常见软件和数据完整性故障脆弱点:物件或资料经编码或序列化到一个对攻击者可读写之结构中将导致不安全的反序列化应用程式依赖来自于不受信任来源,典藏库及内容递送网路之外挂,函式库或模组。不安全的持续性整合/部署(CI/CD)流程则会造成潜在的未经授权存取,恶意程式码或系统破坏。现在许多应用程式拥有自动更新功能,但自动更新功能在缺乏充足完整性验证功能时就下载并安装更新到处于安全状态下的应用程式。攻击者能上传自制更新档案,更新档案将传播到所有已安装之应用程式并在这些应用程式上执行。A08:软件和数据完整性故障预防措施:使用数字签名或类似机制来验证软件或数据来自预期来源,且未被修改。确保库和依赖项目,如:npm或Maven,正在使用受信任的存储库。如果您的风险较高,请考虑托管一个经过审核的、内部已知合格的存储库。确保使用软件供应链安全工具(如:OWASPDependencyCheck或OWASPCycloneDX)来验证组件不包含已知漏洞。确保对代码和配置更改进行审核,以最大限度地减少恶意代码或配置引入软件管道的可能性。确保您的CI/CD管道具有适当的隔离、配置和访问控制,以确保代码在构建和部署过程中的完整性。A08:软件和数据完整性故障确保通过特定形式的完整性检查或数字签名来检测序列化数据是否存在篡改或重播,所有未签名或未加密的序列化数据不会发送到不受信任的客户端。A08:软件和数据完整性故障​2017年以前,“安全日志记录和监控失败”叫做“日志记录和监控不足”,此类型已经扩展包括很多类型的漏洞。它指的是在没有日志记录和监控,将无法检测到漏洞,此类故障会直接影响可见性、事件报警和取证。A09:安全日志和监控故障常见的安全日志和监控脆弱点:不记录可审计的事件,例如登录、失败登录和高价值交易;警告和错误不会生成、不充分或不清楚的日志消息;不会监控应用程序和API的日志是否存在可疑活动;日志仅存储在本地;适当的警报阈值和响

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论