Web应用安全测试-认证功能缺陷

Web应用安全测试-认证功能缺陷

存在空口令

漏洞描述:认证登录环节允许空口令

测试方法:

找到网站登录页面,尝试输入用用户名,密码为空进行登录。

风险分析:攻击者可利用该漏洞登录网站后台,操作敏感数据,甚至上传webshell,从而控制服务器。

风险等级:

高危:存在空口令

修复方案:判断输入密码是否为空,禁止空口令登录。

注意事项:暂无

认证绕过


漏洞描述:能够绕过应用认证,直接登录系统。

测试方法:绕过认证主要有几下几种途径:

  1. 网络嗅探。通过网络嗅探工具探测局域网中传输的明文用户名和密码。有些应用程序采用GET方式发送登录请求,可能导致GET的URL请求内容被缓存在代理服务器活着Web服务器端,导致用户名和密码泄漏。
  2. 默认或可猜测的用户账号。大多数开源软件或商业软件提供的基于网络配置和管理的接口,通常都会有一些默认的用户名和密码。例如,一般默认的用户名是:admin,administrator、root、system、guest等,而默认的秘密吗也根据硬件和软件的不同而不同,可尝试一下这些密码:password、admin、guest、12345等。
  3. 直接访问内部URL。使用Spider工具找到含有admin、manager、administrator、login等词语的路径,尝试使用普通的登录用户访问这些URL。从而获得管理员的权限。
  4. 修改参数绕过认证。应用程序可能会会使用一个参数或一个隐藏的域表示一个用户是否经过验证了,通过修改这些参数,从而被认为是已经认证过的用户。例如:http://www.xxx.xom/userinfo.jsp?authenticated=no,通过修改authenticated参数为yes,http://www.xxx.xom/userinfo.jsp?authenticated=yes,然后就可以通过认证,直接访问内部页面。
  5. 可猜测的SessionID。利用规律,猜测到一个有效的SessionID,然后通过修改请求中的SessionID为一个预测到的有效的SessionID,从而冒充会话的真正拥有着,绕过认证环节。
  6. 注入问题。利用万能密码登录系统,绕过认证环节。
  7. CSRF。利用CSRF漏洞在用户不知情的情况下,利用用户的会话进行敏感操作,从而绕过认证。

风险分析:如果应用程序在认证上没有做好,可以导致恶意用户或者攻击者绕过认证,访问内部资源,这类漏洞通过防火墙和入侵检测系统很难预防。

风险等级:

:能够登录进入应用系统,且可以进行相关操作

:能够登录访问进入应用系统,但无法进行相关操作

修复方案:可从以下几个方面预防认证绕过:

  1. 对于每一个访问的URL都首先检查是否已经登录(不需要认证的URL除外,例如,帮助页面、免费下载页面等),如果没有登录,则跳转到登录页面。对于已经登录的用户,在退出的时候或者在会话很长时间处于idle状态的时候,需要保证原来的会话被正确的销毁并且不会再被重利用。
  2. 规定密码强度要求,防止密码被猜测到。
  3. 对于用户是否已经认证,禁止依赖客户端传过来的参数标识,而应将是否登录的标识保存在服务器端的会话中,当接收到该会话的请求时,从会话保存的状态判断是否登录。
  4. 对于SessionID一定要使用安全的随机数生成算法,使得SessionID不可预测。
  5. 对于暴力破解攻击,建议在尝试3次左右失败之后,使用图形验证码。

注意事项:暂无

Oauth认证缺陷

漏洞描述:OAuth是一个在不提供用户名和密码的情况下,授权第三方应用访问Web资源的安全协议。Oauth认证不完全,可越权登录他人账户。

