Skip to content

Latest commit

 

History

History
116 lines (80 loc) · 3.12 KB

File metadata and controls

116 lines (80 loc) · 3.12 KB

Writeup for cheap cipher (revenge)

@rtlmovememory

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

@mpyw

<?php

$cipher = "rKrUl+/clKHb4u/sm6sgnaPfnO/XkO=ewqPU45bRjp4gwa7NntoM467Onu/enqPRlakgj6Egjp0e1gAA";
$table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

echo base64_decode(strtr($cipher, $table, strrev($table)));

@encry1024

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".