日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[Bugku][Crypto][CTF][2020]Crypto 1-20 write up

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Bugku][Crypto][CTF][2020]Crypto 1-20 write up 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

工具:CaptEncoder
https://www.freebuf.com/sectool/188397.html
Convert:https://pan.baidu.com/s/17YPXfvBHl_HyA00AffTBvg 密碼:skqw
推薦網(wǎng)站:http://ctf.ssleye.com/

Crypto 1
關(guān)鍵字: 莫斯 /.-
步驟:莫斯解碼得:FLAG%u7bD3FCBF17F9399504%u7d,%u7b web解碼得{,%u7d web解碼得}。中間的大寫轉(zhuǎn)換為小寫,組合起來就是flag。
莫斯轉(zhuǎn)碼:https://www.atool99.com/morse.php

Crypto 2
關(guān)鍵字: 柵欄密碼 兩個(gè)一組
步驟:在線柵欄 直接解密

Crypto 3
關(guān)鍵字: Ook.
步驟: ook解碼,https://www.splitbrain.org/services/ook在線工具,直接ook!to text

Crypto 4
關(guān)鍵字: [±<>] brainfuck
知識(shí)點(diǎn): brainfuck語(yǔ)言用> < + - . , [ ]八種符號(hào)來替換C語(yǔ)言的各種語(yǔ)法和命令
步驟:https://www.splitbrain.org/services/ook,然后Brainfuck to Text

Crypto 5
關(guān)鍵字: 莫斯密碼
知識(shí)點(diǎn):
步驟:查表一一對(duì)應(yīng) 或者在線 http://ctf.ssleye.com/morse.html
https://blog.csdn.net/qq_42777804/article/details/90742966

Crypto 6
關(guān)鍵字:base64
步驟:AA和==相似 A超出base64范圍
移4位后 base64解碼

import base64 #'miwen.txt' miwen = open('miwen.txt').readline() res = '' # 存儲(chǔ)結(jié)果 for i,enu in enumerate(miwen):res += chr(ord(enu)-4) print('ascii碼偏移后結(jié)果:'+res) res = base64.b64decode(res).decode() print('base64解碼后結(jié)果:'+res)

Crypto 7
關(guān)鍵字: 移位密碼
步驟:按照 2 1 6 5 3 4移位

# 此腳本用來根據(jù)順序調(diào)整密文以得到明文 miwen = open('miwen.txt').readline() tem = '' # 臨時(shí)存儲(chǔ) resList = [] # 結(jié)果數(shù)組 res = '' # 最終結(jié)果 for i,enu in enumerate(miwen): # 先把密文每六個(gè)一組分好tem += enuif len(tem)==6 or i == len(miwen) - 1:resList.append(tem)tem = '' for i in range(len(resList)):res += resList[i][1]+resList[i][0]+resList[i][4]+resList[i][5]+resList[i][3]+resList[i][2] print(res)

Crypto 9 一段base64 Hex to text
步驟:1.Base64解密 2.unescape 3.Hex to text .4.unescape
5.ascii碼轉(zhuǎn)字符 6.Decode HTML

https://blog.csdn.net/qq_40980391/article/details/79194128

Crypto 8 .!?
關(guān)鍵字: short ook編碼
步驟:

Crypto 10
關(guān)鍵字:累次加密

步驟:看到這串字符…像常見的提交flag{xxx}格式…
先看一下ascii的編碼吧,試一下是否和flag有關(guān)系~
gndk的10進(jìn)制的ASCII碼分別是:103 110 100 107
flag的10進(jìn)制的ASCII碼分別是 :102 108 97 103
發(fā)現(xiàn)ASCII以此減少 1 2 3 4,所以以此類推后面會(huì)繼續(xù)減少…

# 此腳本用于解決累次加密 miwen = open('miwen.txt').readline() for j in range(10):for i,enu in enumerate(miwen):print(chr(ord(enu)-i-j),end = '')print()

Crypto11 托馬斯.杰斐遜
步驟:寫腳本進(jìn)行移位
含有bugku的即為答案
https://www.cnblogs.com/0yst3r-2046/p/11810574.html

Crypto 12 告訴你個(gè)秘密
知識(shí)點(diǎn): 鍵盤密碼
步驟:1. hex后 base64
2.r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM 圍著的字母大寫
flag{TONGYUAN}

Crypto 13 不是md5
關(guān)鍵字: hex
666c61677b616537333538376261353662616566357d

Crypto 14 貝斯家族
關(guān)鍵字: base91
知識(shí)點(diǎn): base91字符較多

