安全测试前置实践2-安全渗透测试

ByteWaltz
• 阅读 473

作者:京东物流 陈维

一、引言

本文我们将以围绕系统安全质量提升为目标,讲述在功能安全测试&安全渗透测试上实践过程。

希望通过此篇文章,帮助大家更深入、透彻地了解安全测试。

二、安全渗透测试实践

安全前置扫描主要是识别白盒漏洞、黑盒漏洞问题,针对JSRC类问题,需要通过渗透测试进行漏洞发现。

1.安全测试类别

安全测试根据开展的阶段不同,测试对象不同,可以分为:功能安全测试、安全渗透测试

以下是两者定义、两者的区别:

两者定义功能安全测试在安全开发生命周期(SDL)的测试验证阶段,对应用系统进行检验,验证是否符合安全需求定义和产品质量标准的过程 。
安全渗透测试在功能安全测试完成后和产品正式上线发布前,以黑客视角对应用系统的可以被利用的安全漏洞进行发现和检查,以保护资产和重要数据的机密性、完整性和可用性。
功能安全测试安全渗透测试
两者区别出发点不同以发现系统所有可能的安全隐患为出发点以成功入侵系统,证明系统存在安全问题为出发点
视角不同站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并指导其进行修复渗透测试是以攻击者的角度来看待和思考问题
思考域不同以系统所具有的功能为思考域不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全风险与安全属性等

具体内容:

功能安全测试:

在功能测试阶段进行,由各业务线测试工程师进行,主要包括以下几个方面:

• 人员权限设置,是否满足需求文档中的说明:

1). 是否初始化好所有的角色;

2). 每个角色是否按最小权限进行功能配置;

•权限测试:水平越权、垂直越权、交叉越权;

•敏感信息处理是否符合规范;

1). 加密存储;

2). 显示屏蔽;

3). 脱敏导出;

4). 操作安全日志记录;

安全渗透测试:

逻辑安全测试登录逻辑安全测试主要测试登录验证逻辑是否可以绕过,是否存在验证码、是否可以撞库和暴力破解
修改密码逻辑安全测试针对修改密码逻辑顺序绕过问题测试,针对修改密码中短信、邮件发送逻辑和其中验证码逻辑做相关测试
验证码逻辑测试对验证码复杂度和验证码验证顺序逻辑、验证码验证重放攻击做安全测试
认证模块测试对手机短信、ca证书等强认证模块的绕过测试
客户端安全测试XSS测试用户输入畸形脚本及标签过滤转义
CSRF测试验证服务器是否添加会话TOKEN及验证referer
JSON挟持测试检测json格式变化及是否验证referer
XSIO测试测试是否限制图片postion为absolute
基础认证钓鱼测试检查是否可以修改img标签的src属性构造基础钓鱼页面
URL跳转测试检测用户能否修改应用的url参数使页面跳转到指定页面
Flash安全测试(客户端)测试Flash配置中allowscriptaccess、allowNetworking是否合理配置
cookie安全测试测试重点cookie是否使用了HttpOnly
CRLF测试检查用户输入在HTTP头中返回,并且没有过滤%0a%0d
服务端安全测试SQL注入测试在数据库交互操作的输入点,输入sql语句测试是否可以执行
上传漏洞测试在上传功能点,测试服务端是否对上传文件类型进行有效限制
信息泄露测试测试应用是否对系统报错、测试页面等进行有效处理,是否会泄露系统敏感信息
文件下载安全测试在文件下载或者读取功能上,测试功能设计是否合理,是否文件名称和路径用户可控
HTTP头测试HTTP头代理伪造、HTTP头PUT请求等畸形数据测试
远程代码执行测试提交特定的代码,测试代码是否会被应用执行
路径遍历测试访问各个路径,测试是否可以显示路径下文件信息
垂直权限测试检测普通用户是否能进入当前用户权限不能进入的功能,执行高权限操作
Flash安全测试(服务端)检查配置文件crossdomain.xml是否配置合理
水平权限测试测试用户是否只能操作自己当前用户的资源,是否能够操作其他相同权限用户的资源
SSRF漏洞测试相关服务是否存在对内部网络探测
框架安全测试struts框架安全测试针对struts2表达式代码执行漏洞进行测试
springMVC框架安全测试针对springMVC标签多个代码执行漏洞进行测试
openssl安全测试针对openssl“心脏出血”等漏洞进行测试

1.功能安全测试

(1)开展功能安全测试

Step1:确定项目是否需要安全评审

参考标准(来源安全部):

•公司重点战略项目

•外网新系统

•大量外部人员使用的内网系统(建议15人以上)

•含重大商业机密,特殊敏感性的系统;

•新采购的乙方项目或外包项目;

•上面几类系统在重大升级时。

Step2:依托SDL流程开展安全测试:

Step3:测试阶段的功能安全测试:

安全用例设计->测试执行->漏洞报告

Step4:上线前的提交渗透测试

