[ACTF新生赛2020]fungame 题解

简介: [ACTF新生赛2020]fungame 题解

开辟了一块内存空间,然后有两个函数,进入第一个跟一下

将输入的字符串进行异或,后比较, 解一下

y1=[0x23,0x61,0x3e,0x69,0x54,0x41,0x18,0x4d,0x6e,0x3b,0x65,0x53,0x30,0x79,0x45,0x5b]
y2=[0x71,0x04,0x61,0x58,0x27,0x1e,0x4b,0x22,0x5e,0x64,0x03,0x26,0x5e,0x17,0x3c,0x7a];
flag=""
for i in range(0,len(y1)):
    flag+=chr(y1[i]^y2[i])
print(flag)
print(len(flag))

得出Re_1s_So0_funny!

长度是16

不是flag,看一下函数

这其实是flag的第一部分

将16位flag赋值到12位数组

这其实是一个利用栈溢出漏洞,调用了另一个函数,我们知道了栈溢出后填入的地址是40233D,增地址就是栈溢出后我们输入的第二部分,就是flag的第二部分

跟踪x,找到了调用的这个函数

进入这个函数之后,再输入了一个字符串,进行了base64加密,解密之后得到第三部分flag

WP

import base64
y1=[0x23,0x61,0x3e,0x69,0x54,0x41,0x18,0x4d,0x6e,0x3b,0x65,0x53,0x30,0x79,0x45,0x5b]
y2=[0x71,0x04,0x61,0x58,0x27,0x1e,0x4b,0x22,0x5e,0x64,0x03,0x26,0x5e,0x17,0x3c,0x7a];
flag=""
for i in range(0,len(y1)):
    flag+=chr(y1[i]^y2[i])
addr=[0x3d,0x23,0x40]
for i in range(len(addr)):
    flag+=chr(addr[i])
a="YTFzMF9wV24="
print(a.encode())
flag+=base64.b64decode(a.encode()).decode()
print(flag)

 

相关文章
|
5月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
114 5
|
存储
[ACTF新生赛2020]SoulLike 题解
[ACTF新生赛2020]SoulLike 题解
182 0
|
10月前
|
算法 搜索推荐 程序员
第五十二练 冒泡排序实现
第五十二练 冒泡排序实现
56 0
|
10月前
|
数据安全/隐私保护
BUUCTF [ACTF新生赛2020]outguess 1
BUUCTF [ACTF新生赛2020]outguess 1
182 0
BUUCTF [ACTF新生赛2020]outguess 1
|
10月前
|
数据安全/隐私保护
BUUCTF [ACTF新生赛2020]swp 1
BUUCTF [ACTF新生赛2020]swp 1
216 1
|
定位技术
[ACTF新生赛2020]Oruga 题解
[ACTF新生赛2020]Oruga 题解
124 0
|
存储
[ACTF新生赛2020]easyre 题解
[ACTF新生赛2020]easyre 题解
430 0
|
存储 人工智能 算法
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
|
存储 人工智能 BI
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
|
人工智能 Java C++
AcWing - 寒假每日一题2023(DAY 1——DAY 5)
AcWing - 寒假每日一题2023(DAY 1——DAY 5)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等