东南大学 SUS 十一欢乐赛部分 write-up
感觉这种比赛蛮适合我这种新手入门的,对新手很友好,各种详细的提示等等,特此记录总结一下,希望也可以帮助到想要入门学习 CTF 的小伙伴,二进制部分的 Write-up我尽快补上去 没错,又咕咕咕了。
前言
感觉这种比赛蛮适合我这种新手入门的,对新手很友好,各种详细的提示等等,特此记录总结一下,希望也可以帮助到想要入门学习CTF的小伙伴。
web
seu_wlan level_1 50分
let's f**k the fake seu_wlan!
第一关 考点:查看源码+电脑模拟手机
推荐工具:firefox or chrome
Hint:只有手机能看到flag
思路
打开网址是东南大学的校园网登录界面, 浏览器审查元素 调整为手机界面摸索,然后源码中搜素flag
关键词。
解题
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型注入鸭,那就试试看吧。
解题
源码是可以看出来没有什么防注入措施的,所以这里直接使用单引号闭合前面的,后面使用#
来注释掉
FLAG{ju5t_A_5imp1e_5ql1}
huaji 50分
多点几下屏幕有彩蛋
思路
打开题目地址,点击屏幕发现很多滑稽~~
这个js源码很有意思,可惜下一秒就是我的了,查看下源代码,找到了敏感的数据信息:
很明显是使用了aaencode
混淆了js代码。
解题
直接在线解密aaencode 解密
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
,查看下返回的源代码看看:
FLAG{cr4ck_7o_G3t_p455w0rd}
exec 200分
execute the command you want to get flag
工具:
firefox with hackbar
firefox下按f12
知识基础:
linux基本操作
思路
前端页面只让输入合法的ip地址来执行ping命令,尝试抓包在后面添加其他命令。
解题
这里抓包使用%0a
来拼接后面的命令。%0a
是回车换行的url编码形式,ls
发现了flag.php
文件,直接查看来获取flag
:
cat flag.php
SEUCTF{C0mm4nd_3x3cu7i0n}
reverse
HelloReverse 50分
欢迎来到二进制的世界,这是你们的第一个挑战~
工具
IDA Pro 7.0
附件下载 Helloworld.b0c0f1911ea4d37ee52aee62ec3d076c
先运行看看程序大概的功能
可以看出程序检测了输入,当输入正确的时候会输出flag
解题1
使用16进制查看器查看可以直接看到flag信息:
emmm 这种情况以后是很少可以遇到的了。
解题2
拖入到ida中,按F5
快捷键 或者 View
-Open subviews
-Generate pseudocode
来生成伪代码:
从ida反编译的c代码看出,程序并不复杂,当输入的值为2333333
的时候,调用get_flag()
函数,输出flag
那么直接去输出flag吧:
解题3
使用ida去跟踪get_flag()
函数,在c伪代码的窗口中,双击get_flag()
即可跳转到这个函数的细节:
可以看出flag
有20位,从数组plain
中去循环打印出来的,双击plain[i]
跳转到这个数组的细节:
这个20位的数组的数据都在这里,只不过这里是16进制的形式来存放的,可以直接在ida中换位字符串的形式来查看,在16进制数据上右键
,选择转换为S
字符串模式:
也可以直接看到flag:
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)
发现运行报错了,跟进到46行看下是:
很明显NoneType
和int
类型是不可以进行//
的运算的,再次读代码,尝试把None
改为n
看看:
n = n // 2
再次运行,拿到flag:
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_text
按Shift-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;
}
这里有个小坑,就是Win
和Linux
下同样的密钥生成的随机数完全不一样,这里因为程序是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脚本练习一下吧:
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
flag{4r3_y0u_0ok!!}
中国人的价值观 150分
是时候开阔视野了,原来这24个字也可以用来编码的吗
公正公正公正诚信文明公正民主公正法治法治诚信民主自由和谐法治文明法治敬业法治富强法治自由公正诚信平等公正法治法治文明公正民主法治富强公正爱国法治敬业平等友善敬业公正敬业法治和谐平等诚信平等公正敬业公正友善爱国法治自由公正平等法治文明公正平等法治和谐法治自由公正敬业公正友善爱国公正法治法治友善法治
思路
核心价值观编码算法 没错就是有这种操作,感兴趣的可以去Github查看这种编码的实现原理
解题
直接在线解码:
flag{Cryptography_is_interesting}
Misc
Crack Zip 50分
Can you help me open the zip file?
据说密码是某帅的生日
提供了一个 falg.zip 以供下载
附件下载 flag.zip
思路
生成一个1990-2010
的生日字典,然后使用Ziperello
开始爆破。
解题
爆破拿到压缩包密码为:19961124
:
解压文件,打开里面的flag.txt
拿到flag:
SUSCTF{bc5d115098676bcb0ee905dacb00e389}
今天去了四牌楼 50分
今天我用gx85拍下了这张照片,校徽真好看
附件下载 misc1.jpg
思路
一般照片中涉及到地址的,就应该联想到照片的元数据信息,一般里面可以查看到拍摄照片地点的经纬度等信息。
解题
Windows下可以直接通过照片的属性来查看元数据信息:
flag{t0_b3_careful}
二维码 50分
这个二维码为什么扫不出来呢
附件下载 misc2.jpg
思路
二维码很明显被反色了,这样是不可能扫出来的,直接在线反色看看 在线图片反色处理工具-压缩图
解题
扫描反色后的二维码可以直接扫出flag:
flag{i'm_not_good_at_misc}
zip 50分
好像压缩包出问题了
tool: winhex
附件下载 misc3.zip
思路
压缩包损坏,16进制编辑器打开,对照zip的格式来修复它。
解题
原来损坏的zip文件的头为
50 4B AA BB
很明显这里是有问题的,直接修改为
50 4B 03 04
直接解压,查看里面的flag.txt
flag{you_are_clever}
问卷里的秘密 100分
小同学,你能填一下我们的问卷吗
你研究过doc吗
附件下载 misc4.doc
思路
一般doc文档的思路是直接解压,doc其实也可以来解压的。
猜想应该没错,这个doc的内容被动过,那就直接来解压吧。
解题
解压后发现里面有一个flag文件夹,里面放着flag.txt
:
flag{yahaha~you_find_me}
Mobile
BabyAndroid 100分
Good luck, Have fun.
Tools
Jeb or jd-gui
附件下载 e0efa010ca3851ec53360eb709a171c1.apk
思路
反编译看下程序的结构,查找关键部分的代码。
解题
直接反编译后,在MainActivity
中找到了flag信息:
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
的提交历史记录。
解题
SUSCTF{2017-08-16}
小结
通过这次比赛发现了二进制是蛮有趣的,不再像以前那么害怕二进制了,只要静下心来去分析,都是差不多的感觉,希望自己尽快变强吧,路漫漫其修远兮,吾将上下而求索。
本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)
微信
|
支付宝
|
没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光