buuctf CrackRTF (补)

另一种做题方式。

前言:学习笔记。 例题学习,涨大知识。

深入刨析,学习。

常规什么的这次就不写了,这篇wp主要是用于学习,以及分析。

以资料,代码理解,编程思维、编程手法等为主。

重在分析学习,不以解题为目的。

关键代码:

第一部分:

跟进之后的部分内容:

标识符:(网上记录很少,不过还是发现了一篇。)

哈希加密算法的算法标识符-阿里云开发者社区 (aliyun.com)icon-default.png?t=N7T8https://developer.aliyun.com/article/1141803

思路:

①        已知输入的Destination字符是6位,且和@DBApp拼接之后,用atoi转换为纯数字长度大于10000。

②        将拼接之后的Destination 使用SHA-1加密 生成长度为40的哈希值:

6E32D0943418C2C33385BC35A1470250DD8923A9(记得转小写。)

在已知部分明文,以及知道Destination的范围(>=100000)情况下,进行爆破。得到明文。

那么使用脚本进行爆破。(python有众多库,学习python真的必不可少。)

脚本如下:

怎么使用 python haxhlib 可以看这个:我感觉还可以,我能看懂。

Python中hashlib模块详解-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42444693/article/details/104575153

验证:

所以第一层密码:123321

第二部分:

sub_401019跟进如下:

试了一下,因为没有str的范围很难爆破。

接着往下看:

第三部分:

sub_40100F内容如下:

跟进如下:

先用ResourceHacker查看AAA:

在电脑中搜索.rtf后缀:

分析:

烧脑,或者说需要大胆去揣测。

a2 a3 的值不知道。

但告诉我们 AAA 以及 。dbapp.rtf 

那么,我们假设其是a2 a3的值。

具体呢?因为第二层密码是6位字符。

我们取前6位去进行异或操作。

010 editor:

winhex:

ResourceHacker查看AAA:(上面有提。)

提取 编写脚本。(可以用C也可以python。)

验证:

OK,结束。

总结:

难点一:对SHA-1的爆破。

难点二:MD5没有条件无法爆破,只能根据上下文已知的信息进行大胆推测。

难度三:对于API的理解,以及参数信息的了解、翻译。

难点四:脑筋急转弯,对于AAA以及.rtf文件的异或操作。【确实想不到。】

总之,涨见识了。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值