1. 程式人生 > >[CTF]利用CRC32繞過RAR密碼(適合於小文字檔案)

[CTF]利用CRC32繞過RAR密碼(適合於小文字檔案)

利用CRC32繞過RAR密碼(適合於小文字檔案)

原文標題:教你繞過rar密碼

文章僅作rar密碼破解的探討,如有高見還望提出。

  題目有點誇大其詞,事實是我也沒能想出一個更好的描述來總結這篇文章的內容,所以才寫了這麼一個標題。

  問題背景:某bbs娛樂區釋出49選1的彩票,規則很簡單,每次由管理人員設定一個1~49的數字,放在txt檔案中,然後再用rar加密,上傳到帖子的附件中,然後由會員用論壇貨幣購買自己所選的號碼,對應可以選多少注,每注多少錢等等。

  問題思考:從rar的角度而言,網路上還是有很多暴力破解的軟體的,但是如果你的密碼強度夠好,比如數字字母特殊符號一起再長達幾十位,個人電腦幾天不關機也破解不出來。所以這種方法最最不可取。當破解程式碼的代價遠遠大於破解到的目標的價值時,沒有人會去這麼做。

這裡寫圖片描述

  讀者可以自己測試一下,一個位元組的txt文字(也就是一個txt文字中只含有一個數字)
  壓縮前為大小為1,壓縮後大小也為1,加密壓縮後大小為16;
  2位元組的txt文字,壓縮前大小為2,壓縮後大小為2,加密壓縮後大小為16。
  如果文字使用utf-8編碼的話對應文字會比ansi編碼大3,加密壓縮後依然為16。

轉者:無BOT格式的UTF-8文字和ansi編碼一樣的,編碼大3在於BOM頭。

**矛盾出現:**rar的壓縮文件中是提供一個CRC32的值,這個值是文件在壓縮之前的CRC32值,相信很多人都知道:每個不同的檔案都有唯一的一個CRC32值,就算是可能有重複的,那麼在內容為1~49的這個小範圍內的txt文字也不會有重複。為此,我用hash檢測工具挨個測試,並列出了一個表。

txt文字中的內容 CRC32的數值
1 83DCEFB7
01 CF412436
2 1AD5BE0D
02 5648758C
3 6DD28E9B
03 214F451A
4 F3B61B38
04 BF2BD0B9
5 84B12BAE
05 C82CE02F
6 1DB87A14
06 5125B195
7 6ABF4A82
07 26228103
8 FA005713
08 B69D9C92
9 8D076785
09 C19AAC04
10 A15D25E1
11 D65A1577
12 4F5344CD
13 3854745B
14 A630E1F8
15 D137D16E
16 483E80D4
17 3F39B042
18 AF86ADD3
19 D8819D45
20 8A707622
21 FD7746B4
22 647E170E
23 13792798
24 8D1DB23B
25 FA1A82AD
26 6313D317
27 1414E381
28 84ABFE10
29 F3ACCE86
30 936B4763
31 E46C77F5
32 7D65264F
33 0A6216D9
34 9406837A
35 E301B3EC
36 7A08E256
37 0D0FD2C0
38 9DB0CF51
39 EAB7FFC7
40 DC2AD1A4
41 AB2DE132
42 3224B088
43 4523801E
44 DB4715BD
45 AC40252B
46 35497491
47 424E4407
48 D2F15996
49 A5F66900

轉者:研究表明,檔名與CRC32無關。壓縮後大小和本文範疇貌似無關

很明顯,沒有重複的。(上面是ANSI編碼的時候測試的,UTF-8的肯定和這個不一樣。)

轉者:UFT-8的BOM頭影響。實際UTF-8與ANSI一致

解決問題:根據上面列出的表格,圖片中CRC32為13792798的txt文字文件的內容為23。

反破解方法,在文字中加入其它任意文字即可。呵呵…