bugku-就五層你能解開嗎WP


如題:

鏈接: http://pan.baidu.com/s/1i4TQoz7 密碼: w65m

提示:第一層:CRC32 碰撞

第二層:維吉尼亞密碼

第三層:sha1 碰撞

第四層:md5 相同文件不同

第五層:RSA

第一層crc32碰撞:

 

不多說直接上腳本,這里告訴一下如果自己直接用python寫腳本跑的話會很慢,用github上的腳本跑會很快出來的,下面是我跑的結果

 

選出看起來有意義的字符(也可以寫腳本爆破),可以看到_CRC32_i5_n0t_s4f3組合起來看起有意義

得到解壓密碼,進入第二關維吉尼亞密碼

 

 

可以看到一條密文和多個密鑰(只有一個是正確的),寫個python吧

from pycipher import Vigenere
b=open('pwd.txt','w')
a=open('ciphertext.txt').read()
for i in open("keys.txt"):
    i=i.replace('\n','')
    flag=Vigenere(i).decipher(a)
    key=flag+'\r\n'
    b.write(key)
b.close()
print 'ok'

  

 

一千條,難找啊,但是這題是維吉尼亞密碼可以查找關鍵字如:vigenere,password,flag,key等關鍵字,查找password得到

THEVIGENERECIPHERISAMETHODOFENCRYPTINGALPHABETICTEXTBYUSINGASERIESOFDIFFERENTCAESARCIPHERSBASEDONTHELETTERSOFAKEYWORDITISASIMPLEFORMOFPOLYALPHABETICSUBSTITUTIONSOPASSWORDISVIGENERECIPHERFUNNY

可以從中看出password is vigenere cipher funny(空格可以從密文中看出),所以密碼是vigenere cipher funny

進入第三關,sha1 碰撞

上python吧,代碼如下

import string
import hashlib
a=string.maketrans('', '')[33:127]#可以打印的字符
for key1 in a:
    for key2 in a:
        for key3 in a:
            for key4 in a:
                keys=key1+"7"+key2+"5"+"-"+key3+"4"+key4+"3"+"?"
                sha1=hashlib.sha1(keys)
                flag=sha1.hexdigest()
                if "619c20c" and "a4de755" and "9be9a8b" and "b7cbfa5"and "e8b4365"in flag:
                    print keys
                    break

  

不知道為什么我能跑出6個結果出來,一個一個試吧,發現 I7~5-s4F3? 是解壓密碼

下一關,md5 相同文件不同

這個百度了一下,下載了兩個文件,這兩個文件確實輸出結果不同但是md5相同

 

 

運行了其中一個發現這個是解壓密碼

 

下一關,RSA

用openssl求出N和e,發現n和e都非常大,這時候想到維納攻擊

直接用github上的腳本跑得到d

 

然后用rsatool生成私鑰

最后用openssl可求得flag

 

flag如下

 

這里flag打了馬賽克,主要是為了你們不做伸手黨,旨在動手實驗。

 以上腳本都在這里了:鏈接:https://pan.baidu.com/s/1yeFJZ2nMeZI29gM10WXavA 密碼:drif


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM