tags | title |
---|---|
CTF |
Crypto CTF 工具 |
https://www.slideshare.net/SiChenLin/simple-crypto
[TOC]
URL編碼 (又稱 Percent-encoding)
講義
-
ASCII control characters
-
Non-ASCII control characters
-
保留字元 (reserved characters)
-
未保留字元 (unreserved characters)
Shift cipher(=Transposition Cipher = Caesar Cipher)(https://planetcalc.com/1434/)
- Table
- Cipher Key
- Online tool
- 有key沒key都可以破解
- ASCII table
- 轉換
ord('A') # 65
ord('a') # 97
chr(97) # a
chr(65) # A
bin(20) # 0b10010 十進制轉二進制
oct(20) # 0o24 十進制轉八進制
hex(20) # 0x14 十進制轉十六進制
import base64
message = b'Hi CDPA owo' # plaintext
ciphertext = base64.b64encode(message)
plaintext = base64.b64decode(ciphertext)
Step by Step 高次方計算餘數之方法 CTF RSA 各種解法
from Crypto.Util.number import * #引入需要的套件
e =
n =
c =
fn = (q-1) * (p-1)
d = inverse(e, fn) # ed mod fn = 1
m = pow(c, d, n) # (c^d) % n
print(m)
print("---------------")
m = long_to_bytes(m)
print(m)
from Crypto.PublicKey import RSA #讀公鑰
from Crypto.Util.number import * #計算
key = RSA.importKey(open("PCTF/pubkey.pem" , "rb").read()) # 讀取 pubkey.pem
n = key.n
e = key.e
print(key.n)
print(key.e)
print("-----------")
#取密文
c = open("PCTF/flag.enc", "rb").read()
# print(c)
c = bytes_to_long(c)
# 用 factordb.com 因數分解
p = 275127860351348928173285174381581152299
q = 319576316814478949870590164193048041239
#歐拉函數
phi_n = (p-1) * (q-1)
#模反函數
d = inverse(e , phi_n)
#解密
m = pow(c, d, n)
print(long_to_bytes(m))
- Google 於 2017年發布 破解SHA-1的訊息
- SHA1 Shatteredhttps://shattered.io/
- 破解原理
- 破解教學
- SHA1 CTF writeup
-
Morse code(摩斯密碼) 教學影片: https://www.youtube.com/watch?v=EmXsSSHCnsI https://www.youtube.com/watch?v=o2W9nwwjIkY
-
JSFunk 將javascript語法轉換成 only with [ ] ( ) ! +
- john (in kali)
$ john -show shadow