You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
import base64
encoded = "rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA"
decoded = ["?"] * len(encoded)
table_a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
table_b=table_a[::-1]
for i in range(len(encoded)):
for k in range(len(table_a)):
if encoded[i] == table_a[k]:
decoded[i] = table_b[k]
decoded = base64.b64decode("".join(decoded))
print decoded
require 'base64'
table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
print Base64.decode64("rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA".tr(table, table.reverse))
$ ruby solve.rb
Well done! The flag is "All your Base64 are belong to us".
@ctf_shiho
Thu Sep 1 16:14:14 JST 2016 ~/ctf/permanent/akictf/cheap_cipher_revenge 100%
> cat solve.py
import string
d = 'rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA'
# base64 encode table
table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
print d.translate(string.maketrans(table, table[::-1])).decode("base64")
Thu Sep 1 16:14:18 JST 2016 ~/ctf/permanent/akictf/cheap_cipher_revenge 100%
> python solve.py
Well done! The flag is "All your Base64 are belong to us".
@omur4_t4t
1.base91 -> NG
2.[rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=]を後方に
[ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA]を前方に置き換え -> NG
3.[=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA]をrevして後方配置
[rKrUl+/clKHb4u/sm6sgnaPfnO/XkO]をrevして前方配置 -> NG
4.最後尾の[AA]は、最後尾にしか存在しないので[==]に置換すると考え文字置換
A->=
B->A
: :
+->9
/->+ -> NG
5.「[#2]って逆順だったよな~」と思いだし、base64使用文字を逆で文字置換
A->=
B->/
: :
/->B
=->A ->OK
実行コマンド
$ echo -n "rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA" | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\+\/\=/\=\/\+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA/' | base64 -d ; echo
Well done! The flag is "All your Base64 are belong to us".
$
@arik_ega
$ cat cheap_cipher_revenge.py
#!/usr/bin/env python
# -*- conding: utf-8 -*-
import base64
import string
s = 'rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA'
table = string.maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=','=/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA')
print base64.b64decode(s.translate(table))
$ python cheap_cipher_revenge.py
Well done! The flag is "All your Base64 are belong to us".