感觉这种比赛蛮适合我这种新手入门的,对新手很友好,各种详细的提示等等,特此记录总结一下,希望也可以帮助到想要入门学习 CTF 的小伙伴,二进制部分的 Write-up我尽快补上去 没错,又咕咕咕了。

前言

感觉这种比赛蛮适合我这种新手入门的,对新手很友好,各种详细的提示等等,特此记录总结一下,希望也可以帮助到想要入门学习CTF的小伙伴。

web

seu_wlan level_1 50分

let's f**k the fake seu_wlan!
第一关 考点:查看源码+电脑模拟手机
推荐工具:firefox or chrome
Hint:只有手机能看到flag

思路

打开网址是东南大学的校园网登录界面, 浏览器审查元素 调整为手机界面摸索,然后源码中搜素flag 关键词。

解题

15383612134222.png

flag{hid3_1n_5our5e}

seu_wlan level_2 100分

let's f**k the fake seu_wlan!
第二关 考点:sql注入
推荐工具:firefox with hackbar
Hint: welcome.php文件的源码在welcome.txt

思路

访问http://69.171.76.88:30002/welcome.txt查看到源码:

include("db.php");

if(!isset($_POST['username'])){
	echo "source file in web9.php.bak";
}
$user = $_POST[username];
$pass = md5($_POST[password]);
$sql = "select * from php where user='$user' and pw='$pass'";
$query = mysql_query($sql);
if (!$query) {
	printf("Error: %s\n", mysql_error($conn));
	exit();
}
$row = mysql_fetch_array($query, MYSQL_ASSOC);
//echo $row["pw"];

  if ($row) {
	  echo "<p>Logged in! Hello $user </p>";
	  if($row[role]==1){

		  echo "you are admin! flag is FLAG{};1
	  }
}
else {
	echo("<p>Log in failure! we will redirect you in 2 seconds</p>");
	echo("<script>setTimeout(function(){history.go(-1)},2000)</script>");
  }

从代码中可以看出来是单引号+POST型注入鸭,那就试试看吧。

解题

源码是可以看出来没有什么防注入措施的,所以这里直接使用单引号闭合前面的,后面使用#来注释掉
15383620799187.png

FLAG{ju5t_A_5imp1e_5ql1}

huaji 50分

多点几下屏幕有彩蛋

思路

打开题目地址,点击屏幕发现很多滑稽~~
15388924499964.png
这个js源码很有意思,可惜下一秒就是我的了,查看下源代码,找到了敏感的数据信息:
15388938712533.png
很明显是使用了aaencode混淆了js代码。

解题

直接在线解密aaencode 解密
15388943519604.png

seu_wlan crack 100分

let's f**k the fake seu_wlan!
已知一个同学的一卡通号为admin,尝试登入。已知该同学的密码共六位数字,前两位为19

推荐工具:
firefox with hackbar
burpsuite pro
注意:burpsuite所在的文件路径不能有中文或者空格,需要安装java环境,64位系统不要使用32位的jdk

思路

知道了账号名为:admin和密码的前2位,只有后面4位不确定,而且还是数字!也就10000个可能酱紫,很明显 这应该是爆破 ,那就爆破看看吧。

解题

爆破了密码为195356 ,查看下返回的源代码看看:
15383634254072.png

FLAG{cr4ck_7o_G3t_p455w0rd}

exec 200分

execute the command you want to get flag

工具:
firefox with hackbar
firefox下按f12

知识基础:
linux基本操作

思路

前端页面只让输入合法的ip地址来执行ping命令,尝试抓包在后面添加其他命令。
15388945361767.png

解题

15388948279971.png
这里抓包使用%0a来拼接后面的命令。%0a是回车换行的url编码形式,ls发现了flag.php文件,直接查看来获取flag

cat flag.php

15388950987994.png

SEUCTF{C0mm4nd_3x3cu7i0n}

reverse

HelloReverse 50分

欢迎来到二进制的世界,这是你们的第一个挑战~

工具
IDA Pro 7.0

附件下载 Helloworld.b0c0f1911ea4d37ee52aee62ec3d076c

先运行看看程序大概的功能

15388363203153.png
可以看出程序检测了输入,当输入正确的时候会输出flag

解题1

使用16进制查看器查看可以直接看到flag信息:
15388355149500.png
emmm 这种情况以后是很少可以遇到的了。

解题2

拖入到ida中,按F5快捷键 或者 View-Open subviews-Generate pseudocode 来生成伪代码:
15388371762364.png
从ida反编译的c代码看出,程序并不复杂,当输入的值为2333333的时候,调用get_flag()函数,输出flag
15388743101359.png
那么直接去输出flag吧:
15388745299425.png