测试方法:OAuth认证缺陷具体测试场景如下:

  1. 开始认证过程,从提供商那里得到回调,获取code,但暂不访问带有code的URL,如:http://www.xxx.com/connect/facebook/?code=AQCOtAVov1Cu316rpqPfs-8nDb-jJEiF7aex9n05e2dq3oiXlDwubVoC8VEGNq10rSkyyFb3wKbtZh6xpgG59FsAMMSjIAr613Ly1usZ47jPqADzbDyVuotFaRiQux3g6Ut84nmAf9j-KEvsX0bEPH_aCekLNJ1QAnjpls0SL9ZSK-yw1wPQWQsBhbfMPNJ_LqI
  2. 然后把它放在<img src=”URL”>或<iframe>标签下保存起来。
  3. 让用户(某一特定的用户或者target.com上随机的用户)发送HTTP请求到你的callback
    URL。例如,通过钓鱼等手段诱骗用户访问example.com/somepage.html,其中包含<iframe src=URL>,且用户在发送HTTP请求时处于登录状态。
  4. 现在,按下“用facebook账号登录”即可以登录用户账户。

风险分析:攻击者结合OAuth认证缺陷和钓鱼攻击可定向的登录某个用户的账户。

风险等级:

高危:可导致用户资源任意访问或任意账户登录或用户密码获取。

修复方案:各应用除了验证access token之外,还必须辅助其他参数进行判断(比如自行加入其它认证参数进行双重认证);另一种方法则是验证access token背后所属的应用app key的唯一性和对应性(无论是自行验证还是开放平台通过签名等形式帮助验证),确保该access token是该应用的。

注意事项:暂无

IP地址伪造

漏洞描述:通过伪造IP地址能够绕过应用IP地址限制,访问和执行系统相关功能。

测试方法:使用代理软件拦截请求包,修改HTTP头中的Host字段,伪造IP地址绕过限制。

风险分析:攻击者可利用该漏洞访问受限系统,造成应用系统数据泄漏。

风险等级:

高危:访问重要系统/执行重要功能

中危:访问非重要系统/执行非重要的功能

修复方案:

  1. 使用getServerName()代替getHeader(“Host”);
  2. 在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法Host header,或者在Apache和Nginx里指定一个ServerName名单;同时,Apache开启UseCanonicalName选项。

注意事项:暂无

多点认证缺陷

漏洞描述:系统允许多点认证

测试方法:

  1. 在浏览器A中使用测试账号登录系统;
  2. 同时在浏览器B中使用同一个账号登录系统;
  3. 若在多个浏览器中均可登录同一各账号,说明存在多点认证缺陷。

风险分析:攻击者在获取到其他用户的账号密码后,可利用该缺陷在用户已登录且未知的情况下进行登录,操作用户账户。

风险等级:

高危:多点登录架构可被绕过

中危:核心系统允许多点登录

修复方案:建议在不影响业务的前提下,关键业务系统应禁止多点认证。当同一账号在其他地方登录时已登录的账号应退出会话,并提示用户账户在其他地区登录,可能存在账号被盗风险。

注意事项:暂无

会话固定

漏洞描述:在用户进入登录页面,但还未登录时,就已经产生了一个session,用户输入信息,登录以后,session的id不会改变,也就是说没有建立新session,原来的session也没有被销毁)。攻击者事先访问系统并建立一个会话,诱使受害者使用此会话登录系统,然后攻击者再使用该会话访问系统即可登录受害者的账户。会话固定攻击的原理及流程如下图所示:

  1. 攻击者Bob匿名访问www.buybook.com。
  2. 服务器与Bob建立了一个会话,比如sessionid为1234567。
  3. Bob构造了一个URL:http://www.buybook.com/login.jsp?sessionid=1234567,发给了受害者Alice。
  4. Alice直接打开此链接,输入自己的用户名和密码登录系统。
  5. 此时Bob再次访问http://www.buybook.com/viewprofile.jsp?sessionid=1234567,即可进入Alice的账户。

测试方法:

1、  打开网站登录页面。

2、  登录前通过软件工具抓取到的cookie信息值与在登录后抓取到的cookie进行对比,如果其值一样,则可判断其会话的cookies或者sessions未进行更新。

风险分析:攻击者可能会窃取或操纵客户会话和cookie,用于模仿合法用户,从而以该用户身份查看或变更用户记录以及执行事务。

