隔壁老张: “狗剩啊, 隔壁xx村的王姐家的女娃好漂亮, 我想盗她qq啊, 你帮我把”
狗剩: “我不会呀”
村里大妈: “那个狗剩啊, 盗个qq号都不会, 他妈妈还好意思说他是学网络安全当黑客的”

密码爆破漏洞详解

  • 密码爆破介绍
  • 密码爆破使用场景
  • 密码爆破利用思路
  • 防范密码爆破
    • 密码的复杂性
    • 密码加密
    • 登录逻辑
    • 验证码
    • 登录次数限制

密码爆破介绍

密码爆破又叫 暴力猜解 , 简单来说就是将密码逐个尝试, 直到找出真正的密码为止, 本质上是利用了 穷举法

穷举法专业点讲是叫 枚举法 , 枚举法的中心思想是逐个考察某类事件的所有可能情况, 从而得出一般结论, 那么这个结论就是可靠的

通常情况下, 我们根据已知的部分条件确定答案的大致范围, 并在此范围内对所有可能的情况逐一验证, 直到全部情况验证完毕, 由于枚举法所需的计算成本太高, 因此我们可以利用计算机运算速度快精度高的特点,来执行枚举过程,理论上来讲, 使用枚举法可以 暴力破解任意一个用户密码, 但实际上枚举法的运算量比较大, 解决效率不高, 如果枚举的范围太大( 一般以两百万次为限制), 在时间上就难以承受了, 换句话来说, 只要你有足够的时间, 你就能破解世界上任意一个账号和密码

密码爆破使用场景

密码爆破的目标有两种, 一种是针对 网站的高权限用户 , 比如网站的管理员账号


另一种就是 web应用程序的用户 , 比如ssh, ftp, mysql等, 这些服务往往存在一个高权限用户用来执行命令的操作, 比如mysql的root账号, 这些高权限用户原本是为了给开发人员提供方便, 但如果被爆破了密码, 后果将会不堪设想

密码爆破利用思路

  1. 检查网站是否存在验证码
  2. 尝试登录, 判断网站是否对登录行为有所限制
  3. 判断网站是否采用了双因素认证, Token值认证等身份验证手段
  4. 注册账号, 获取网站对密码的限制, 比如长度必须是8位以上,必须包含字母数字大小写等
  5. 准备一个有效的字典并根据密码的限制条件优化字典, 比如去掉明显不符合要求的密码, 提高爆破的效率
  6. 使用代理工具拦截请求,提供字典开始爆破( 或者自己编写脚本进行爆破)
  7. 如果是后台管理的密码, 可以优先尝试admin/administrator/root这种使用概率较高的账号, 破解过程中注意观察’用户名或密码错误’,'用户名不存在’等提示

需要注意的是, 有些网站的登录界面会提示 用户名不存在 这类提示

这就意味着开发人员在编写代码时先判断了用户名, 用户名匹配后再判断密码, 这样一来或许效率会高一些, 但逻辑并不严谨, 遇到这种情况我们可以先尝试爆破用户名, 拿到真实的用户名以后再针对密码进行爆破

防范密码爆破

密码的复杂性

