80的测试工程师,都会遇到的3种最常见

越权漏洞

破坏访问控制(BAC)是Web应用程序中的一个常见漏洞。由于其范围广、危害大,被OWASP列为Web应用十大安全隐患之二。

所谓越权,顾名思义,就是一种超出当前用户权限范围的漏洞,甚至是为了不同用户或者获得更高的系统权限。

具体来说,在应用中,服务器在处理用户发起的请求时,并不判断用户的操作权限,导致不法分子利用此漏洞篡改用户信息,达到增删查的目的。

这种漏洞可以由Fiddler手动测试,也可以在当前测试中由Appscan自动测试。一般来说,越权漏洞可以分为两类,即横向越权和纵向越权。

水平越权

横向越权是指具有相同角色权限的用户可以非法操作对方的数据。

比如我们有一个用户A和一个用户B,可以代表Fiddler捕获数据包,在登录时拦截用户A的WEB请求消息,然后分析其Cookie、Uid等信息,从而通过将相关值改为用户B的信息来发现这类漏洞。

垂直越权

垂直越权是指不同角色和权限的用户可以非法操作对方的数据。

这种漏洞的测试原理超越了同级权威。不同的是,被篡改的目标用户B可能是具有较高权限的用户,比如系统管理员,从而获得不同级别的权限。

XSS跨站脚本漏洞

跨站脚本攻击XSS(CrossSiteScripting)是指恶意攻击者向Web页面里插入恶意Script代码,当用户浏览该页时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS漏洞可以理解为借彼之手、诱其上钩。该漏洞一般通过PHP的输出函数将Javascript代码输出到HTML中,通过用户本地浏览器执行,所以测试XSS漏洞关键就是寻找未过滤的输出函数。

在一般的研发实践中,通过查找常用函数如echo、print、var等来定位目标。具体XSS可以分为三类,分别为反射型XSS、存储型XSS、DOM型XSS。

反射型XSS

该类漏洞在实际操作中较为常见,攻击者通过使用带有恶意脚本的链接接触用户,由用户触发XSS来实现攻击。

主要步骤拆分:

①用户收到带有恶意脚本的链接;

②通过访问该目标抵达目标服务器;

③HTML展示预期内容同时将未过滤的用户输入记入XSS;

④该部分XSS恶意代码向恶意服务器发起请求;

⑤攻击者从恶意服务器获取用户原始输入。

存储型XSS

该类漏洞相对反射更加隐蔽,攻击者绕开用户层预先在目标数据库铺底恶意脚本,实现用户被动触发进而实现信息窃取和后续攻击。

主要步骤拆分:

①攻击者在目标数据库预埋恶意XSS脚本;

②用户正常操作访问服务器并触发该部分XSS;

③HTML展示预期内容同时将未过滤的用户输入记入XSS;

④该部分XSS恶意代码向恶意服务器发起请求;

⑤攻击者从恶意服务器获取用户原始输入。

DOM型XSS

该漏洞是基于文档对象模型(DocumentObjeetModel,DOM)的一种漏洞,通过利用当前URL将返回的HTML静态文本写入DOM中的document当做JavaScrip代码执行,从而导致敏感信息泄露。

主要步骤拆分:

①类比反射型XSS攻击者给用户发送目标URL;

②用户访问目标服务器;

③服务器返回包含JavaScrip的HTML展示给用户;

④该部分XSS利用①中的URL返回给攻击者;

⑤攻击者获取敏感信息对目标发起攻击。

文件上传漏洞

文件上传漏洞是指文件上传功能模块或接口,未能检查文件类型、附件大小等信息,从而导致攻击者通过文件上传接口上传恶意文件。

如果上传的文件类型和访问权限不受控制,攻击者可以利用此漏洞上传恶意脚本或后门程序,获得服务器权限并控制服务器。

同时也会消耗服务器资源,使其拒绝服务进而瘫痪。

测试中文件上传漏洞的注意要点:

1.注意上传的文件大小是否受限,对比Post支持的大小,判断上传大文件是否会导致内存和磁盘耗尽从而拒绝服务。

2.注意上传的文件类型是否受控。通过修改文件名最后一个点号后的后缀(包括点号),上传文件确定是否可以绕过文件类型和扩展名的验证判断。

3.注意上传文件存储路径的安全性,上传目录解析、读取、下载等权限控制。

以上三种类型是渗透测试中常见的漏洞,也是研发过程中容易被忽视的地方。

锋利的工具很管用。在漏洞测试过程中,通过应用Fiddler、Wireshark、Jmeter、Burpsuite等工具,可以掌握拦截、数据包捕获、断点续传、篡改、重请求等操作。在操作层面,结合研发过程中的一般实践,判断程序结构和目标功能。

工具、知识、经验的不断积累和组合应用,会帮助你更高效地进行渗透测试,找出各种漏洞。




转载请注明:http://www.aierlanlan.com/rzdk/1852.html