解题3

使用ida去跟踪get_flag()函数,在c伪代码的窗口中,双击get_flag()即可跳转到这个函数的细节: 15388746926473.png
可以看出flag有20位,从数组plain中去循环打印出来的,双击plain[i]跳转到这个数组的细节: 15388748442738.png
这个20位的数组的数据都在这里,只不过这里是16进制的形式来存放的,可以直接在ida中换位字符串的形式来查看,在16进制数据上右键,选择转换为S字符串模式:
15388749314458.png
也可以直接看到flag:
1538875030546.png

SUSCTF{H3llo_wOr1d!}

HelloPython 100分

This is a python byte code compiled with python 3.6.5 Have fun : )

工具
uncompyle6

附件下载 HelloPython.pyc

思路

pyc文件,第一时间直接反编译一下查看源码:python反编译 - 在线工具
拿到源码如下,代码里面已经添加了我的注释了,这样更容易看懂一点:

import sys
if len(sys.argv) < 5:   #运行python文件的时候命令行参数不能小于5
    print("I can't give you flag :(")
    sys.exit(0)


def Fibonacci(n):
    if n == 0:
        return 0
    if None == 1:
        return 1
    numfn1 = None
    numfn2 = 1
    for i in range(2, n + 1):
        currentNum = numfn1 + numfn2
        numfn1 = numfn2
        numfn2 = currentNum

    return currentNum


def encrypt(key, s):  #定义一个加密函数
    b = bytearray(str(s).encode('gbk'))
    n = len(b)
    c = bytearray(n * 2)
    j = 0
    for i in range(0, n):
        b1 = b[i]
        b2 = b1 ^ key
        c1 = b2 % 16
        c2 = b2 // 16
        c1 = c1 + 65
        c2 = c2 + 65
        c[j] = c1
        c[j + 1] = c2
        j = j + 2

    return c.decode('gbk')


def decrypt(key, s):  #定义一个解密函数
    c = bytearray(str(s).encode('gbk'))
    n = len(c)
    if n % 2 != 0:
        return ''
    n = None // 2
    b = bytearray(n)
    j = 0
    for i in range(0, n):
        c1 = c[j]
        c2 = c[j + 1]
        j = j + 2
        c1 = c1 - 65
        c2 = c2 - 65
        b2 = c2 * 16 + c1
        b1 = b2 ^ key
        b[i] = b1

    return b.decode('gbk')


# 当满足if这个条件的时候 处处解密后的值,应该也就是flag了
if int(sys.argv[1]) > 10 and Fibonacci(int(sys.argv[1])) == int(sys.argv[4]):
    print(decrypt(15,'MFKFMFMELFJEEHIFMDDGMGAGCGKGAFLHAGAFPHGHLHHGAGBGICMHAFIHAGNHODLGCH'))

解题

当然这里也可以去一个个去分析各个函数的用法和功能,我这里只能说大概看懂了,但是具体还要很多细节搞不清楚,所以我这里的话直接构造一个永真的条件来直接打印flag:

$ python3 rev.py 1 1 1 1

后面带的1 1 1 1 是为了满足这个条件:

if len(sys.argv) < 5:   #运行python文件的时候命令行参数不能小于5
    print("I can't give you flag :(")
    sys.exit(0)

15388760534633.png
发现运行报错了,跟进到46行看下是:
15388762526274.png

很明显NoneTypeint类型是不可以进行//的运算的,再次读代码,尝试把None改为n看看:

n = n // 2

再次运行,拿到flag:
15388764877626.png

