java解决撞库的问题_Web安全开发之验证码设计不当引发的撞库问题

article/2025/9/27 6:52:13

感谢某电商平台安全工程师feiyu跟我一起讨论这个漏洞的修复。以往在安全测试的过程中后台经常存在验证码不失效果造成的撞库问题,甚至在一些银行或者电商的登录与查存页面同样存在这个问题,一旦造成撞库无论对用户账号的安全性还是网站的负载都是巨大的挑战。其实造成问题的原因并不复杂,主要是研发在开发过程中缺少对安全的认知,造成的疏忽。

今天心血来潮自己写了个验证码来模拟下出现的问题,首先我们从前端页面开始分析:

验证码图片:captcha.php?r= width="100" height="30" /> 换一个

输入内容:

可以看出验证码是通过captacha.php来生成。

我们节选captacha.php的关键部分来分析:

$_SESSION['authcode']=$captch_code;

我们把生成的captch_code以文字形式存在一个临时的session中。

并在前端表单提交后,在form.php中验证POST的验证码是否与Session中的值一致。

if(isset($_REQUEST['autocode'])){

session_start();

if(strtolower($_POST['autocode']) == $_SESSION['authcode']){

echo 'right';

}else{

echo'wrong';

}

exit();

}

?>

万事俱备,似乎一切都很完美,一个验证码(机器自动化识别不在本次讨论范围内,TT)。

34bf00949faaeef2ea9a1e0528fec7b7.png

输入正确返回right:

fa05ab01b860b2af81880e5179a11a82.png

输入错误范围wrong:

8526b2f56b40a55fd1907919f597365a.png

好了,漏洞来了。我们放到burpsuite中愉快的玩耍一下,在提交验证码的过程中抓包、截断、重放一下数据包:

a0ec8b2173980be5ef0fb379c12c4fb7.gif

无限重放验证码它就是不失效。

怎么修,这问题愁死我了,想了好久,终于有了点眉目。

其实很早以前我们写测试报告都说应该让存有验证码Session在合适的时间失效,问题是如何实现。考虑了一下,可以通过以下方法处理:

if(isset($_REQUEST['autocode'])){

session_start();

if($_SESSION['authcode'] =='NULL'){

\\通过验证码是否为空检测验证码是否被提交过

echo'Invalid expired';

}elseif(strtolower($_POST['autocode']) == $_SESSION['authcode']){

echo 'right';

}else{

echo'wrong';

}

$_SESSION['authcode']='NULL'; \\发起一次form提交后把session值置空

exit();

}

?>

效果如下:

25dd03f2113ea294448041e8d78fd5cf.gif

如有不正确,欢迎大家指正。谢谢


http://chatgpt.dhexx.cn/article/fRk0gsaN.shtml

相关文章

什么是撞库攻击,如何预防撞库攻击?

1. 撞库的原理和危害 “撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储…

撞库详解

撞库攻击是如今最常见的攻击,给企业带来巨大威胁。撞库带来的威胁往往不是直接的,但是由此造成的信息泄露以及进一步的渗透与攻击会更为严重。Akamai的报告显示,2018年五月到十二月期间,共发生了约280亿次撞库攻击,其中…

mysql暴力撞库与弱密码检测

暴力撞库与弱密码检测 最近在生产数据库上碰到了一个问题,觉得挺有意思,总结出来和大家分享下。 关于暴力撞库和弱密码检测。 相信使用数据库的大家应该都不陌生,暴力撞库,简单通俗的讲通过一堆生成的密码,然后用默认…

倾家荡产、隐私全无?独家揭秘撞库攻击!

1. 撞库的原理和危害 “撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储…

撞库是什么

撞库(Credential Stuffing)是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过…

什么是撞库及撞库攻击的基本原理

6月26日晚,我国大型聊天软件QQ出现了大规模盗号情况,而且是在QQ号本人在线时出现了被盗情况。 6月27日中午,腾讯QQ发布声明称:6月26日晚上10点左右,收到部分用户反馈QQ号码被盗。QQ安全团队高度重视并立即展开调查&am…

企业微信如何关联小程序?

我们在日常使用微信时,经常会用到小程序功能,直接从微信中打开第三方页面,很是方便,那么自从企业微信与微信打通之后,我们该如何将小程序与企业微信联系起来使用呢? 其实,在企业微信中&#xf…

