CTF show萌新題系列

2021-10-03 04:33:03 字數 3576 閱讀 2474

0x01 萌新_密碼1

# author:  羽

defhex_to_str()

:while

true

: s =

input

("輸入要轉成字串的16進製制(輸入空字串退出):"

)if s=='':

break

k=''try

:for i in

range(0

,len

(s),2)

: j = s[i]

+s[i+1]

k+=chr(

int(j,16)

)print

(k)except exception as err:

print

("輸入有誤:"

,end="")

print

(err)

defstr_to_hex()

:while

true

: s =

input

("輸入要轉成16進製制的字串(輸入空字串退出):"

)if s=='':

break

k=''for i in s:

k+=str(

hex(

ord(i)))

k= k.replace(

"0x",""

)print

(k)def

main()

:print

('''

*****************************************

* 1.字串轉16進製制 *

* 2.16進製制轉字串 *

*****************************************

''')while

true

:

k =input

("請輸入要使用功能的序號:"

)if k==

'1':

str_to_hex(

)break

if k==

'2':

hex_to_str(

)break

else

:print

("輸入有誤請重新輸入!!!"

)if __name__==

"__main__"

: main(

)

(如有錯誤還望指正,如有疑問還望提出)2.base64解碼字串

python上有base64模板可以直接匯入後解密

3.柵欄密碼解密

這裡給出乙個方便的工具

0x02萌新_密碼2

密文為 rdcvbg 2qase3 6tghu7,在鍵盤上將每段字元中的字串連起來,包圍住的字元即為flag

0x03萌新 密碼3

摩斯密碼解密後為 morse is cool but bacon is cooler mmddmdmdmmmdddmdmddmmmmmmmddmdmmddm

提示我們用培根,培根密碼是abab形式的,所以提取出後半段mmddmdmdmmmdddmdmddmmmmmmmddmdmmddm,我們將m替換為a,將d替換為b解密培根密碼即可解出flag。

0x04萌新 隱寫2

考察壓縮包密碼爆破,提示中說了密碼為生日,而是90後的生日,那麼爆破的範圍就大大縮小了,大致為900101到19991231,得到密碼即可獲得flag

0x05萌新 隱寫4

題目中提示了沒有什麼用,那麼線索應該再word文件中。在選項裡有乙個隱藏文字我們直接打上勾即可。

0x06萌新 密碼#4

首先得到一串base64碼直接解碼,提示說比base64還大的base,那我們用最笨的方法都嘗試一遍,普遍的有base85 base91 base92,當然除了那個**以外,python也可以用base64.a85decode()解碼,前提是匯入base64。

0x07萌新 隱寫3

直接開啟即可得到flag

0x08雜項1

md5解密,題中給出了解密的**,這裡就不多說了。

0x09雜項2

解壓出 用010editor檢視,在末尾得到flag。

0x10萌新 雜項3

根據提示可得到如下關鍵數字 97 10 01 05,而且銀行卡密碼是六位數,所以排列組合多試幾次就可以了。得到密碼為 971015。

0x11雜項4

依舊是道壓縮文件密碼爆破,直接用上面的工具即可。

0x12雜項5

提取文件中最後一行所有的大寫字母即可得flag。別忘了兩個花括號。

0x13雜項6

考察偽加密。16進製制位元組搜尋504b0102,修改504b0102後的第五位(即09)為00再次開啟即可。

0x14雜項7,雜項8

修改為正確的寬高即可得flag,這裡給出爆破寬高的指令碼:

import struct

import binascii

import os

m =open

("flag.png"

,"rb"

).read()k=

0for i in

range

(5000):

if k==1:

break

for j in

range

(5000):

c = m[12:

16]+ struct.pack(

'>i'

, i)

+ struct.pack(

'>i'

, j)

+m[24:29

] crc = binascii.crc32(c)

&0xffffffff

if crc ==

0x889c2f07

: k =

1print

(hex

(i),

hex(j)

)break

對於不同的題需要修改的地方為檔案路徑和crc的值。,紅線標註第一第二處分別為的寬高16進製制,第三處則為crc的值。

0x15 雜項10

把縮寫就能看出來了 是 」我好喜歡你"

0x16雜項11

0x17 隱寫1

png檔案頭修改,正常的格式檔案頭為89 50 4e 47 0d 0a 1a 0a,將99改為89即可得到flag。

0x18隱寫2

jphs隱寫,用給出的工具,然後密碼為空。

萌新的題解 洛谷基礎題

p5710 深基3.例2 數的性質 題目描述 一些數字可能擁有以下的性質 性質 1 是偶數 性質 2 大於 4 且不大於 12。小a 喜歡這兩個性質同時成立的數字 uim 喜歡這至少符合其中一種性質的數字 八尾勇喜歡剛好有符合其中乙個性質的數字 正妹喜歡不符合這兩個性質的數字。輸入格式 輸入乙個數字...

ctfshow 紅包題第四彈

進去後發現就乙個輸入框,提示我們輸入flag 不過輸了後沒反應,那麼審查元素看看 可以發現是呼叫的ctfshow 這個函式 在chrome的console視窗除錯下這個函式看下它幹嘛的 格式化下 方便審計 可以發現這是把js 變數名16進製制編碼後再把 邏輯複雜化 好我們來讀下這串 首先定義乙個變數...

ctfshow 紅包題 武穆遺書

其中buffer是你輸入的,和v4進行比較。v4首先是指向堆中的乙個指標,後來sub 401390對v4中寫值。然後就是各種亂七八糟的加密了。這個時候我就想,我能不能直接拿到比較的時候v4指向的內容是什麼呢?我就想到了od,拖進去發現不能除錯,應該是加了反除錯,我又試了試xdbg,發現也打不開。然後...