SUSCTF{W3lcome_to_python's_wor1d}

XOR1 100分

Do u know xor?

附件下载 xor1.7aae24cabc4d80af201f4af92668c40e s

思路

这里感谢Hexman大佬的提供的wp,国光我二进制太菜了,实在没有做出来=,= 一个简单的异或算法,程序中有两个数组,密文和密钥,明文与密钥异或可以得到密文,这个地方可能由于ida在反编译的时候不能很好地识别数组所以用指针表示造成了一些困难,如果比较熟悉c语言的话应该不是问题。

解题

拖进IDA中,F5转成伪c代码,关键部分的语句是:

这里是2个数组异或,数组A的范围是v4~v34,数组B的范围是v35~v64 ,使用Python来进行异或:

A = [48,46,96,101,116,9,73,125,25,84,5,23,109,26,28,100,17,64,21,52,74,122,29,68,54,17,31,80,73,8]
B = [99,123,51,38,32,79,50,5,41,38,90,38,30,69,121,80,98,57,74,64,5,37,111,119,64,116,109,101,44,117]
c = ''

for i in range(len(A)):
    c +=chr(A[i] ^ B[i])

print(c)

SUSCTF{x0r_1s_e4sy_tO_r3ver5e}

XOR2 200分

Can you guess next random number?

附件下载 xor2.8296f535b9bd837f861b84afecb7ab90

思路

是XOR1的升级版,将密文存入了全局变量,对寻找密文增加了一些困难,通过密钥使用伪随机生成,c语言的随机数是通过种子来生成的,同一个种子会产生同样的随机数序列,如果不了解c语言随机数这个特点很难解题。

解题

拖进IDA中,F5转成伪c代码,关键部分的语句是:

这里是c语言的srand() 生成的39位随机数的和一个 长度为39的数组c_text异或,双击c_text跟进数组,整理一下方便提取的格式:

找到c_textShift-e或者Edit-Select identifier 导出:

全局变量的数组为:

B =[0,81,50,123,120,118,35,34,37,97,119,76,40,109,55,103,43,10,1,44,14,52,8,53,95,44,59,73,104,31,126,97,13,103,117,120,94,109,24]

拿种子0xDEADBEEF写个程序跑一下伪随机数:

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i = 0;
	srand(0xDEADBEEF);
	for(i=0;i<=38;i++)
	{
		printf("%d,",rand() % 127);
	}
	return 0;
}

这里有个小坑,就是WinLinux下同样的密钥生成的随机数完全不一样,这里因为程序是Linux下编写的:Ubuntu 5.4.0

所以这里以Linux下的运行结果为准:

使用密钥生成的随机数的数组为:

A =[83,4,97,56,44,48,88,80,68,15,19,124,69,50,90,83,82,104,100,115,96,91,63,106,44,77,93,122,55,108,49,12,104,19,68,21,59,30,101]

两个数组都出来了,继续异或:

A =[83,4,97,56,44,48,88,80,68,15,19,124,69,50,90,83,82,104,100,115,96,91,63,106,44,77,93,122,55,108,49,12,104,19,68,21,59,30,101]
B =[0,81,50,123,120,118,35,34,37,97,119,76,40,109,55,103,43,10,1,44,14,52,8,53,95,44,59,73,104,31,126,97,13,103,117,120,94,109,24]
c = ''

for i in range(len(A)):
    c +=chr(A[i] ^ B[i])

print(c)

SUSCTF{rand0m_m4ybe_no7_saf3_sOmet1mes}

Maze 200分

Did u play a maze game before?

附件下载 maze.642dd29512c16a21a9093435d70700b6

思路

这个是后来补的一道题,走迷宫可以说是非常规加密算法中比较经典的一个了,其中map变量存的是迷宫的地图,通过输入的 wasd 来控制光标的上下左右移动,从入口移动到出口,移动过程的输入值即为flag。这道题在编译的时候忘记去掉符号了= =看着变量名有比较强的提示性。

解题

pwn

helloworld 50分

先要会连接上题目
你知道netcat吗
https://blog.csdn.net/wangqingchuan92/article/details/79666885

nc 47.100.40.190 10005

解题

后续更新

年轻人的第二道pwn 100分

是时候来分析一波可执行文件了
你能找出callsystem函数的地址和输入的buf到ret的距离吗??
example: flag{0x1234567&0x30} 不加地址前多余的0

tools: ida 等

附件下载 pwn2

思路

就是为了开始真正的pwn做铺垫

解题

后续更新

pwn2plus 150分

现在文件也分析完了,那么pwn it !!
// 攻击pwn2
nc 47.100.40.190 10007

tools: zio pwntools

思路

后续更新

解题

后续更新

bss_stack 150分

nc 47.100.40.190 10011
类型和pwn2一致,但/bin/sh需要你自己写入啦

附件下载 pwn3

思路

后续更新

解题

后续更新

pwn4 200分

nc 47.100.40.190 10009
接下来就要靠你自己了,题目所需要的都可以在二进制文件中找到
所以认真分析一下二进制文件吧。

附件下载 pwn4

思路

后续更新

解题

后续更新

crypto

这不是凯撒 50分

还记得刚进校时,网安学院用来迎新的凯撒密码吗?
不妨翻翻你c++课本后的附录,看看有什么编码可以表示字符和符号

