首页 > 其他分享 >Buuctf CrackRTF

Buuctf CrackRTF

时间:2022-12-26 16:24:20浏览次数:31  
标签:文件 Buuctf 加密 函数 CrackRTF 句柄 异或 sub

Buuctf CrackRTF 

查壳发现无壳,直接反汇编

 

 

 

 

可以看出,程序要我们输入6个字符.由atoi函数(字符串转换为整型数字)和v7需要大于100000得到输入的必须是六个数字(如果包含其他字符atoi函数会筛选掉,v7就不够六位数,一定小于100000).

之后再将我们输入的数字后面加上@DBApp,v3是计算字符串长度即6+6=12.

再之后通过sub_40100A函数让string1和6E32D0943418C2C33385BC35A1470250DD8923A9相等.

点进sub_40100A函数看看怎么回事

 

 

 

第一次见这种函数,拿去百度.查了资料发现这是哈希算法中的SHA1.

 

 

 

 

 

 

根据算法标识符得出的.

明白原理就可以爆破出前六个数字了.

import hashlib
a = "@DBApp"
b = "6E32D0943418C2C33385BC35A1470250DD8923A9".lower()
for i in range(100000,999999):
    c = str(i) + a
    d = hashlib.sha1(c.encode('utf-8')).hexdigest()
    if d == b:
        print(i)
        break

Hashlib库是自带的.hashlib.sha1()是创建sha1对象.hexdigest()是加密字符串.

将b用lower函数转为小写是因为hashlib加密后是小写.

这样就得到了第一串密码:123321

看回主函数,接下来又让我们输入六个字符.不过这次没有限制了,爆破是不可能了.

接下来把输入的字符接在得到的密码前面,得到新密码str

用sub_401019函数进行加密.让27019e688a4e62a649fd99cadaafdb4e和加密后的string1相等.

点进函数.

 

 

 

 

 

 

发现是md5加密

这里其实可以直接把27019e688a4e62a649fd99cadaafdb4e拿去用md5解密

 

 

 

这样就直接全解出来了(笑)

不过这里还有个解法.不管md5加密函数.

后面有个sub_40100F函数,点进去看看

 

 

 

sub_401005函数

 

 

 

同样第一次见这种函数,一个个百度.

定位AAA文件,再将文件的句柄赋给lpBuffer,句柄长度赋给nNumberOfBytesToWrite

随后将句柄的值与str异或.这里只有前6位是未知的,只需要异或出前六位就行了.

最后生成dbapp.rtf文件.由于句柄相当于定位的文件的地址,它的前几位的值就是AAA文件的前几位数据.随便创建个rtf文件,再打开看看头部数据.

 

 

 

 

是{\rtf1

而AAA数据的查看就需要resource hacker

 

 

 

接下来把AAA的前六位与{\rtf1异或就行了.

a = [0x05, 0x7D, 0x41, 0x15, 0x26, 0x01]
b = "{\\rtf1"
flag = ""
for i in range(0, len(b)):
    c = ord(b[i]) ^ a[i]
    flag += chr(c)
print(flag)

得到密码~!3a@0

运行程序

 

 

 

 

之后会在程序文件夹那里生成dbapp.rtf文件

打开就是flag了

 

 

 

总结:对我这个新手来说好难.这道题考验的是耐心与知识储备.判断sha1,md5加密,分析函数作用,判断文件头部文件间的异或.之前做的题过于简单,遇见这种需要特别特别认真的题直接吃瘪了.还是需要多多学习.

标签:文件,Buuctf,加密,函数,CrackRTF,句柄,异或,sub
From: https://www.cnblogs.com/i6288/p/17006073.html

相关文章

  • BUUCTF Java逆向解密
    BUUCTFJava逆向解密需要用专门的Java反编译软件:jd-gui    点开应用程序打开class文件       发现加密方式与KEY.接下来写出解密脚本就可以了.......
  • BUUCTF Helloword 特别简单的安卓逆向
    BUUCTFHelloword特别简单的安卓逆向 用apkide打开即可工具下载:https://down.52pojie.cn/Tools/   点击左上角的项目打开apk文件,找到主函数.   安卓......
  • BUUCTF 新年快乐 脱壳工具与手动脱壳
    BUUCTF新年快乐脱壳工具与手动脱壳用ida打开,发现函数很少:   推测可能被加了壳.用查壳软件发现是upx壳:   这里可以使用upx脱壳工具进行脱壳:   ......
  • BUUCTF子[网鼎杯 2020 青龙组]singal(angr快速嗦哈解法)
    先查壳,发现是32位程序丢ida继续分析,发现存在vm_opread函数,根据以往做题经验来看,这个题像是虚拟机保护的题目。这里首先是将opcode_table(我自己命的名字)复制前456个字......
  • [BUUCTF][WEB][极客大挑战 2019]PHP 1
    打开靶机URL看到字面提示因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯不愧是我!!!说明该网站有备份,说不定放在了Http服务器的某个目录下那么这里我们......
  • [BUUCTF][WEB][极客大挑战 2019]BabySQL 1
    靶机打开url界面上显示,它做了更严格的过滤。看来后台是加了什么过滤逻辑老规矩先尝试时候有sql注入的可能,密码框输入123'爆出sql错误信息,说明有注入点构造万能密码注......
  • [BUUCtF][WEB][ACTF2020 新生赛]Upload 1
    打开靶机url,右键查看网页源代码其中有一段代码<divclass="light"><spanclass="glow"> <formenctype="multipart/form-data"method="post"onsubmit="returncheck......
  • [BUUCTF][WEB][极客大挑战 2019]Upload 1
    打开靶机url,看到一个页面可以上传文件上传一个图片试一下,发现上传的路径是http://a7661b03-4852-41de-9ea4-d48c47cb50f0.node4.buuoj.cn:81/upload_file.php试一下获......
  • [BUUCTF][WEB][极客大挑战 2019]Http 1
    打开靶机提供的url右键查看网页源代码发现一个链接(Secret.php),访问看看返回:Itdoesn'tcomefrom'https://Sycsecret.buuoj.cn'这是个题眼通过burpsuite拦截请求......
  • [BUUCTF][WEB][极客大挑战 2019]Knife 1
    这题几乎是送分题目不断暗示,后台存在一句话木马拿个蚁剑连上去就完事了这里用curl连上去,演示一下,理解一下其中的原理#注意phpinfo()后面的分号不能省curl-d"Syc......