风险等级:

中危:会话可由攻击者建立后发给受害者使用该会话登录系统,然后攻击者利用该会话即可登录受害者账户。

修复方案:在用户提供的认证信息(例如用户名和密码)、相应的权限级别发生变化时,服务器端应重新生成SessionID,并强制失效之前的会话,JAVA示例代码如下:

request.getSession().invalidate();//清空session

Cookie cookie = request.getCookies()[0];//获取cookie

cookie.setMaxAge(0);//让cookie过期 ;

注意:这段代码需要在页面的最后部分加上才可以,否则将报错。

注意事项:暂无

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/705585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

qmt量化交易策略小白学习笔记第30期【qmt编程之获取行业概念数据--如何获取板块分类信息数据以及板块成分股数据】

qmt编程之获取行业概念数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取行业概念数…

VS2022+Qt雕刻机单片机马达串口上位机控制系统

程序示例精选 VS2022Qt雕刻机单片机马达串口上位机控制系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《VS2022Qt雕刻机单片机马达串口上位机控制系统》编写代码&#xff0c;代码整洁&a…

另辟蹊径的终端防病毒

在数字时代的浪潮中&#xff0c;网络安全问题愈发凸显&#xff0c;防病毒成为了保护信息安全的重要一环。而白名单作为一种有效的安全策略&#xff0c;在防病毒方面发挥着不可或缺的作用。 首先&#xff0c;我们需要明确白名单的概念。白名单是一种管理和安全实践&#xff0c;用…

【代码随想录】【算法训练营】【第30天 1】 [322]重新安排行程 [51]N皇后

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 30&#xff0c;周四&#xff0c;好难&#xff0c;会不了一点~ 题目详情 [322] 重新安排行程 题目描述 322 重新安排行程 解题思路 前提&#xff1a;…… 思路&#xff1a;回溯。 重点&…

ABB控制主板3BHE024855R0101 UF C921 A101

控制板也是一种电路板&#xff0c;其运用的范围虽不如电路板来的宽泛&#xff0c;但却比普通的电路板来的智能、自动化。简单的说&#xff0c;能起到控制作用的电路板&#xff0c;才可称为控制板。大到厂家的自动化生产设备&#xff0c;小到孩童用的玩具遥控汽车&#xff0c;内…

【OpenCV】opencv-4.9.0源码编译(二)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 公众号&#xff1a;VTK忠粉 前言 本文分享OpenCV源码编译时所遇到的问题&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一…

一文教会你静态住宅代理IP的优势和选择技巧,跨境小白收好这份指南!

一、什么是静态住宅代理IP&#xff1f; 静态住宅代理IP是指分配给个人住宅网络的IP地址&#xff0c;这些IP地址在长时间内保持不变。它们是从互联网服务提供商&#xff08;ISP&#xff09;获取的&#xff0c;因此拥有更高的可信度和较低的被封禁风险。静态住宅代理IP因其独特的…

基于 Python 解析 XML 文件并将数据存储到 MongoDB 数据库

1. 问题背景 在软件开发中&#xff0c;我们经常需要处理各种格式的数据。XML 是一种常用的数据交换格式&#xff0c;它可以存储和传输结构化数据。很多网站会提供 XML 格式的数据接口&#xff0c;以便其他系统可以方便地获取数据。 我们有这样一个需求&#xff1a;我们需要从…

Python界面编辑器Tkinter布局助手 使用体验

一、发现 我今天在网上搜关于Python Tkinter方面的信息时&#xff0c;发现了Python界面编辑器 Tkinter布局助手 的使用说明。 https://blog.csdn.net/weixin_52777652/article/details/135291731?spm1001.2014.3001.5506 这个编辑器是个开源的项目&#xff0c;个人用户可以…

Ecahrts横向柱状图自动滚动

1.定义一个定时器标识 let timer: NodeJS.Timer; // 定时器 2.定义展示的数据的条数 const dataZoomEndValue 5; // 数据窗口范围的结束数值(一次性展示几个) 3.设置datazoom的相关参数 dataZoom: [{show: false, // 是否显示滑动条xAxisIndex: 0, // 表示从X轴的零刻度线…