txt内容如下:
gmbh|E1`z1v`lo1x`btd22~

思路

感觉就是ASCII编码了,然后再偏移一下:

明文 ASCII编码
gmbh 103 109 98 104
flag 102 108 97 103

明显可以看出来是先将明文转为ASCII编码,然后ASCII码 + 1,再转换为字母。

解题

写个python脚本练习一下吧:
15384455645307.png

flag{D0_y0u_kn0w_asc11}

base1 50分

这就是广泛使用的base编码啦,不妨先百度一下,再来做题。
ZmxhZ3t0aGlzXzFzXzZhc2U2NH0=

解题

直接base64解码

flag{this_1s_6ase64}

base2 100分

来趁热打铁,既然你已经明白了什么是base编码,那么来猜猜下面的一段是base家族里的哪一个吧
@iH<,{pv,9Qs^m9j9GH<f,@GBW

解题

直接base91解码

flag{oh_i_use_base91}

areyouok 100分

你听过雷军演唱的《areyouok》吗,可以去b站补一下。
不过这道题和雷军没什么关系,搜索引擎才是最强大的

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook.
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook!
Ook. Ook? Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.   Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook.
Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.

思路

Ook语言
特征:Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

解题

在线解码工具:https://www.splitbrain.org/services/ook
15388957441010.png

flag{4r3_y0u_0ok!!}

中国人的价值观 150分

是时候开阔视野了,原来这24个字也可以用来编码的吗

公正公正公正诚信文明公正民主公正法治法治诚信民主自由和谐法治文明法治敬业法治富强法治自由公正诚信平等公正法治法治文明公正民主法治富强公正爱国法治敬业平等友善敬业公正敬业法治和谐平等诚信平等公正敬业公正友善爱国法治自由公正平等法治文明公正平等法治和谐法治自由公正敬业公正友善爱国公正法治法治友善法治

思路

核心价值观编码算法 没错就是有这种操作,感兴趣的可以去Github查看这种编码的实现原理

解题

直接在线解码:
15388955726360.png

flag{Cryptography_is_interesting}

Misc

Crack Zip 50分

Can you help me open the zip file?

据说密码是某帅的生日

提供了一个 falg.zip 以供下载

附件下载 flag.zip

思路

生成一个1990-2010的生日字典,然后使用Ziperello开始爆破。

解题

爆破拿到压缩包密码为:19961124:
15383638531042.png
解压文件,打开里面的flag.txt拿到flag:

SUSCTF{bc5d115098676bcb0ee905dacb00e389}

今天去了四牌楼 50分

今天我用gx85拍下了这张照片,校徽真好看

附件下载 misc1.jpg

思路

一般照片中涉及到地址的,就应该联想到照片的元数据信息,一般里面可以查看到拍摄照片地点的经纬度等信息。

解题

Windows下可以直接通过照片的属性来查看元数据信息:
1538896238543.png

flag{t0_b3_careful}

二维码 50分

这个二维码为什么扫不出来呢

附件下载 misc2.jpg

思路

二维码很明显被反色了,这样是不可能扫出来的,直接在线反色看看 在线图片反色处理工具-压缩图

解题

扫描反色后的二维码可以直接扫出flag:
15388966589748.png

flag{i'm_not_good_at_misc}

zip 50分

好像压缩包出问题了
tool: winhex

附件下载 misc3.zip

思路

压缩包损坏,16进制编辑器打开,对照zip的格式来修复它。

解题

原来损坏的zip文件的头为

50 4B AA BB

很明显这里是有问题的,直接修改为

50 4B 03 04

15388970243760.png
直接解压,查看里面的flag.txt
15388971153890.png

flag{you_are_clever}

问卷里的秘密 100分

小同学,你能填一下我们的问卷吗
你研究过doc吗

附件下载 misc4.doc

思路

一般doc文档的思路是直接解压,doc其实也可以来解压的。
15388974005759.png
猜想应该没错,这个doc的内容被动过,那就直接来解压吧。

解题

解压后发现里面有一个flag文件夹,里面放着flag.txt:
15388975577976.png

flag{yahaha~you_find_me}

Mobile

BabyAndroid 100分

Good luck, Have fun.

Tools
Jeb or jd-gui

附件下载 e0efa010ca3851ec53360eb709a171c1.apk

思路

反编译看下程序的结构,查找关键部分的代码。

解题

直接反编译后,在MainActivity中找到了flag信息:
15388985154646.png

SUSCTF{apk_1s_vuln3r4ble}

Basic

git 25分

Q: 官博 http://susers.github.io/ 首次发布日期?
A: 提交格式SUSCTF{YYYY-MM-DD}

Task:
- What is Github
- Github 基本使用: push pull commit log

思路

找到这个博客的Github项目地址:https://github.com/susers/susers.github.io,查看下commit的提交历史记录。

解题

15383642752848.png

SUSCTF{2017-08-16}

小结

通过这次比赛发现了二进制是蛮有趣的,不再像以前那么害怕二进制了,只要静下心来去分析,都是差不多的感觉,希望自己尽快变强吧,路漫漫其修远兮,吾将上下而求索。

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光