Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言密码破解案例,精彩啊!

C语言密码破解案例,精彩啊!

原创
作者头像
诸葛青云
修改于 2020-04-17 10:17:44
修改于 2020-04-17 10:17:44
2.2K0
举报

现代密码学发展到今天,应该来讲破解密码的可能性已经很低了,而且破解的方法比较单一,因为现在普遍采取不可逆的哈希加密方式(如md5、SHA-1、HMAC-MD5等等),无法通过反向计算破解密码,因此目前有效的密码破解方式仍然是哈希碰撞来暴力破解。

暴力破解的本质就是遍历所有可能,而且我们可优化的地方只能是策略层面的,也就是提高遍历所有情况的效率。不过今天我们要讲的的不是暴力破解,我们接下来要说的是跟C语言学习有关的一个密码破解的案例,一定程度上也提供了一种密码破解策略,大家请先看代码:

1

密码破解C语言案例

2

破解案例分析

上面的代码其实很简单,提示用户输入密码,读入字符数组,通过比较函数验证密码,正确的话输出破解成功,错误提示密码错误,密码为abc。当然这个案例有很多地方比较理想化,省略了很多东西,但我们想讲的是这种破解思想。

从代码中可以看出通过if语句即为破解成功,也就是打印出密码破解成功即可。讲到这里,其实我们大家有一个思维误区,就是认为密码破解就是要找出原始密码才算成功,其实不是这样的。