(2)功能安全在项目中开展

SDL测试阶段开展功能安全测试:

①确定测试方案:功能安全测试、安全渗透测试、代码白盒扫描、应用黑盒扫描。

②安全用例设计

③功能安全用例: 基于功能点,从权限控制、越权类、数据类 维度进行用例设计。

SDL上线前提交安全渗透测试.

2.安全渗透测试

(1)开展渗透测试

Step1:使用测试工具:

•BurpSuite安装:

下载地址:https://portswigger.net/burp/communitydownload

Proxy SwitchyOmega(代理插件):代理插件下载地址

•浏览器代理配置:

安全测试前置实践2-安全渗透测试

•BurpSuite -Proxy监听配置:

安全测试前置实践2-安全渗透测试

•BurpSuite使用:

浏览器启用Proxy进行代理,通过BurpSuite进行数据抓取:

安全测试前置实践2-安全渗透测试

Proxy-Repeater进行请求包的重发:

Proxy-Intruder进行暴力爆破:

选定变量参数--参数化--批量重发请求--结果获取分析。

Step2:测试执行

Step3:整理报告

(2)常见漏洞测试

权限绕过

定义:指权限控制功能不严谨,系统用户可以访问或者操作未授权的功能或者数据。

水平越权场景:当系统存在多个相同权限的用户时,A用户越权访问或操作到B用户的资源。

垂直越权场景:当系统存在不同权限的用户时,低权限用户越权访问或操作到高权限用户的资源。

未授权访问:用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问的页面或者信息。

提交了大量的举证单信息:

SSRF(服务端请求伪造)

定义:由攻击者构造请求,由服务端发起请求的安全漏洞,SSRF攻击的目标是外网无法访问的内部系统(正因为请求是服务端发起的,所以服务端能请求到与自身相连而与外网隔离的内部系统)。

存储XSS漏洞

定义:跨站脚本攻击是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。允许恶意用户将代码注入网页,其他用户在浏览网页时会受到影响。恶意用户利用XSS代码攻击成功后,很可能获得很高的权限。

XSS分为:反射型,存储型,DOM型。

三、总结

本文主要讲述了功能安全测试&安全渗透测试 的定义、区别、开展方案,以及实践举例。

这两中安全测试既可在项目开展SDL流程的过程中开展,同时也可将安全渗透测试单独拿出来,针对组内外网系统,专项进行渗透测试。

通过这样的测试,可以降低遗漏到JSRC外部白帽问题数。

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
李志宽 李志宽
3年前
1分钟教你学会Metasploit 安装与部署
前言Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。(来自百度百科)总之是一款非常优秀的开源渗透测试框架。安装Met
如何将微前端项目部署在同一台服务器同一个端口下
本文我们将以围绕系统安全质量提升为目标,讲述在安全前置扫描上实践开展过程。希望通过此篇文章,帮助大家更深入、透彻地了解安全测试,能快速开展安全测试。
安全测试前置实践1-白盒&黑盒扫描
本文我们将以围绕系统安全质量提升为目标,讲述在安全前置扫描上实践开展过程。希望通过此篇文章,帮助大家更深入、透彻地了解安全测试,能快速开展安全测试。
安全测试前置实践2-安全渗透测试
本文我们将以围绕系统安全质量提升为目标,讲述在功能安全测试&安全渗透测试上实践过程。望通过此篇文章,帮助大家更深入、透彻地了解安全测试。
李志宽 李志宽
3年前
新手入门二进制安全和网络渗透,该选哪个比较好?
大家好我是周杰伦1方向选择最近,有很多粉丝都不约而同的问到了我一个问题:二进制安全和网络渗透,怎么选?今天这篇文章,就是尝试解答这个问题,希望对大家选择方向上有所帮助。首先先来理清楚,这两个方向分别是干嘛的。一般来说,二进制安全方向,主要是做逆向分析、漏洞挖掘与Exploit、内核安全、破解等工作。网络渗透主要是Web安全、内网渗透、漏洞扫描与利用、安全审
李志宽 李志宽
3年前
渗透测试:看“道德黑客”如何进行模拟攻击
前言:渗透测试是指安全专业人员在系统所有者的许可下,模拟对网络或计算机系统的攻击以评估其安全性的过程。不过,尽管是“模拟”攻击,但渗透测试员同样会把现实世界中攻击者的所有工具和技术都用到目标系统上,只是他们并不以发现的漏洞或获取的信息用来牟利,而是将结果上报给所有者,以帮助其提高系统安全性。由于渗透测试人员遵循与恶意黑客相同的攻击策略,所以他们有时候被称为“
安全测试常态化落地方案及日常推进机制 | 京东物流技术团队
数据安全法实施后,国家监管部门加强了对企业数据安全的监管力度。在这个大的背景下,为保障物流体系系统安全,提前规避安全风险,由测试组牵头制定安全测试流程规范并持续推进安全测试常态化。