安全测试学习(一)常见安全漏洞

最近在学安全测试,于是就把前段时间的笔记拿来整理一下,巩固下基础。以下是常见的安全漏洞。

一、登录逻辑中的漏洞

  • 弱密码
    检查网站是否可以类似“123456”这样的弱密码,如果存在弱密码漏洞,则可以收集一些常见弱密码,通过暴力破解的方式登录系统。

  • 登录信息模糊提示
    主要体现在登录失败时应提示“用户名或密码错误”,而不是精确提示“用户名错误”“密码错误”

  • 登录失败次数限制
    登录失败后需要自动刷新验证码;达到一定失败次数后需要限制登录(防止爆破操作)

  • session值检查
    登入登出前后,session值应该发生变化

二、验证码安全

  • 登录失败后验证码应该自动刷新
  • 检查超过有效时限和已经使用过的验证码是否过期
  • 使用图形验证码
  • 验证码和用户名及密码放到一起校验。如果先校验验证码,可以通过修改请求中的flag等标识欺骗服务器
  • 验证码和用户名及密码均错误时,应该仅提示“验证码错误”

三、目录遍历

  • 测试方式
    在url后输入 …/…/…/…/,查看是否可以进入配置文件目录,如果可以,则存在安全漏洞

四、XSS跨站脚本攻击漏洞

  • 漏洞原理
    -攻击者往web页面中插入恶意的script代码,当用户浏览该页面时,插入的script代码会被执行,从而达到了攻击目的。

  • 分类
    1)存储型XSS
    指修改系统提交的文本框中的数据,并将其保存到数据库。当页面再次加载时,页面或js会解析这份数据,执行脚本。

    2)反射型XSS
    指修改GET请求中的参数,把正常的参数改为带有攻击脚本的参数,页面在处理请求后可能会对参数进行解析,从而执行脚本。

  • 举例
    在输入框中输入
    <script>alert(1)</script>
    提交请求,页面再次加载这个值时,如果有弹框,说明存在XSS漏洞

五、sql注入

  • 漏洞原理
    将sql命令插入到web表单中进行提交,达到欺骗服务器执行恶意sql的目的
  • 举例
    有一个查询用户的功能,我只有查询部分用户的权限,但是我想查询其它用户的信息。那么这个时候可以构造一个sql语句到达查询所有用户信息的目的。我们可以猜测正常查询的sql语句为
    select * from table where username='xxx'
    现在可以构造一个这样的sql
    select * from table where username='xxx' or '1'='1'
    ‘1’=‘1’得到的值是true,所以这条sql语句其实执行的是查询全部操作,那么应该怎么输入呢?将原来的输入 xxx 替换为 xxx’ or ‘1’='1,这个语句就算构造成功了。

六、文件上传漏洞

  • 漏洞描述
    有些系统对上传的文件的后缀名没有校验,或者服务器存在执行文件中代码的漏洞,攻击者可以上传shell脚本或带有shell脚本的图片,使脚本被服务器执行,达到攻击目的

七、文件下载漏洞

  • 漏洞描述
    查看文件下载的链接,如果链接中直接显示了文件名,如 http://xxx/xxx/filename=abc,可以修改文件名 abc 为其它配置文件,如…/…/WEB-INF/web.xml

八、敏感信息泄露

  • 测试方式
    按F12打开控制台,检查页面源代码及注释中是否有账号密码、运维信息等敏感信息

九、拒绝服务漏洞

  • 漏洞原理
    由于代码设计的原因,服务器对数据或逻辑的处理需要花费较多的资源和时间,导致服务时间延长或服务不可用。
  • 测试方法
    利用长密码进行攻击,在密码输入框中超长密码(如1000000个字符),如果造成了服务不可用,说明存在漏洞

十、Cookie中包含敏感信息

  • 测试方法
    按F12查看Cookie,检查里面是否包含敏感信息

十一、CSRF跨站请求伪造

  • 漏洞原理
    挟持已登录的用户在web应用程序上执行非本意的操作

  • 测试方式
    拦截请求,修改请求中的referer值并释放,如果可以正常访问系统,说明存在CSRF漏洞

十二、Http响应分割攻击

  • 漏洞原理
    利用回车(%0d)和换行符(%0a),改变HTTP请求的结构

十三、水平越权

  • 漏洞原理
    通过拦截请求,修改id等操作,访问其它用户的数据

十四、垂直越权

  • 漏洞原理
    通过拦截请求,修改id等操作,访问当前用户没有权限访问的地址

十五、JWT Token信息
JWT生成的Token由三部分组成:header.payload.signature。
通过修改payload中的信息,判断程序是否对Token信息存在校验

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值