企业微信登录报错:应用程序无法正常启动(0xc0000142);Win10应用程序无法正常启动0xc0000142错误的解决方法

企业微信登录报错,有时候要点击多次才能登陆。 解决办法:创建一个文本,把下面一段复制进去,文本后缀改成.bat,启动运行一下即可。 sc stop NSFFileCtl sc config NSFFileCtl start disabled pause 如下图&#xff1a…

企业微信小程序从开发调试到发布的全流程

企业微信小程序和普通微信小程序两者的关系 可以理解为企业微信小程序就是把普通小程序丢进了企业微信这个app里运行,企业微信小程序的发布依赖普通微信,需要先按照普通微信的发布流程进行发布,再去企业微信平台进行绑定小程序到工作台。 企…

什么是企业应用?

看到“企业应用“这次术语, 在你的下意识里,第一反应能想起哪些相关的词? 我的条件反射是: ERP, CRM, HRM, BI, CMS ...... 企业应用这个词听起来很高大上, 但是什么“企业应用”? 我发现我没法下一个准…

微信小程序个人和企业有什么不一样(个人和企业小程序的区别)

很多朋友在注册微信小程序时不知道微信小程序个人和企业有什么不一样。本文就为大家介绍一下个人小程序和企业小程序的区别。 1、注册流程不一样。在微信公众平台注册的小程序因为个人,小程序注册主体是个人用户所以他的注册流程比较简单,只需要个人身份…

企业软件开发流程

企业开发软件的流程 前言开发一个项目经历的流程(步骤)一、软件项目周期1、软件项目周期的几个阶段 总结 前言 本文记录开发一个项目的流程 开发一个项目经历的流程(步骤) 一、软件项目周期 1、软件项目周期的几个阶段 压缩成7…

四种java企业级应用程序的架构

1、传统三层架构(all in one项目) 传统三层架构大致可以分为表现层,业务层和持久层(数据访问层)。其中表现层负责接受请求和转发请求。业务层负责处理请求(注:事务管理,日志记录等AOP类型的操作均封装在这…

企业网站源码PHP附企业小程序源码

时间不会为任何人停留,企业网站开发也不例外。随着时代的变化,趋势也在不断变化,品牌的数字化形象现在比以往任何时候都更加重要。重点已转向移动;但是,网站开发同样重要。      企业网站源码技术选型      演…

企业应用程序单点登录

企业每天都依赖于各种企业应用程序,包括云和本地应用程序。这意味着用户必须经常输入更多密码才能访问这些应用程序并完成他们的工作。为了提高用户的工作效率、减少密码疲劳并使身份管理更有效,您的组织需要部署高效的 SSO 解决方案。 AD360 提供企业 …

公司企业小程序怎么开发自己的小程序

随着移动互联网的快速发展,小程序已经成为企业展示自身产品和服务的重要渠道。那么公司企业小程序怎么开发自己的小程序呢?本文将为大家详细介绍小程序开发的步骤。 第一步:明确需求 开发小程序前,需要先明确自己的需求。是想要…

企业微信本地开发小程序。

1. 我们在开发的时候,第一步需要点击应用去企业微信里面拿取code调用登录接口传给后端,后端返回一个agenId给前端。但是我们需要本地调试,一个前端如果不能通过F12进行调试模式是看不到接口报错信息和不方便页面布局调试的。 2. 开始尝试复制…

企业管理软件,真的以业务流程为中心?

(1)理念支撑否 自从1911年以《科学管理》为标志以来,现代企业科学管理已经发展了近百年,叠床架屋已经体系成熟。到了80年代,已经体系建设到了战略级和战略绩效级,迈克尔波特的竞争战略、卡普兰的平衡记分卡…

怎么开发企业微信小程序?

企业微信小程序是一种基于微信平台的小程序,主要用于企业内部管理和沟通。开发企业微信小程序可以帮助企业提高工作效率和协同能力,同时也能够提升企业形象和品牌价值。本文将介绍如何使用小程序制作工具来开发企业微信小程序。 一、了解企业微信小程序…

【小程序专栏】个人及企业资质该如何注册小程序?

笔者最近打算写一个比较完整的"小程序零基础"的开发专栏,本文首先为大家介绍一下该如何注册小程序。目前小程序是可以面向个人进行注册的,小程序目前注册审核制度还不是那么XX,大家可以抓住这个机会进行学习。目前个人、企业、政府…