步驟:http://www.atoolbox.net/Tool.php?Id=935
@iH<,{bdR2H;i6*Tm,Wx2izpx2!

Crypto 15 python(N1CTF)
知識(shí)點(diǎn): Feistel加密 DES算法
步驟:https://www.cnblogs.com/0yst3r-2046/p/12123653.html

Crypto 16 進(jìn)制轉(zhuǎn)換
關(guān)鍵字:
步驟: b開頭是二進(jìn)制,o開頭是八進(jìn)制,d開頭是十進(jìn)制,x開頭是十六進(jìn)制。

# 此腳本針對(duì)不同進(jìn)制字符,統(tǒng)一轉(zhuǎn)換成十進(jìn)制,再轉(zhuǎn)成字符 miwen = open('text.txt').readline().split(' ') res = '' for i in range(len(miwen)):if miwen[i][0] == 'b':res += chr(int(miwen[i][1:],2))elif miwen[i][0] == 'd':res += chr(int(miwen[i][1:],10))elif miwen[i][0] == 'o':res += chr(int(miwen[i][1:],8))elif miwen[i][0] == 'x':res += chr(int(miwen[i][1:],16)) print(res)

Crypto 17 affine加密
關(guān)鍵字: 仿射加密
知識(shí)點(diǎn): affine加密,仿射加密,其實(shí)也就是明文和密文之間有一個(gè)一次函數(shù)變化,y=kx+b,只不過為了讓y能轉(zhuǎn)換成對(duì)應(yīng)的密文,要對(duì)kx+b取余。
步驟:
一般常用的字符集就是a-z,分別對(duì)應(yīng)0-26。
并且,一次函數(shù)能用于做密碼是因?yàn)樗袀€(gè)特性,就是每一個(gè)x對(duì)應(yīng)唯一的y,所以為了保證取余之后也能保持這種特性,就要求k與字符集的大小(這里是26)互質(zhì)。
兩種方法,一種是用解密函數(shù),一種是暴力破解,哪種都可以。

# 此腳本用于暴力破解仿射加密 # 加密函數(shù):y=17x-8 # 密文: szzyfimhyzd miwen = "szzyfimhyzd"def baoLi(miwen): # 暴力解密miwen = miwen.lower() # 全部轉(zhuǎn)換成小寫res = ''for i,enu in enumerate(miwen): # 遍歷每一個(gè)字母for j in range(26): # 遍歷字母表if (17 * j - 8) % 26 == ord(enu) - 97: # 比對(duì)加密結(jié)果res += chr(j + 97)break # 成功直接跳出return res #仿射密碼解密 #改進(jìn)歐幾里得算法求線性方程的x與y def get(a, b):if b == 0:return 1, 0else:k = a //bremainder = a % bx1, y1 = get(b, remainder)x, y =y1, x1 - k * y1return x, y def jiemi(miwen): # 解密函數(shù)解密miwen = miwen.lower()res = ''k = 17b = -8#求a關(guān)于26的乘法逆元x, y = get(k, 26)a1 = x % 26for i, enu in enumerate(miwen):res += chr((a1 * (ord(enu)- 97 - b) % 26)+ 97)return resprint("暴力解密結(jié)果:"+baoLi(miwen)) print("解密函數(shù)解密:"+jiemi(miwen))

Crypto 18 Crack it
關(guān)鍵字: shadow join
步驟:https://blog.csdn.net/Onlyone_1314/article/details/89287327?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-5.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-5.not_use_machine_learn_pai

Crypto 19 rsa
關(guān)鍵字: RSA
知識(shí)點(diǎn):

步驟:
1.給出了N、e、密文,RsaCtfTool把N分解成大素?cái)?shù),求出p、q
2.知道p、q,求出d后,解密函數(shù)是M =C^D mod N
https://blog.csdn.net/shenzhang7331/article/details/84311280
最后一行修改 print(n2s(m))

Crypto 20 來自宇宙的信號(hào)
關(guān)鍵字: 銀河字母

步驟:百度搜索銀行字母 一一對(duì)應(yīng)

總結(jié)

  • 有兩種符號(hào)組成,每幾個(gè)一組,每組符號(hào)個(gè)數(shù)不一定相同的加密結(jié)果,考慮摩斯密碼;
  • 每組有五個(gè)字符,一共有三種類型的字符,可能是short ook加密,一般是.!?這三種字符;
  • 每組有五個(gè)字符,一共有七種類型的字符,可能是brainfuck加密,一般是±[]<>.這七種字符;
  • \123\123\123,類似的反斜杠加數(shù)字的組合,是escape加密結(jié)果;
  • &#102;&#55;,類似的組合是encode HTML的結(jié)果;
  • &#x26;&#x23;,類似的組合是encode HTML的結(jié)果;
  • \u0053\u0074,類似的組合是escape加密結(jié)果;
  • \u0053\u0074,類似的組合是escape加密結(jié)果;

參考博客:https://www.cnblogs.com/qiaowukong/p/13657062.html

總結(jié)

以上是生活随笔為你收集整理的[Bugku][Crypto][CTF][2020]Crypto 1-20 write up的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。