《密码爆破漏洞详解》(非常详细)从零基础入门到精通,看完这一篇就够了。

您所在的位置:网站首页 暴力破解的危害 《密码爆破漏洞详解》(非常详细)从零基础入门到精通,看完这一篇就够了。

《密码爆破漏洞详解》(非常详细)从零基础入门到精通,看完这一篇就够了。

2024-07-05 08:13| 来源: 网络整理| 查看: 265

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

密码爆破使用场景

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

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

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

需要注意的是, 有些网站的登录界面会提示 用户名不存在 这类提示 在这里插入图片描述 这就意味着开发人员在编写代码时先判断了用户名, 用户名匹配后再判断密码, 这样一来或许效率会高一些, 但逻辑并不严谨, 遇到这种情况我们可以先尝试爆破用户名, 拿到真实的用户名以后再针对密码进行爆破

防范密码爆破 密码的复杂性

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

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

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

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

登录逻辑

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

验证码

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

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

有些开发人员在编写登录功能的代码时, 确实会添加一个验证码, 但这个验证码不会变化!或者说验证码不会随着页面的刷新而变化!更有甚者在前端添加验证码后, 后端压根就不验证验证码是否正确 在这里插入图片描述 这样一来恶意用户只需要提供一个验证码或者不提供验证码就可以不停的爆破密码

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

登录次数限制

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

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

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

在这里插入图片描述

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么? 既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天) ①了解行业相关背景,前景,确定发展方向。 ②学习网络安全相关法律法规。 ③网络安全运营的概念。 ④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周) ①渗透测试的流程、分类、标准 ②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking ③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察 ④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周) ①Windows系统常见功能和命令 ②Kali Linux系统常见功能和命令 ③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周) ①计算机网络基础、协议和架构 ②网络通信原理、OSI模型、数据转发流程 ③常见协议解析(HTTP、TCP/IP、ARP等) ④网络攻击技术与网络安全防御技术 ⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天) ①数据库基础 ②SQL语言基础 ③数据库安全加固

6、Web渗透(1周) ①HTML、CSS和JavaScript简介 ②OWASP Top10 ③Web漏洞扫描工具 ④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等) 那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周) 在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3