攻防世界misc高手進階篇教程(6)

halo

簡單的base64解密會出現奇怪的字符

import string

from base64 import *

b=b64decode("aWdxNDs1NDFSOzFpa1I1MWliT08w")

data=list(b)


for k in range(0,200):

    key=""

    for i in range(len(data)):

        key+=chr(ord(data[i])^k)

print (key)

跑出來的結果有一個沒有特殊符號

picture3

先用binwalk -e 分解出來

然後我們直接用stego.txt跑出結果即可

def get_base64_diff_value(s1, s2):
    base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
    res = 0
    for i in xrange(len(s1)):
        if s1[i] != s2[i]:
            return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
    return res

def solve_stego():

    with open('stego.txt', 'rb') as f:
        file_lines = f.readlines()

    bin_str = ''
    for line in file_lines:
        steg_line = line.replace('\n', '')
        norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
        diff = get_base64_diff_value(steg_line, norm_line)

        pads_num = steg_line.count('=')
        if diff:
            bin_str += bin(diff)[2:].zfill(pads_num * 2)

        else:
            bin_str += '0' * pads_num * 2

    res_str = ''

    for i in xrange(0, len(bin_str), 8):

        res_str += chr(int(bin_str[i:i+8], 2))
    print res_str

solve_stego()

regexpire
from pwn import *
import rstr
import exrex
from time import sleep
import re

# conect to server
r = remote('misc.chal.csaw.io', 8001)

# Print the question string
print r.recvline()

# Counter
i=1

while True:
	# Recieve the regex pattern
    reg = r.recvline()[:-1]
    print "%d -------\n"%i
    print reg
    print "-------\n"
    ans=rstr.xeger(reg).replace('\n','') # Remove newlines!
    # ans=exrex.getone(reg).replace('\n','')  # Another possible option
    r.sendline(ans)
    i+=1
    sleep(0.2)

flag{^regularly_express_yourself$}

Crc

通過crc32爆破

然後把三個密碼依次連接起來,後面發現密碼是forum_91ctf_com_66

二進制轉換成文本,然後保存到html文件中,打開獲得二維碼,掃描即可

A-Weird-C-Program

下載源代碼時,會注意到它具有所有這些奇怪的間距。

製表符本來是1,空格是0

再用python即可

打開電動車

是音頻文件,直接打開

短的一段表示0,長的一段表示1

得到01110100101010100110

加上flag

sctf{01110100101010100110}

Hong

用binwalk分析發現有很多文件

foremost hong.mp3分解出來

直接就發現了flag

BCTF{cute&fat_cats_does_not_like_drinking}

神奇的壓縮文件

解壓後使用 AlternateStreamView 掃描發現了 flag.zip 文件

壓縮包註釋段隱藏信息

將空格與TAB組成的空行轉換爲01

得到字符串110110011000111110100110011011110 110110110110010001100110110110011 01110110111110010011001001111101

進行ASCII轉換,得到flag:lctf{6d3677dd}

北京地鐵

根據題目描述,應該是AES-ECB加密,目前通過低位隱寫拿到了base64(ciphertext),密鑰16bytes未知.hint:Color Threshold 則通過gimp2查看Color Threshold,等到hint:發現魏公村顏色不對,根據提示,可能是密鑰。

from Crypto.Cipher import AES
import base64

aes_instance = AES.new(b'weigongcun'.ljust(16, b'\0'), AES.MODE_ECB)

cipher = base64.b64decode('7SsQWmZ524i/yVWoMeAIJA==')

plaintext = aes_instance.decrypt(cipher)

print(plaintext)

7-2

解壓後發現大堆文件名,嘗試base64

ls|tr -d ' '|base64 -d

發現<p@<uk'2Pz1KFAN߬r9HSLainidexingzhuang>$Il{arGks!gb|5 愛你的新裝字樣,定位到文件YWluaWRleGluZ3podWFuZw

cat後得到00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 94 22 42 91 23 {82 42 82 52 63 21 42 22 73 21 }00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

鍵盤密碼 + 凱撒得到flag

wdflag{ylyoselfve}

Clemency

IDA的反彙編腳本

https://github.com/cseagle/ida_clemency
將腳本放入文件夾下,重新打開進行反彙編即可。

flag{I_love_cLEMENCy,so_I_want_to_share_it_with_you}

Keyes_secret

首先找出兩個大括號之間的位置

鍵盤字母連起來對應另一個字母:

得到flag:FLAG{ISCC-KEYBOARD-CIPHER}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章