if(0==strcmp("abc",password)) {      flag=1;//关键在于让flag变为非零值,密码abc只是为flag重新赋值提供条件  }

我们换个角度来思考,在这个例子中,要想通过if语句,也就是说验证密码得成功,需要把flag重新赋值进而通过if语句的判断条件,问题就在这里,我们的最终目的是通过if判断语句,也就是说判断条件得为真,而上面输入密码等一些列过程最终就是让if判断语句为真,也就说我们可以抛弃密码这个概念,只要让if判断条件为真,即可破解成功,能否想到这一步很重要!!!

接下来我们的工作就是想方设法让if判断条件为真了,也就是给flag重新赋一个非零值,但可操作的只能是用户输入,这似乎有点难度。其实这里就用到了平时我们要极力避免的bug——栈溢出。大家这样想,我们没办法直接修改flag的值,但可以肯定的是, flag和输入的密码都位于同一个内存区域,而存储密码的数组总是有限的,是否可以通过输入足够长的密码来使数组数据溢出到存储变量flag的内存位置来改变flag的值?答案是可以的。大家看图:

3

总结反思

破解上述密码的关键在于利用数据溢出这一漏洞。如果用户输入一个足够造成缓存溢出并且重写“flag”变量默认值所存在位置的内存的长“密码”,即使这个密码无法通过验证,flag验证位也变成了非零,虽然上面的密码并不等于正确密码abc,但我们仍然可以通过缓存溢出绕开密码安全保护

当然上面的例子有很多理想化的地方,但是到现在每年因为数据溢出漏洞造成损失还很大。以上只是密码破解领域的一种策略,开头就说了真正的密码破解远没有这么简单,但我们主要想讲的是这种问题转化的思维,它在计算机领域的应用是很多的,希望这种思想能给大家的学习生活帮上一点忙,就到这吧,谢谢各位!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
密码破解全能工具:Hashcat密码破解攻略
hashcat号称世界上最快的密码破解,世界上第一个和唯一的基于GPGPU规则引擎,免费多GPU(高达128个GPU),多哈希,多操作系统(Linux和Windows本地二进制文件),多平台(OpenCL和CUDA支持),多算法,资源利用率低,基于字典攻击,支持分布式破解等等,目前最新版本为4.01,下载地址https://hashcat.net/files/hashcat-4.1.0.7z,hashcat目前支持各类公开算法高达247类,市面上面公开的密码加密算法基本都支持!
知识与交流
2023/03/25
34.3K0
密码破解全能工具:Hashcat密码破解攻略
用 Python 破解 WiFi 密码,太刺激了!
这是「进击的Coder」的第 720 篇技术分享 作者:Tr0e 来源:blog.csdn.net/weixin_39190897/article/details/119778471 “ 阅读本文大概需要 13 分钟。 ” 前言 本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。 无图形界面 先来看看没有图形界面版的爆破脚本。 WIFI 爆破 import pywifi from pywifi import const import time import d
崔庆才
2022/09/13
46.5K4
用 Python 破解 WiFi 密码,太刺激了!
黑客玩具入门——7、密码破解
对密码进行破解的时候,一个字典文件是必不可少的,所谓的字典文件就是由大量词汇构成的文件。在kali Linux系统中字典文件的来源有:
zaking
2023/12/02
1.5K0
黑客玩具入门——7、密码破解
Wifi密码破解实战
声明:此文章仅供研究学习和技术交流,请勿用于破解他人 WIFI 密码!如果你有这些时间和精力,完全可以新买一坨无线路由器,何必蹭别人家的无线网!!!! 前言 网上类似的教程不少,但是大部分都是没讲完整,或者搭建一个足够简单的环境,使用类似123456这样的简单密码,导致的结果是,看教程感觉很容易很顺利,可实际操作起来才发现困难重重。 经常听说,WIFI 密码要设置复杂一些,可是复杂的密码使用时很不方便,最重要的是,复杂密码就能保证自己的 WIFI 绝对安全吗?为了消除这些疑虑,我决定亲自尝试一下。 我对无线
FB客服
2018/02/23
15.5K1
Wifi密码破解实战
网络爬虫之密码破解
目录 前言 密码破解 总结 一、前言        刚刚睡觉的时候迷迷糊糊梦到了上大学的时候玩弄旅行箱密码的样子。刚上大学的时候学校给每个人发一个旅行箱,带学校Logo的那种,旅行箱稍显高档,带了三位数的密码还可以自己修改密码。都是刘姥姥进大观园,哪玩过这么高档的东西,刚上大学最乐此不疲的就是摆弄密码,最头疼的就是一不小心把密码忘记了,或者修改密码的时候一不小心拨错了。尤记得宿舍最壮观的时候好几个人同时坐到小板凳上从000开始试自己的密码直到咯嘣一声密码锁打开,那种最简单的幸福与开心历历在目,现在这个箱子还
魏守峰
2018/04/28
1.1K0
转 (总结)密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解(附:120G彩虹表下载)
原文地址:http://blog.csdn.net/u011202334/article/details/50585777
仙士可
2019/12/19
7.6K0
转 (总结)密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解(附:120G彩虹表下载)
WIFI密码破解笔记
相对于前一段时间脆弱的WEP加密路由器而言,当今的路由器加密方式也大都改变为WPA/WPA2,使得无线路由器的破解难度增加。虽然如此,但还是有很多漏洞层出不穷,如针对路由器WPS的漏洞。退一步来说,即使加密算法无懈可击,我们还可以针对安全防护中最脆弱的部分——人——来进行破解。人的想象力实在是匮乏的很,往往设置密码来来回回就是那么几类,用一个常见的弱口令字典,往往就能在10分钟左右把其密码暴力破解出来。这里提供己种常见的WIFI破解方式,其中WEP破解因为已经过时,所以只是在提到的时候一笔带过,主要记录的是抓握手包然后暴力破解的通用方法,末尾也会提及到WPS的破解方式。注意这仅仅作为个人实验用,最好在自己的家庭网络中测试,以免给别人带来不便。
evilpan
2023/02/12
4K0
Python 密码破解指南:5~9
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FI7hKBWA-1692873504732)(https://gitcode.net/OpenDocCN/invent-with-python-zh/-/raw/master/docs/cracking/img/3e754c09a1a42c45ac36ea03cdd9684e.png)]
ApacheCN_飞龙
2023/10/13
2.4K0
Python 密码破解指南:5~9
用 Python 破解了同学压缩文件的密码
爆破密码的思路其实都大同小异:无非就是字典爆破,就看你是有现成密码字典,还是自己生成密码字典,然后进行循环输入密码,直到输入正确位置。现在很多都有防爆破限制,根本无法进行暴力破解,但是似乎zip这种大家都是用比较简单的密码而且没有什么限制。 因此 实现思路就是 生成字典->输入密码->成功解压
全栈程序员站长
2022/09/01
1.4K0
用 Python 破解了同学压缩文件的密码
Kali中密码暴力破解工具hydra的使用
hydra是著名黑客组织thc的一款开源的暴力破解密码工具,功能非常强大,kali下是默认安装的,几乎支持所有协议的在线破解。密码能否破解,在于字典是否强大。本文仅从安全角度去讲解工具的使用,请勿用于非法用途。
雪痕@
2020/09/27
5.9K0
Kali中密码暴力破解工具hydra的使用
Python与人工智能——26、for循环基础练习题——暴力穷举法2-密码破解示例
Python作为当前最为流行的一种语言与身份程序员的大家们几乎是时时刻刻分不开的,无论是做任何方面的工作基本上不会缺少Python的出现,就好似现阶段各平台的低代码Agent开发都支持的是Python语言,对其它的语言友好度都不是很高,那么,我们就非常的有必要将Python深入的了解一下,本系列文章的目的就是为了让大家对于Python有个更加直观的了解,并且要使用Python做很多的小应用,只有真正的实操了才能更好的掌握它。
红目香薰
2024/10/14
1600
Python与人工智能——26、for循环基础练习题——暴力穷举法2-密码破解示例
轻松拿捏C语言——分支语句
选择语句(即分支语句)包含了if语句和switch语句,其允许程序在一组可选项中选择其中一条执行路径。
用户11162265
2024/06/14
1790
Pikachu漏洞靶场系列之暴力破解
这是Pikachu漏洞靶场系列的第一篇(应该会连载吧),先简单介绍一下Pikachu这个靶场。该靶场由国人开发,纯中文,且练习时遇到难点还可以查看提示,另外还有配套的学习视频。Windows下可直接在Wamp/phpStudy等集成环境下安装。相比之下,很多人都推荐的DVWA,由于其纯英文的环境,对于刚入门的小白十分不友好,可能部署完之后不知从何下手,容易劝退。所以这里推荐的Pikachu更适合刚入门Web渗透且正在寻找靶场的小伙伴。
Naraku
2021/07/29
2K0
Pikachu漏洞靶场系列之暴力破解
最新暴力破解漏洞技术详解
暴力破解漏洞的产生是由于服务器端没有做限制,导致攻击者可以通过暴力的手段破解所需信息,如用户名、密码、短信验证码等。暴力破解的关键在于字典的大小及字典是否具有针对性,如登录时,需要输入4位数字的短信验证码,那么暴力破解的范围就是0000~9999。
Ms08067安全实验室
2023/09/11
6600
最新暴力破解漏洞技术详解
前端动态加盐慢加密方案图解
IMWeb前端团队
2017/12/29
3.2K0
前端动态加盐慢加密方案图解
Python实战-暴力破解zip文件解压密码
使用的核心模块是python标准库中的zipfile模块。这个模块可以实现zip文件的各种功能,具体可以查看官方参考文档。这里的暴力破解的意思是对密码可能序列中的值一个一个进行密码尝试,这对人来说是很难的,可是对计算机而言并不难。有时候我们下载的zip文件需要密码解压而我们不知道,需要付费才知道。所有这里主要介绍两种暴力破解的密码:纯数字密码和英文数字组合密码。
全栈程序员站长
2022/08/31
2.9K0
Python实战-暴力破解zip文件解压密码
揭秘网络安全攻防战:信息收集和密码破解的黑客技巧与防护策略
今天我们将专注于网络安全基础知识的练习,包括信息收集和弱口令密码破解。在信息收集方面,我们将重点介绍目录信息的收集方法。例如,我们会讨论如何解析类似于"https://域名/path"这样的路径信息,特别是当这些路径信息是我们之前未曾了解的情况下。而在密码破解方面,我们将主要探讨通过简单的弱口令破解方法来实现。最后,我也会在讲解的过程中顺带介绍一些如何有效防范这种渗透的方法。
努力的小雨
2024/04/19
5720
Python 密码破解指南:10~14
“为什么治安警察抓人并刑讯逼供来获取他们的信息?硬盘对酷刑毫无抵抗力。你需要给硬盘一个抵抗的方法。这就是密码学。”
ApacheCN_飞龙
2023/10/13
1.1K0
Python 密码破解指南:10~14
干货 | 世界上最快最高级的密码破解工具Hashcat入门指南
Hashcat 是一款用于破解密码的工具,据说是世界上最快最高级的密码破解工具,支持 LM 哈希、MD5、SHA 等系列的密码破解,同时也支持 Linux、Mac、Windows 平台。
网络安全自修室
2022/12/06
13K0
干货 | 世界上最快最高级的密码破解工具Hashcat入门指南
破解密码的手段总结
黑客最常用的一个攻击方式,就是获取目标口令,有了对方密码口令,就相当于有了你家的入户门钥匙,那么接下来所面临的危险就可想而知了。
Power7089
2020/09/28
4.5K0
破解密码的手段总结
相关推荐
密码破解全能工具:Hashcat密码破解攻略
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档