毋庸置疑, 提高密码的复杂性是防范暴力破解的第一道防线, 开发人员在设计密码格式的时候一定要采用一些相对复杂的策略, 避免出现’123456’这类的弱口令, 常见的密码策略有以下几种

  1. 密码长度8位数以上, 8位数到16位之间最合适
  2. 至少包含一个大写字母( A-Z)
  3. 至少包含一个小写字母( a-z)
  4. 至少包含一个数字( 0-9)
  5. 至少包含一个特殊字符( *&^%$#@!)
  6. 禁止使用手机号码,邮箱等关键’特征’为密码
  7. 用户名和密码不能有任何联系,比如用户名是admin,密码是admin123

密码加密

用户注册时, 将密码加密后保存到数据库中, 用户登录时, 将用户输入的密码加密后再匹配数据库

需要注意的是, 有些加密方式本身就存在漏洞, 比如我们常用的MD5加密就存在0e绕过/数组绕过/MD5碰撞等漏洞, 如果条件允许, 可以使用自己的加密方式

登录逻辑

有些开发人员在编写登录的代码时, 因为效率或是其他原因, 采用先判断用户名, 用户名匹配后在判断密码等类似的逻辑, 这样一来就会导致用户可以单独爆破账号和密码, 从而降低爆破的成本

验证码

验证码是一种区分用户是计算机和人的全自动措施, 主要目的是防范 机器人 , 同时也可以有效防止密码爆破,刷票的恶意操作

需要注意的是, 验证码一定要自己动! 验证码一定要自己动! 验证码一定要自己动!

有些开发人员在编写登录功能的代码时, 确实会添加一个验证码, 但这个验证码不会变化!或者说验证码不会随着页面的刷新而变化!更有甚者在前端添加验证码后, 后端压根就不验证验证码是否正确

这样一来恶意用户只需要提供一个验证码或者不提供验证码就可以不停的爆破密码

想要使验证码发挥应有的作用, 起码要保证验证码会随着页面刷新而刷新,或随着每一次登录操作而刷新, 同时后端也需要同步更新

登录次数限制

密码爆破漏洞需要穷举所有可能的答案, 这就意味着需要大量的登录次数, 限制登录的次数可以有效增加密码爆破的 时间成本 , 从而使攻击者知男而退

限制登录次数分为两个方面, 一个是开发人员通过代码逻辑来限制登录的次数, 在规定时间内限制登录的最大次数, 比如连续登录失败三次以后锁定账号, 或者一分钟内只能登录两次/三次, 同时还需要考虑到用户的体验性, 在用户体验和网站安全之间选择一个适中的限制

需要注意的是, 限制登录次数只能增加爆破的时间成本, 如果遇到愣头青非得跟你杠到底, 那密码被爆破成功就是时间的问题了, 条件允许的情况下, 可以与管理员沟通, 定期更换密码 , 比如每个月或没隔两个星期换一次密码, 配合登录次数的限制, 可以有效降低密码被爆破的风险

《密码爆破漏洞详解》——黑客必修的入门操作( 建议收藏 )相关推荐

  1. 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。

    本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...

  2. Java 动态代理详解 ( 附示例源码,建议收藏)

    动态代理在Java中有着广泛的应用,比如Spring AOP.Hibernate数据查询.测试框架的后端mock.RPC远程调用.Java注解对象获取.日志.用户鉴权.全局性异常处理.性能监控,甚至事 ...

  3. 定点数和浮点数加减乘除运算详解【计算机组成原理】---真的建议收藏啊!!!

    前言: 你知道计算机内部是如何进行加减运算的吗?可能你知道,那你知道计算机内部是如何进行乘除法运算的呢?肯定和我们十进制运算是不一样的.当我查找资料的时候,发现除了书本很少有这样的知识点.所以我想和大 ...

  4. 抖音小店无货源运营操作详解,实操干活,建议收藏

    毫无疑问,抖音小店现在已经成了2021年最火热.关注度最高同时也最简单的一个小成本创业新风口. 抖音也在大力推广抖音小店,各种免费流量.扶持政策一波接一波. 入驻门槛也是低到尘埃里,只需要一张营业执照 ...

  5. OWASP-TOP10漏洞详解以及防护方案

    OWASP TOP 10 漏洞详解以及防护方案 OWASP介绍 官网:http://www.owasp.org.cn/ OWASP TOP10 指出了 WEB 应用面临最大风险的 10 类问题,是目前 ...

  6. Pikachu靶场之文件包含漏洞详解

    Pikachu靶场之文件包含漏洞详解 前言 文件包含漏洞简述 1.漏洞描述 2.漏洞原因 3.漏洞危害 4.如何防御 第一关 File Inclusion(local) 1.尝试读取"隐藏& ...

  7. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  8. Pikachu靶场之越权漏洞详解

    Pikachu靶场之越权漏洞详解 前言 逻辑越权漏洞简述 漏洞描述 漏洞原因 漏洞分类 水平越权 垂直越权 权限框架缺陷 如何防御 第一关 水平越权 问题分析 尝试防御 第二关 垂直越权 问题分析 尝 ...

  9. 89.网络安全渗透测试—[常规漏洞挖掘与利用篇5]—[文件包含漏洞详解实战示例]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.文件包含漏洞详解 1.文件包含漏洞相关概念 2.PHP文件包含漏洞相关概念 3.PHP文件包含漏洞利用:`构 ...

最新文章

  1. 进阶学习(3.6) Prototype Pattern 原型模式
  2. 定时器php windows任务计划
  3. 002_支持并发的内部类饿汉单例
  4. 关于DataAccess Application block
  5. react 小程序转换_如何将AngularJS 1.x应用程序转换为React应用程序-一次转换一个组件。
  6. LinkedList 真的是查找慢增删快?刷新你的认知!
  7. 给兆芯出主意:开发一批新指令,交叉授权
  8. verlay虚拟化技术_Overlay解决虚拟化难题 - 节点动态 - 海南师范大学信息网络与数据中心| Network Center HaiNan Normal University...
  9. ftp服务器端口修改,如何修改服务器ftp端口教程
  10. wpa_supplicant 的使用
  11. ArcGIS Pro2.5安装步骤(含Pro2.5安装包)
  12. 尹语堂®公益20210906
  13. 数据结构第5版李春葆上机实验题答案(全部)
  14. Error occurred when installing package 'qcloud_cos'
  15. 阿里云centos7系统下载
  16. Python实现黑白棋人机对弈
  17. 计算机三级 计算机三级网络技术 如何两天内通过考试
  18. SkyWalking调研与初步实践
  19. 计算机毕业设计Python+djang公务员考试信息管理系统(源码+系统+mysql数据库+Lw文档)
  20. 白话kali linux上可以安装什么小游戏(好奇版)

热门文章

  1. npm 有用的一些全局包
  2. Leetcode475.Heaters供暖器
  3. 时间模块(import time)
  4. 资源日历 踩坑记(二)
  5. Oracle学习系列1-7
  6. jquery easyui Tab 引入页面的问题
  7. Ubuntu12.04 配置JDK7
  8. GridView实战一:自定义分页、排序、修改、插入、删除
  9. Netty工作笔记0070---Protobuf使用案例Codec使用
  10. Java 8 新特性001_Java 8 Optional 类