近年来应用安全越来越受到企业的重视,安全测试的需求也随之激增。那么上手安全测试该了解哪些基础知识点呢?在这里我对常见的安全测试点进行了梳理,希望通过此文能够帮助大家普及安全测试中最常见的知识点!更希望此文能够起到抛砖引玉的作用,激发大家不断探索安全测试领域的热情!

sql注入

威胁解读:Sql注入就是通过利用一些查询语句的漏洞,将sql语句传递到服务器解析并执行的一种攻击手段。当不可信的数据作为命令或查询语句的一部分被发送给解释器的时候,会发生注入漏洞,包括SQL、NoSQL、OS以及LDAP注入等。攻击者发送的恶意数据可能会诱使解释器执行计划外的命令,或在没有适当授权的情况下访问数据。

XSS

威胁解读:XSS跨站脚本攻击(Cross Site Scripting)是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。如果应用程序在未经适当验证或转义的情况下,能够在新网页中包含不受信任的数据,或是使用可以创建HTML或者JavaScript的浏览器API更新包含用户提供的数据的现有网页,就会出现XSS漏洞。XSS允许攻击者在受害者的浏览器中执行脚本,这些脚本可以劫持用户会话、破坏网站或将用户重定向到恶意网站中。

CSRF

威胁解读:CSRF跨站点请求伪造(Cross Site Request Forgery),大家可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等等,但这一切你都是不知道的!

XXE

威胁解读:简单来说,XXE(XML External Entity)就是XML外部实体注入。当允许引用外部实体时,通过构造恶意内容,就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。

中断身份认证(关键值可预测)

威胁解读:在某些关键的安全环境中使用可预测的随机数(比如,当这个值被作为csrf token或者重置密码的token等等)可能会导致漏洞,从而允许攻击者破坏密码、密钥或是会话令牌,或者利用其他的应用漏洞来暂时或永久地获取用户身份信息。

中断访问控制(越权)

威胁解读:越权漏洞可以分为水平、垂直越权两种,程序在处理用户请求时未对用户的权限进行校验,使用户可访问、操作其他相同角色用户的数据,这种情况是水平越权;如果低权限用户可访问、操作高权限用户的数据,这种情况为垂直越权。

敏感数据泄露

威胁解读:许多web应用程序和API不能正确的保护敏感数据,如金融、医疗保健和个人身份信息等。攻击者可能会窃取或篡改这些弱保护的数据,从而进行信用卡欺诈、身份盗窃或其他犯罪行为。在缺少额外保护(例如,在存放和传输过程中加密,且在与浏览器进行交换时需要特别谨慎)的情况下,敏感数据可能会受到损害。

安全配置错误

威胁解读:安全配置错误是最常见的问题。这通常是由不安全的默认配置,不完整或ad hoc配置,开放云存储,错误配置的HTTP标头,以及包含敏感信息的详细错误信息造成的。所有的操作系统、框架、库、应用程序都需要进行安全配置外,还必须要及时进行系统更新和升级。

不安全的反序列化

威胁解读:不安全的反序列化漏洞通常会导致远程代码执行问题。即使反序列化错误不会导致远程代码执行,也可以被用来执行攻击,包括重放攻击、注入攻击以及权限提升攻击等。

不足的日志记录和监控

威胁解读:不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。

使用含有已知漏洞的组件

威胁解读:组件(如库、框架和其他软件模块)是以与应用程序相同的权限运行的。如果存在漏洞的组件被利用,这种攻击可能会导致严重的数据丢失或服务器接管危机。使用已知漏洞组件的应用程序和API可能会破坏应用程序的防御系统,从而启动各种形式的攻击,造成更为严重的影响。

代码中创建DB的密码时采用了写死的密码

威胁解读:密码不应该留在源码里面,在企业里面源码会被广泛的分享,有些部分甚至会被开源出来,为了更安全的管理,密码和密钥应该被单独的存储在配置文件中

创建数据库连接时必须为数据库设置密码

威胁解读:创建数据库连接时没有为数据库设置密码,这会使数据库没有必要的保护

相对路径遍历漏洞

威胁解读:使用者可以通过浏览器的url地址或者参数变量可以读取除了web目录下的其他的文件。

绝对路径遍历漏洞

威胁解读:绝对路径遍历指使用用户输入的数据作为全路径,直接应用于文件操作。

总结

本文仅对常见的安全问题概念进行了描述,接下来大家可以利用网络资源自己深入地研究这些问题的修复方案!相信在不断深入研究、探索的过程中,一定会对安全测试有更深的领悟!原创不易,如果文章帮到了你,欢迎转发,让更多的朋友受益!