江蘇省 領航杯部分wp

2021-08-29 13:45:52 字數 3398 閱讀 4067

只能說這比賽平台**,題目**簡單記錄一下,畢竟自己也做了好久

開啟程式是下黑白棋,要戰勝ai才能獲得flag。

利用ollydebug開啟,找到跳入,單步步入真正的程式,然後中文搜尋得到flag。

利用ida開啟能夠很清楚的看明白邏輯,encode函式和judgement函式都是註明了的。base加密自定義table。

exp:

#!/usr/bin/env python

#_*_coding:utf-8_*_

import base64

import string

base64_enc_table=string.ascii_uppercase+string.ascii_lowercase+"0123456789"+"\\"+"+"

base64_enc="nseky2sjmiuq9tf/beilajxawpt07v+pwx6lfgg3zmohk4y8uqhrz1odc5ncrdvb"

v7 = 'x4dpxqgp'

v8 = 'uwrtcmst'

v9 = 'ryotcbr9'

v10 = 'fjk9ubot'

v11 = 'cwlp5alp'

v12 = 'rfrt1mrt'

v13 = '=z3w'

flag_enc=v7[::-1]+v8[::-1]+v9[::-1]+v10[::-1]+v11[::-1]+v12[::-1]+v13[::-1]

print flag_enc

base_flag=""

for i in flag_enc:

if i=="=":

base_flag+=i

else:

print i

base_flag+=base64_enc_table[base64_enc.index(i)]

print base64.b64decode(base_flag)

ida開啟之後發現異或,但是根據題目提示do you find it繼續往下看,發現if判斷後的執行。對k進行爆破

exp:key_word = "stuvwxyz{}abcdefghijklmnopqrstuvwxyz_!abcdefghijklmnopqr"

key_list = [0x1f, 0x3a, 0x1d, 0x07, 0x1c, 0x14, 0x0d, 0x10, 0x08, 0x3d, 0x10,0x0a, 0x23, 0x0d, 0x10, 0x37, 0x0a, 0x23, 0x3e, 0x07, 0x20, 0x04,0]

test_key = [33, 89, 145, 201, 5, 61, 117, 173, 229]

tempstr_list =

key = 0

forturninrange(10000000):

tempstr = ""

k += 0.1

fortemp_keyinkey_list:

temp_key = int(temp_key * k) %56

tempstr += key_word[temp_key]

if"flag"

intempstrandtempstrnotintempstr_list:

print(tempstr)

input("")

同樣的爆破思路

t1 = [17, 19, 27, 55, 5, 11, 0, 6, 54, 52, 14, 20, 26, 0, 17, 4, 26, 18, 12, 0]

t2 = "stuvwxyz{}abcdefghijklmnopqrstuvwxyz_!abcdefghijklmnopqr"

res = [199, 235, 202, 228, 200, 235, 195, 220, 212, 191, 110, 186, 205, 107, 10]

for i in range(20):

for j in range(56):

res = ''

for k in range(20):

res += t2[(t1[(k + i) % 20] + j) % 56]

if res[4] == "

原題:***g76673250

根據符號鏈結找到原題

flag:hctf

key利用idc指令碼可以輸出,利用幾個key一google就出現了原題

flag

利用winhex開啟

從中分離出zip壓縮包

利用zip修復工具修復後進行解壓

得到pdf檔案,同樣利用工具修復

最後再解壓檔案中找到flag

更改了crc校驗值,得到乙個比較清晰的圖

利用stegsolve

然後進行對比得出flag

4cffd79dc13d2b4d515e8e87a79b08d8

解壓指令碼解壓出檔案發現隱藏的flag.txt

最後對其中的文字進行頻率分析

嘗試幾次後得到flag

cdtuhiyjnsvkbemo

護網杯原題,遲來的簽到

社會主義加密?

enflag1 = 'admin13trat0r'

enflag2 = '4331d3b4e9431e7'

flag = ''

for i in range(len(enflag1)):

if ord(enflag1[i]) == 97 :

flag += chr(122)

elif ord(enflag1[i]) == 65 :

flag += chr(90)

else:

flag += chr(ord(enflag1[i]) - 1)

print flag

#本身為數字的就不需要改

#第二個就是將數字倒置

#第二個字串進行了順序調換

利用word文件進行自負的替換最後出了

t0o0o0o0o0p______1m_h4v1ng_fun_r1ght_n0w_4r3_y0u_h4v1ng_fun______k3k!!!

利用社工字典生成器,生成字典

字典攻擊得到密碼為xiaoming_22

得到裡面的flag檔案

1a3dcc6272c5ed3531d1ea1dfc3b8cec

2017江蘇省賽賽後感想

江蘇省賽感想 凌曉此次江蘇省賽,心情比較激動,a題時頭腦不是很清醒,很冷靜,但是組織安排還是比較合理,a題本來以為是水題,但看完題目以後覺得不簡單,於是,此時沒有過多的去糾結a題,隊友們果斷跟榜,a出兩題。我在一邊想a題,後來覺得自己演算法會t就放棄了。然後一起在想h,e題,h題一開始有點想法,但是...

2017 江蘇省賽JSCPC H 貪心,prim

給你一棵樹,兩兩節點間有乙個距離ci c i,現在要重建地圖,任意兩個頂點間的花費是他們之間的最短路,建最大生成樹求花費.這題比賽的時候沒有做出來,賽後看題解原來很簡單,想象prim的建樹過程每次找剩餘邊集合中的最大距離.顯然我們首先找到直徑v0 v1 v0,v1 肯定作為第一條邊然後照剩餘點,對於...

江蘇省10大IT培訓機構排行榜

no1華育國際 揚州 no2北大青鳥 中博 no3華育國際 南京 no4達內科技 南京 no5北大青鳥 南京 no6東方標準 無錫 no7南京索迪 南京 no8安艾艾迪 無錫 no9華育國際 蘇州 no10 北大青鳥蘇州 經歷了08 年的經濟危機,09年最受青睞的職業在招聘 調查中出爐,銷售遙遙領先...