WEB篇

重定向的海洋

web1

😁题目名叫做重定向,第一反应是抓包

打开谷歌浏览器F12开发者工具抓包,点击开始遨游,会依次进入第一关、第二关、第三关。

web2

web3

web4

最初没有发现什么有用的东西,本以为需要修改这个游戏代码通过才能得到flag,最后看到后面的js结果才知道和游戏没有任何关系。

我们打开Sources选项卡查看网页文件,发现这个js很可疑,是个颜文字

web5

发现最后有一个多余的不匹配的符号: (‘_’)

删除后直接放到Console里转换:

1
2
3
4
5
6
7
(function anonymous(
) {
leave=function ()
{console.log("$part3:4fun");
location.href='flag.php';
location.href='no_flag.html';}
})

发现可疑符号:$part3:4fun

根据上述结果,我们打开路径为flag.php的网页发现:

1
2
3
4
5
6
7
SUSCTF{__}
<?php
error_reporting(0);
echo "SUSCTF{".$part1."_".$part2."_".$part3."}";
echo "<br>";
show_source(__FILE__);
?>

发现Flag,Flag为三个变量的组合

我们已知了part3,剩下的任务是寻找part1和2

回到抓包的地方搜索part,成功找到part2:

web6

紧接着,继续寻找,在第一关的mate里有part1的注释:

web7

最后,将三个part组合起来即可得到Flag。

Reverse篇

easyre

打开easyre.exe发现是个控制台应用,里面什么都没有,随便输入两个数据后软件自动关闭

直接拖到ida64中分析。(软件是64位程序)

easyre1

来到ida后,找到main函数,按F5查看源代码。

直接看到Flag,很简单签到题,打开就知道flag。

easyre1

通过分析源码我们也可以发现,只要输入两个相等的整数也可以获得Flag。

内涵软件

打开软件是个控制台程序,调戏我们了一下,结果没有输出Flag。

neihan1

直接打开ida找到main函数调试:

neihan2

跟着main函数,顺着往下找,继续看main_0函数:

neihan3

Flag是明文的,又是一道送分的签到逆向题。

根据代码分析,输出Y和N都会被调戏。输入Y会给出提示到吾爱破解或者使用IDA寻求工具。

Transform

打开软件是一个控制台应用,让我们输入密码:

直接拖入ida64(64位):

transform1

找到main函数,查看代码:

transform2

根据分析,整个程序的流程是将输入的数据转换后与另一个数据比对,如果一致就输出Flag。

输入的字符串被保存在Str中,Str是一个32位长度的字符串。

我们设a = byte_414040,b = dword_40F040, c = byte_40F0E0。

程序流程:

a[i] = str[b[i]];

a[i] ^= b[i];

c[i] == a[i] 则输出flag,flag即str。

通过逆向分析得知:

c = a

a = c ^ b

str[b[i]] = a[i]

根据上述分析,写出如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>

using namespace std;

int main()
{
char flag[34] = { 0 };
int cnt = 0;

int a[100] = {0};

int b[] = {9, 0X0A, 0X0F, 0X17, 7, 0X18, 0X0C, 6, 1, 0X10, 3, 0X11, 0X20,
0X1D, 0X0B, 0X1E, 0X1B, 0X16, 4, 0X0D, 0X13, 0X14, 0X15, 2, 0X19,
5, 0X1F, 8, 0X12, 0X1A, 0X1C, 0X0E, 0};

int c[] = {0X67, 0x79, 0x7B, 0X7F, 0X75, 0X2B, 0X3C, 0X52, 0X53, 0X79, 0X57,
0X5E, 0X5D, 0X42, 0X7B, 0X2D, 0X2A, 0X66, 0X42, 0X7E, 0X4C, 0X57,
0X79, 0X41, 0X6B, 0X7E, 0X65, 0X3C, 0X5C, 0X45, 0X6F, 0X62, 0X4D,
0X3F, 0};

for (int i = 0; i < 33; i++)
{
cnt++;
a[i] = c[i] ^ b[i];
flag[b[i]] = a[i];
}

flag[cnt] = '\0';

cout << flag << endl;

return 0;
}

直接运行即可输出Flag。

reverse

电脑OD暂时用不了。

思路:打开后让输入Flag。

打开OD跟踪到指定字符串位置。

发现疑似Flag字符串,执行了函数对字符串进行替换字母。

替换后的结果即Flag。

Misc篇

二维码

文件是个png,打开显示二维码,扫描得到:Flag is here

qr1

拖进010editor分析一下,发现pk关键字,是压缩文件。

qr2

修改后缀为zip,发现有个txt文件,文件名4number。

qr3

由此可知,压缩包密码是四位数,使用软件爆破即可。

打开txt即得到正确Flag。

基础破解

题目说压缩包是四位数字加密。

直接使用软件进行zip密码爆破打开txt即得到Flag。

jichu

大白

题目说:看不到图?是不是屏幕太小了。

文件是一个png图片,打开发现不是很完整。

dabai

按照经验推断,应该进行CRC校验修改宽高。

在kali打开会提示IDHR:CRC error。

即可以通过算法计算出高度,也可以自己随机改高一点。

修改后打开图片即可看到Flag。

N种方法解决

文件是一个无法执行的exe文件,拖入010editor分析。

得到一个base64加密的图片:

1
data:image/jpg;base64,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

使用在线工具还原编码得到一张二维码,扫描得到Flag。

base64

爱因斯坦

文件是一个爱因斯坦的照片,拖入010edito分析。

发现PK关键字,里面有个flag.txt

aiyinsitan1

aiyinsitan2

又需要解压密码:

aiyinsitan3

我们打开图片的属性可以看到:

aiyinsitan4

这就是压缩包的密码,输入密码打开txt即得到Flag。

神秘龙卷风

题目说四位数字密码,使用工具爆破压缩包密码。

打开txt发现一堆brainfuck语言的代码。

直接使用工具在线运行即得到Flag:

brain

brain2

wireshark

文件是一个wireshark的包。

打开后会有一堆数据包,我们主要分析tcp和http。

tcp好像没有太多有用的信息,而http里有一些关于登录的参数。

仔细看可以发现,只有一个post包。

打开一看,果然是登录包,密码就在里面:

wireshark)