网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

web安全团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 网络安全 > web安全 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

登录、注册、账号、密码、验证码等表单渗透经验介绍

文章来源:重庆网络安全 发布时间:2020-03-06 16:56:41 围观次数:
分享到:

摘要:在甲方授权的渗透测试中,经常会遇到各种形式表单:登录,注册,帐户,密码,验证码和其他形式。本文着重介绍各种表单形式的渗透经验。

  在甲方授权的渗透测试中,经常会遇到各种形式表单:登录,注册,帐户,密码,验证码和其他形式。本文着重介绍各种表单形式的渗透经验。


一.是否可以绕过登录->(抓包decode+爆破)[高风险]


blob.png

blob.png


Bug修复:


  1.增强验证码机制。为了防止验证码被破解,可以适当地增加验证码生成的强度,例如中文图形验证码。


  2.用户名或密码输入错误均提示“用户名或密码错误”,防止黑客获取到注册用户信息。


  3.限制用户登录失败的次数。


  4.在一定时间内限制IP登录失败的次数。


  5.使用两因素认证策略


二.帐户/密码可以枚举[高风险]


  漏洞描述:由于页面对输入的帐户和密码的响应不同,攻击者可以通过回声的不同枚举用户名,并获得该帐户名来破解弱密码。

blob.png

blob.png

Bug修复:


  1.添加验证机制,例如验证码


  2.添加token


  3.统一身份验证失败,用户名或密码错误时的响应


三.帐户/密码是硬编码[高风险]


  漏洞描述:帐户或密码被硬编码到页面中,只需要输入正确的用户名/密码/验证码。

blob.png

Bug修复:


  1.取消默认的硬编码配置,删除敏感信息,并禁止在前端登录框中直接存储纯文本。


四.手机验证码爆破


  条件:该页面没有图形验证码或图像验证码无效。后端对验证码输入错误的数量没有任何限制。验证码的时效性高于爆破时间。

blob.png

blob.png

Bug修复:


  1.点击获取手机验证码,生成即时更新强图文验证码


  2.限制输入错误的数量


  3.缩短验证码的有效期

 

五.短信轰炸

blob.png

 现在,可以编写一个小程序,以周期性地将数据包发送到目标,以实现文本消息轰炸。

blob.png

 注意:为了防止被ban,可以暂停十秒钟,然后再发送下一个; 有时,尽管后端会对其进行验证,但仍有一些方法可以绕过1>删除Cookie值2>在电话号码后添加一个空格\ n


  Bug修复:


  1.后端在特定时间只能向同一手机号发送一条短信,并设置发送次数的上限

blob.png

六.批量注册表单

blob.png

blob.png

七.注册表单之覆盖注册


  漏洞详细信息:此漏洞是指以前在手机中注册过的成员。由于存在此漏洞,因此手机号码可用于重复注册,并且它将覆盖以前注册的会员信息。

blob.png

blob.png

blob.png

blob.png

八.任何用户密码重置


  漏洞描述:在密码更改表单上,通过修改数据包的特定数据来修改任何用户的密码。

blob.png

blob.png

Bug修复:


  1.使用session来验证当前用户的权限


  在以下情况下不一一列举。


  1> Cookie值替换


  2>跳过验证步骤


  3>验证码未绑定到用户


九.图形验证代码绕过(从代码级别进行分析)


  原理解释:


  验证码(CAPTCHA)Completely Automated Public Turing test to tell Computers and Humans Apar —>全自动人机区分的图灵测试。


  图形验证代码广泛应用于Web应用程序或客户端软件中,以防止暴力破解,机器注册等。不幸的是,许多开发人员一无所知,无法完成工作进度。


  验证码常见的安全问题:1>验证码具有逻辑缺陷,可以绕过和逆转;


                 2>验证码过于简单容易被机器识别;

  Q1:将验证代码是否出现在客户端浏览器中的判断逻辑


  原理:某些系统默认情况下不显示验证码,仅在出现一定数量的用户验证错误后才会显示。


  所以很好奇如何判断用户犯了几个错误?没有经验的开发人员可能会这样做:


  1.在cookie中写一个标志,例如:loginErr = 1,随后的错误会累积。


  2.在session中写一个标记,例如:loginErr = 1,随后的错误会累积。

  问题出现了,如果攻击者提交不带cookie的HTTP请求怎么办? 还是攻击者重复不更新在cookie中提交loginErr值?


  由于该程序无法获取cookie / sessionID,因此它将认为攻击者是第一次访问,并且验证代码将不会出现!


  Q2:验证码没有过期,并且单个验证码可以重复使用


  原理:在大多数情况下,验证码与Web服务器上的session值相对应。如果您完成验证并且没有将此会话标记为无效,则将重复使用相同的验证码。因此,攻击者可以在Cookie中使用固定的sessionID和固定的验证码字符串轻松爆炸。


  还有一个非常常见的代码实现想法。通过重新下载验证码来完成更新会话的任务。开发人员最容易犯的错误之一就是将更新session的任务移交给客户端浏览器。例如:302重定向,甚至通过js、meta refresh重定向页面,以指导用户再次下载验证码。这些做法实际上是错误的。 如果用户拦截了重定向并且没有发出新的下载请求怎么办?仍然可以使用最后一个验证码吗? 开发人员需要这样做:验证码只能使用一次。使用后,它将立即失效,无法再次使用!


  Q3将验证码内容输出到客户端


  无论考虑什么,都不应将验证代码的内容发送到客户端cookie或将其输出到response headers的其他字段。 例如:验证码的MD5值和Base64转码太容易被黑客逆向破解以获取原始值。即使输出是固定的,也不安全。


  Q4验证码太弱


  带有逻辑错误的验证码通常具有太弱的常见问题。使用开源的tessertact OCR引擎,无需任何培训,也无需人工进行降噪处理,它可以识别Internet上的大多数验证码!


  演示示例:验证码重放攻击


  漏洞详细信息:测试发现,当用户登录时,验证码没有立即刷新,从而导致攻击者通过重放验证码来破坏登录名。

blob.png

blob.png

Bug修复:


  1.验证码只能使用一次,使用后立即失效!一次一码。


  2.验证码不应太弱。使用变形,干扰线,干扰背景色,更改字体等。


  3.大型网站统一的安全验证码,并在各处使用相同的验证码界面。


本文由 重庆网络安全 整理发布,转载请保留出处,内容部分来自于互联网,如有侵权请联系我们删除。

相关热词搜索:登录渗透经验 注册渗透经验 账号渗透经验 密码渗透经验 验证码渗透经验 渗透经验介绍 重庆网络安全

上一篇:Pikachu靶场复现钓鱼攻击之Basic认证后数据无法发送到后台,PHP的HTTP身份验证机制仅在PHP作为Apache模块运行时有效
下一篇:执行分段免杀,使用Xor加密具有不同密钥的弹出cmd程序

热门资讯

鼠标向下滚动