2021某地区某行业ctf部分wp

整理文件翻出了半年前的东西,发一下
优化了一些脚本

简单的base64

sing me up

多次base64解码可得

with open('./sign_me_up') as f:
    data=f.read()

import base64
for i in range(1000):
    data=base64.b64decode(data)
    if b'flag' in data:
        print(data)
        break

findpass

压缩包末尾可见解压密码

winhex打开可得flag

treasure

py -2 vol.py -f memdump.mem imageinfo
py -2 vol.py -f memdump.mem --profile=Win7SP1x64 pslist

找到比较可疑的wordpad.exe,pid=2260

dump出来搜索flag字符串可得flag

py -2 vol.py -f memdump.mem --profile=Win7SP1x64 memdump -p 2260 -D ./

so easy

binwalk找到flag_enc.enc

pcap包内找到私钥

利用openssl中的rsautl -decrypt -in flag_enc.enc -inkey privateKey.pem解开加密文件

转字符得到flag

base

IDA打开,f5反编译可得

if判断中前两个判断比较了开头结尾必须为flag{},后两个函数的逻辑如下:

↑很明显的换表(若为字母,大小写互换),↓很明显的base64,题目名也提示了

显然为换表的base64,构造解密脚本:

import base64
import string

str1 = "Agf2zwz1BML0"

# new table
string1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/"
# original table
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

print (base64.b64decode(str1.translate(str.maketrans(string1,string2))))

或直接使用CyberChef

RE4

用jadx打开,看到被加密的Flag_en.dex文件,在\com\zhuotong\re4\MainActivity中找到encrypt(),为加密函数

该函数中调用的copy()如下,即Arr2 = Arr2[:i] + Arr,返回len(Arr2)

copy(bArr7, bArr, copy(bArr6, bArr, copy(bArr5, bArr, copy(bArr4, bArr, copy(bArr3, bArr, copy(bArr2, bArr, 0))))));

可以化简为Arr(key) = Arr2(p0) + Arr3(p8) + ... + Arr7(p48),且len=24
参考一文读懂 DEX 文件格式解析,由

for (int i = 0; i < length; i++) {
    bArr8[i] = (byte) (bArr8[i] ^ bArr[i % 24]);
}

Flag_en.dex的file size为812,整理如下:

p0^p0=c0    # 0x00000000
p8^p4=c4    # p4=0x30333500, get p8
p16^p8=c8   # known p8&c8, get p16
p32^p12=c12 # p32 (0x20) is file_size = 0x2c030000 (812,0x0000032c)
p40^p16=c16 # p40=0x78563412
p48^p20=c20 # p48 (0x30) is link_off = 0x00000000
...
p0^p48=c48  # known p48, get p0

构造脚本

from libnum import n2s
with open('Flag_en.dex','rb') as f:
    data=f.read()
d2=data.hex()

key=d2[96:104]                  #get p0
p=0x30333500
for i in range(8,24,8):
    p=p^int(d2[i:i+8],16)       #get p8,p16
    key+=hex(p)[2:].zfill(8)
key+='2c0300007856341200000000' #p32,p40,p48
key=list(bytearray.fromhex(key))

res=b''
for i in range(len(data)):
    res+=n2s(key[i%24]^data[i]) 
with open('Flag.dex','wb') as f2:
    f2.write(res)

base64解密得到flag

php审计

参考代码审计--变量覆盖漏洞 - CSDN,构造

?a=&b=

得到flag

异想天开

import base64
import requests

url = '---'
res = requests.session()
ans = res.put(url=url,data='message')
print (base64.b64decode(ans.content))

复盘-change3 (rsa)

题目所给数据如下

((p+q)**2-2*n)**2-2*n**2:
17139247138621108110267372649828533418536767737695221189424954618216205681656989058442648388579615342281074498947962467179493001033467280368001755022592040284145591971899754292757729801406703466930466132865207684683606404842800322519993820417418378189879981644278422056320391824566882101302880669164824372872695414099594788221695495466768308735871769176424176663804613579673554530738771506091097196368202954008781621005771653768707855527166341400343533394477500595097344817523894819666098466130018836342101856304138635276087319353852420418091592676597353097276029182048678208069022788143048026459865137033775245607522
n:
82069430046337681723021668559023589123940769063554004340280487288285378380254182514792585851158128608742772541626478941930664294394804225515969973481525739055677314229577494462978872000012015126021480270994845091961760866661624220447581088713787971734379095061608257022018325790244959854482040102912914748281
e:
65537
c:
51154595075485579698661275523886327267861447145097756788916619597786370655185140681805676237787193541416585725053869518921436458721099576961705517097277141697935014443532188355193626861003314681692350343325953306812886556917229436250774033481355385932974827110999243554731789150210339422185132833908785710846

由于已经给出
((p+q)^2-2n)^2-2n^2
易算出
((p+q)^2-2n)^2
只需将该式开方,得到的结果+2n,再开方,即可得到p+q

import gmpy2
# 计算平方结果
res = tmp+2*n**2
# 将该结果开方,计算(p+q)^2-2n
res = gmpy2.isqrt(res)
# +2n,得到(p+q)^2
res += 2*n
# 开方,得到p+q
res = gmpy2.isqrt(res)

由于n = p*qphi = (p-1)*(q-1) = pq-(p+q)+1,所以phi = n-(p+q)+1

又由于d = gmpy2.invert(e, phi)m=pow(c,d,n),则可得明文m

phi = n-res+1
d = gmpy2.invert(e, phi)
m = pow(c,d,n)

转字符串可得flag

libnum.n2s(int(m))
> b'flag{9988b6cef9cbf41624095f6d32fade05}'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 题目地址:https://buuoj.cn/challenges 0x01 MD5 密文e00cf25ad4268...
    Du1in9阅读 5,583评论 0 3
  • 0x01 异性相吸 题目提示 二进制读取,相互异或即可,nctf{xor_xor_xor_biubiubiu} 0...
    Du1in9阅读 268评论 0 1
  • WEB2 看源代码得flag 文件上传测试 找一张图片上传,截包改后缀名为.php得flag 计算题 F12修改输...
    a2dd56f6ad89阅读 18,490评论 0 2
  • 常见的术语: 肉鸡:被植入木马的电脑或者是服务器等联网设备。软件木马:远控软件的被控端(exe文件)脚本木马:脚本...
    Smi1e_阅读 3,846评论 0 4
  • 第一题:神秘来信 签到题,没什么好说的 判断成立即可 401353 第六题:消失的岛屿 main函数 逻辑非常简单...
    丿feng阅读 1,374评论 0 3