香橙派 AIpro 评测与使用心得

引言 香橙派 AIpro&#xff08;OrangePi AIpro&#xff09;是一款尺寸小巧却功能强大的AI边缘设备&#xff0c;其仅有107*68mm的超小尺寸使得它在各种场景下都能轻松部署。它支持两种流行的操作系统&#xff0c;包括Ubuntu和openEuler&#xff0c;为用户提供了更多的选择和灵活…

Windows同一文件夹下支持大小写同名文件

举例&#xff1a;同一文件目录下需要存在A.java, a.java, Windows是不支持的&#xff0c;这时候需要建一个Linux子系统的文件夹 创建教程 1、在启用或关闭Windows功能下面找到 适用于Linux系统的Windows子系统 2、cmd 执行命令 fsutil file SetCaseSensitiveInfo 文件夹路径 …

新注册与新核准有什么区别?在哪可以找到新注册新核准的企业名单?

新注册&#xff1a;指的是公司刚刚完成工商注册登记&#xff0c;成为法律意义的经营实体。 新核准&#xff1a;指的是企业通过证券监管机构的审核&#xff0c;获得公开发行股票或债券的资格。 注册主要关注企业的基本资质和合规性&#xff0c;而核准是已经注册的公司进行财务…

【React】如何使用npm run start命令运行两个服务

我们开发前端项目时&#xff0c;有时候需要本地 mock 数据&#xff0c;这样就需要启动两个服务&#xff0c;一个是接口服务&#xff0c;一个是前端项目。可以安装一个插件来帮助我们通过一个命令启动两个服务。 方法一 添加& npm run server 注意&#xff1a;Windows系统…

人脸匹配——OpenCV

人脸匹配 导入所需的库加载dlib的人脸识别模型和面部检测器读取图片并转换为灰度图比较两张人脸选择图片并显示结果比较图片创建GUI界面运行GUI主循环运行显示全部代码 导入所需的库 cv2&#xff1a;OpenCV库&#xff0c;用于图像处理。 dlib&#xff1a;一个机器学习库&#x…

用Python绘制yolo训练结果比较图-论文需要

代码内容来自于网络用博客记录 利用训练生成的result.csv中数据&#xff0c;形成多模型的比较图。 代码中演示的是map50、map50-95、losss的比较图 import matplotlib.pyplot as plt import pandas as pd import numpy as npif __name__ __main__:# 列出待获取数据内容的…

webstorm自定义vue模板

<!--* Description: ${COMPONENT_NAME} 页面* Author: * Date: ${DATE} --> <template><div>${COMPONENT_NAME} </div> </template><script> export default {name: "${COMPONENT_NAME}",components: {},data() {return {};},co…

【数据结构】单链表(C语言)

在数据结构和算法中&#xff0c;链表是一种常见的数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含数据和指向下一个节点的指针。在C语言中&#xff0c;我们可以使用指针来实现单向链表。下面将详细讲述如何利用C语言实现单向链表。 1.单链表的概念和结构 概…

Yolo-World训练过程中使用wandb进行可视化

训练过程可视化有两种方式&#xff1a;wandb和tensorboard&#xff0c;这里我采用的是wandb&#xff0c;想要在训练过程中调用wandb只需要在要训练的配置文件&#xff08;如yolo_world_v2_l_vlpan_bn_sgd_1e-3_40e_8gpus_finetune_coco.py&#xff09;中加上一行代码即可&#…

美业门店管理系统Java源码分享-【库存管理】的功能和作用

美业收银系统在美容行业中的作用和重要性体现在提高管理效率、提升客户满意度、降低成本、促进业务增长等方面。它为连锁美业提供了一个全面的管理工具&#xff0c;能够更好地应对市场挑战&#xff0c;提升竞争力。 美业系统中的【库存管理】在整个美容行业中起着非常重要的作…