web端常见功能可能存在的安全问题

1、注册功能

(1)注册请求是否安全传输

(2)注册时密码复杂度是否后台校验

(3)激活链接测试

(4)重复注册

(5)批量注册问题

2、登录功能

(1)登录请求是否安全传输

(2)会话固定

Session fixation attack(会话固定攻击)是利用服务器的session不变机制,借他人之手获得认证和授权,然后冒充他人。

(3)关键cookie是否添加HTTPONLY属性

如果Cookie设置了HttpOnly标志,可以在发生XSS时避免JavaScript读取Cookie。
但很多Cookie需要给前端JS使用。所以这里只需要关注关键Cookie,即唯一标识用户及登录状态的会话标识需要添加这个属性。

(4)登录请求错误次数限制

(5)“记住我”功能

勾选“记住我”后,Cookie中记录了用户名和密码信息

(6)本地存储敏感信息

3、验证码功能

(1)验证码的一次性

(2)验证码绕过

如果这个接口没有限制策略,就会被人恶意利用

(3)短信验证码轰炸

4、上传功能

(1)绕过文件上传检查功能

(2)上传文件大小和次数限制

5、忘记密码功能

(1)通过手机号找回

不过由于程序设计不合理,导致可以绕过短信验证码,从而修改别人的密码。(使用burpsuite抓包,修改响应值true)

(2)通过邮箱找回

6、密码安全性要求

(1)密码复杂度要求

(2)密码保存要求

7、越权操作

(1)横向越权测试

测试所有接口越权情况,不同用户之间session共享,可以非法操作对方的数据。

(2)纵向越权测试

测试所有接口越权情况,很多应用简单的通过前端判断,或者低权限角色看不到对应的菜单,但并未在后台去做当前登录用户是否有权限。

8、SQL注入测试

SQL注入攻击的基本原理是通过构建特殊的输入参数,迫使后台数据库执行额外的SQL语句,从而达到获取数据库数据的目的。
这些输入参数往往包含恶意的SQL注入语句,后台处理程序没有对这些参数进行过滤,且所使用的数据库查询手段为拼接方式,进而导致敏感数据外泄。
在动态构造SQL语句的过程中,除了特殊字符处理不当引起的SQL注入之外,错误处理不当也会为Web站点带来很多安全隐患。
最常见的问题就是将详细的内部错误信息显示给攻击者。这些细节会为攻击者提供与网站潜在缺陷相关的重要线索。
在SQL注入的过程中,如果Web服务器关闭了错误回显,那么是不是就安全了呢?答案显然是否定的,攻击者仍然可以通过 "盲注"技巧测试SQL命令是否注入成功。
所谓"盲注"就是在服务器没有错误回显时完成的注入方式,攻击者必须找到一个方法来验证注入的SQL语句是否执行。
"盲注"主要分为两种类型:基于时间的盲注和布尔盲注。

测试方法(黑盒):sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,

测试方法(白盒):如果项目的数据库持久层框架是mybatis,并且他的sqlmap中编写方式都是使用#{xxx}方式,而非使用${xxx}方式,就不存在SQl注入问题。
注:sqlMap中尽量不要使用$;$使用的是Statement(拼接字符串),会出现注入问题。#使用的是PreparedStatement(类似于预编译),将转义交给了数据库,不会出现注入问题;前者容易出现SQL注入之类的安全问题,所以mybatis推荐使用#。

9、CSRF测试

CSRF(Cross-site requestforgery),中文名称:跨站请求伪造。用户C在为退出A的情况下,浏览B,B使用C的session非法访问A。

检查:
Ø  是否有防御CSRF的随机数。验证码、csrf_token等都是。 有则 (通过)
Ø  是否验证referer。有则(通过)
Ø  请求的参数均可推测,无CSRF防御机制。(不通过)
测试中,需要对所有写接口检查,可以采用如下方式,记录接口,标记是否已检查。

 

网友评论

3条评论

发表

网友评论

3条评论

发表

最新评论

乌蒙小码农 5 0

哈哈哈哈哈~~~~

08月10日 14:46

璠西坡 2 0

实在是神奇

08月10日 10:58

08月04日 01:29

推荐文章

合集

读书笔记

合集

共14篇

总阅读

165675

总评论

29

总获赞

138

总分享

4

彩龙

Copyright © 2008-2022 彩龙社区 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP