丘比龙的最爱

丘比龙的最爱传说,丘比龙是丘比特的弟弟,丘比龙是一只小爱神,虽然有两只翅膀,但因为吃多了,导致身体太胖,所以飞不起来~那么问题来了?!丘比龙吃什么食物吃多了变胖了
没什么好说的,就是甜甜圈

nvshen

猫流大大发现一个女神,你能告诉我女神的名字么(名字即是flag)
http://107.189.158.112/0aab9b20410fdd880c53922048023266/nvshen.zip

下载的文件中有个txt文件,是Base64编码的,初步解码是判断png图片,将编码内容嵌入HTML中,显示一张图片:
女神
google一下,得到女神的名字:爱新觉罗启星

babyCrack

107.189.158.112/d55757a7ccf958399789e18e1d8199de/babyCrack.zip

解压后是是一个.Netexe,直接用.Net Reflector反编译:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void button1_Click(object sender, EventArgs e)
{
bool flag = false;
Config.user = this.textBox1.Text;
string user = Config.user;
string str2 = "hctf{bABy_CtsvlmE_!}";
if (str2.CompareTo(user) == 0)
{
flag = true;
}
if (flag)
{
MessageBox.Show("good !!!");
}
}

得到flag:hctf{bABy_CtsvlmE_!}

GIFT

主办方准备了一个礼物! http://121.40.86.166:39099

访问后,查看源码,提示有index.php.bak,下载后查看源码:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$flag='xxx';
extract($_GET);
if(isset($gift)){
$content=trim(file_get_contents($flag));
if($gift==$content){
echo'hctf{...}';
}else{
echo'Oh..';
}
}
?>

根据源码,用get参数将flag的值覆盖,使其是一个 不存在的文件名,然后将gift的内容赋值为空,构造url如下:

1
http://121.40.86.166:39099/?gift=&flag=aaaaa

得到flag:hctf{Awe3ome_Ex7ract!!!}

babyCrack2

107.189.158.112/e81cbc49ae92b00d3b55430f21cbe2fe/babyCrack2.zip

IDA反汇编,查看字符串得到flag:

1
idug|3`5ut`CCbZ`DusnF`34~

Entry

57R9S980RNOS49973S757PQO9S80Q36P 听说丘比龙一口气能吃”13”个甜甜圈呢!

32位,感觉想MD5,尝试如下对应:

1
2
NOPQRS
ABCDEF

得到57E9F980EABF49973F757CDB9F80D36C,然后破解MD5,得到Qoobee

FIND

Find what? http://107.189.158.112/f60a0a6ffd7c297964a718dc21546975/stego_final.png

用神器stego solve分析,得到二维码,直接提取的二维码,我怎么扫都扫不出来,后来Great YYX助攻,用PS处理了下就可以了:
二维码
扫描即可得到flag:flag{hctf_3xF$235#\x5e3}

NormalFile

你能找到其中的深意么? http://107.189.158.112/fdd9df21d6c5d65fe519f69f8424d65b/NormalFile.jpg

下载图片,提取出一个zip文件,解压,又有一张图片,又提取出一个apk,反编译apk,分析flag生成过程,一开始没看到half那个字符串,以为答案有多个,随便生成一个,提交发现不对,后来在string.xml找到half才确定,自己用Python实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
num_xor = [112, 83, 93, 112, 28, 0, 87, 91]
half = '401!n++p'
def main():
last = ''
for i in xrange(0, 8):
last += chr(ord(half[i]) ^ num_xor[i])
flag = 'hctf{' + half[0] + half[4] + last[0] + last[4] + half[1] + half[2] \
+ last[1] + last[2] + half[2] + half[1] + last[2] + last[6] + half[3] \
+ half[7] + last[3] + half[7] + '}'
print flag

运行得到flag:hctf{4nDr01cl10l|!pQp}