crypto做题记录

news/2025/2/21 23:08:29/文章来源:https://www.cnblogs.com/C0E1/p/18730405

buuctf--wp

Crypto

权限获得第一步:

看样子是windows系统存储用户密码哈希值的格式,密文一般存储在C:\Windows\System32\config\SAM文件中,只有具有管理员权限的用户才能通过特定工具(hashdump,pwdump)访问SAM文件,进行密码重置等操作。

下图表示用户名:

用户RID:500(用于标识用户账号)

LM哈希:806EDC27AA52E314AAD3B435B51404EE

NTLM哈希:F4AD50F57683D4260DFD48AA351A17A8

image-20250221215703608

对哈希值进行解密,LM哈希值无法解密,NTLM哈希解密得到即为flag

image-20250221222435736

补充:LM哈希和NTLM哈希

LM 哈希用于 Windows 早期版本,是一种不安全的哈希算法,因此现代Windows系统默认禁用了LM哈希,或者仅当密码长度超过14个字符时才使用它。当用户密码长度小于15个字符时,它将用户密码转换为大写(这也导致了LM哈希对大小写不敏感),并截断到 14 个字符,再使用 DES(数据加密标准)算法加密。

NTLM Hash 是基于 MD4 算法计算出的哈希值,密码以 Unicode 形式输入并进行哈希处理。这种哈希算法比 LM Hash 更安全,但仍然容易受到暴力破解的威胁,特别是对于弱密码。

Windows系统密码:

与上题类似

image-20250221222740241

第一个用户密码解密为空密码,经过尝试第二个用户的NTLM Hash解密为flag。

image-20250221223130116

补充:MD5加密原理

  1. 数据填充:对输入数据进行填充,使其长度达到一个特定的长度,以便使原始数据的长度可以被512整除。填充的方法是在原始数据后面添加一个“1”,然后添加足够数量的“0”,使其字节长度对512求余数的结果等于448,最后添加一个64位的整数表示原始数据的长度。
  2. 初始化缓冲区:MD5算法使用了一个128位的缓冲区,分为四个32位部分,用来存储中间结果和最终结果。这四个部分被初始化为特定的常数。
  3. 处理分组:填充后的数据被划分为长度为512位的分组,每个分组又划分为16个32位的子分组。然后,通过一系列的位操作和模加运算,每个分组都被处理并更新缓冲区的内容。
  4. 输出:处理完所有分组后,缓冲区中的内容就是最终的哈希值。这个哈希值是一个128位的数,通常表示为32个十六进制数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887839.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

若依框架常见问题一

错误一:问题出在configuration和configLocation重复,如下图:修改方法也很简单,只要删除掉application.yml文件中的以下就可以解决:

Cypher Chapter 5: MECHANISED CRYPTOGRAPHY

Chapter 5: MECHANISED CRYPTOGRAPHY 恩格玛机示意图:谜题围绕恩格玛机展开。 PUZZLE1 Input/output: ABCDEFGHIJKLMNOPQRSTUVWXYZScrambler I: ABCDEFGHIJKLMNOPQRSTUVWXYZ UWYGADFPVZBECKMTHXSLRINQOJReflector: ABCDEFGHIJKLMNOPQRSTUVWXYZ YRUHQSLDPXNGOKMIEBFZCWVJATCiph…

学生成绩管理系统问题分析

代码来源:CNDS《学生成绩信息管理系统设计》 运行环境:Visual Studio 2022学生成绩信息管理系统设计 #include #include using namespace std; const int MAX_STUDENTS = 100; class Student { public:string name;int id;float score; }; class StudentManager { private:…

若依02

swagger 简单介绍Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 官网:https://swagger.io/。 它的主要作用是:使得前后端分离开发更加方便,有利于团队协作 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担 功能测试S…

AI大模型有哪些常见的应用场景

图像生成应用场景: 图像生成 功能描述: 根据文本描述或参考图生成高质量图片,支持艺术、写实等多种风格。 用法示例: 输入提示词(如“赛博朋克风格的城市夜景”),调整参数(分辨率、风格强度)。 代表应用: 即梦AI视频生成应用场景: 视频生成 功能描述: 从文本/图片生成视频…

『Python底层原理』--Python对象系统探秘

Python是一种非常灵活的编程语言,它的灵活性很大程度上来自于它的对象系统。 在Python中,一切都是对象,这意味着无论是数字、字符串,还是我们自己定义的类的实例,它们在底层都遵循相同的规则。 本文尝试揭开Python的对象系统的神秘面纱。 1. 对象和类型 在Python中,每个对…

MyBatis-Plus配置之 —— 配置冲突

MyBatis-Plus配置 在 SpringBoot 工程中,当使用 yml 文件为 MyBatis-Plus 添加配置时,可能会出现 “配置冲突” 的问题,即:配置项如下: # MyBatisPlus配置 mybatis-plus:configuration:map-underscore-to-camel-case: true #字段与属性,自动转换为驼峰命名# ...config…

TLV编码学习

TLV就是Tag+Length+Value Tag(1或者多字节): Tag首字节:Bit7:0表示tag只有1字节, 1表示tag是多字节Bit6表示通用编码tag还是私有编码tag解析第5bit为0/1分别表示Value字段按照基本类型编码或者TLV方式编码。 Bit0~4,如果 Tag Value小于31,直接放Tag Value,大于…

线性规划 - 对偶

线性规划 - 对偶定义 线性规划是一类满足限制条件为关于自变量的线性约束,且目标函数是关于自变量的线性函数的一类最优化问题。 对于一组自变量 \(x_i\),定义多元线性函数 \(f(x_1,x_2,\dots,x_n)=\sum\limits_{i=1}^na_ix_i\),称 \(f(x_1,x_2,\dots,x_n)\ge/\le/=b_i\) 为…

excel的index和counta函数结合用法解决将a,b列内容合并转到c列

Excel中将a,b列内容合并转到c列 如下图,a,b列各有一些连续的数据(但个数不确定),想要将整个a,b列内容合并转到c列,应该如何实现公式及分步说明 公式实现 =IF(ROW()<=COUNTA(A$1:A$100), A1, IF(ROW()<=COUNTA(A$1:A$100)+COUNTA(B$1:B$100), INDEX(B$1:B$100, ROW()…

1-3 S语言词法分析器设计

一、实验目的 了解词法分析程序的两种设计方法:根据状态转换图直接编程的方式; 利用DFA编写通用的词法分析程序。(选做)二、实验内容 1. 根据状态转换图直接编程 编写一个词法分析程序,它从左到右逐个字符的对源程序进行扫描,产生一个个的单词的二元式,形成二元式(记号…

【技术解读】【CloudSec】EmojiDeploy: Smile! Your Azure web service just got RCEd ._.

目录前言存在漏洞的服务 - Kudu SCM漏洞利用的关键点1、Same-site配置不当2、服务端对Origin的校验可被绕过3、利用一个高危功能接口3.1、DoS - POST /api/scm/clean、POST /api/app/restart3.2、RCE - POST /api/zipdeploy没校验一些自定义请求头 - 如:If-Match: *、X-Reques…