新人向CTF,正好适合我这种蒟蒻……

Hello world!

签到题

Simple overflow

教程溢出题,跟着hint走很轻松愉快O(∩_∩)O,注意最后secret值有非打印字符,需要用转义字符\x输入ascii码,同时注意是小端序就行了。
POC:

1111111111111111\xbe\xba\xfe\xca

garfield

题目给了一幅图:
garfeld.png
底下的神秘代码就是加密的flag了,因为所有flag都是IceCTF{xxx}样式的,所以开头六个肯定是IceCTF,这样考虑是不是字符替换加密,然后右上角有个神秘数字07271978,瞬间意识到是不是就是偏移量,稍微数了下果然是这样,那这样就很清楚了,除了{}_以外其他都按上面的偏移,超过部分循环一下就行了,可以手动试试

IjgJUO{P_LOUV_AIRUS_GYQUTOLTD_SKRFB_TWNKCFT}
IceCTF{I_DONT_THINK_GRONSFELD_LIKES_MONDAYS}
072719 7 8072 71978 072719780 72719 7807271

或者直接用网上的轮子 http://rumkin.com/tools/cipher/gronsfeld.php
flag:

IceCTF{I_DONT_THINK_GRONSFELD_LIKES_MONDAYS}

anticaptcha

过验证的题目,你要回答一大堆题目,还有时间限制,手动肯定是不现实的,但是仔细看看就会发现它其实是有规律的,也就三种问题不停地问,一个是问是不是素数,一个问最大公约数,一个问第几个单词,我们写个脚本跑一下就行了。把所有问题复制下来,避免麻烦我是ctrl-a的,然后去掉前面的,剩下的就是像这样的问题一共609个

What is the greatest common divisor of 3066 and 1445?	
number

POC做的就是去掉不必要标点,分隔然后计算,合成提交内容,注意测试时发现几个特例,网上搜一下做个特判就行了……
POC:

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import math    

def isPrime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True

def gcd(m,n):
return m if not n else gcd(n, m%n)

ans=''
f = open("que.txt", "r")
for i in range(609):
question = f.readline()
f.readline() # eat
question=question.strip('\r\n\t')
question=question.replace('?','')
question=question.replace('.','')
piece=question.split()
if len(piece) == 5 and piece[3] == 'prime':
if(isPrime(int(piece[1]))):
ans+='answer=true&'
else:
ans+='answer=false&'
elif len(piece) == 10 and piece[3] == 'greatest':
ans+='answer='+str(gcd(int(piece[7]),int(piece[9])))+'&'
elif len(piece) > 9 and piece[4] == 'word':
tmp=piece[3].replace('th','')
tmp=tmp.replace('st','')
tmp=tmp.replace('nd','')
tmp=tmp.replace('rd','')
offset=int(tmp)
ans+='answer='+piece[8+offset]+'&'
elif question=='What is the capital of Germany':
ans+='answer=Berlin&'
elif question=='What year is it':
ans+='answer=2018&'
elif question=='What color is the sky':
ans+='answer=blue&'
elif question=='Who directed the movie Jaws':
ans+='answer=Steven Spielberg&'
elif question=='What is the capital of Hawaii':
ans+='answer=Honolulu&'
elif question=='What is the tallest mountain on Earth':
ans+='answer=Mount Everest&'
elif question=='Which planet is closest to the sun':
ans+='answer=Mercury&'
elif question=='How many planets are between Earth and the Sun':
ans+='answer=2&'
elif question=='How many strings does a violin have':
ans+='answer=4&'
else:
print(question)
ans+='answer='+input()+'&'
f.close()

ans+="submit=Submit+Answers"
f = open("res.txt", "w")
f.write(ans)
f.close()

改包提交即得flag:

IceCTF{ahh_we_have_been_captchured}

Toke Relaunch

看了看这是个静态网站没啥东西,试试常用信息挖掘办法访问robots.txt

User-agent: *
Disallow: /secret_xhrznylhiubjcdfpzfvejlnth.html

此地无银三百两系列……直接访问这个网址就得到flag

IceCTF{what_are_these_robots_doing_here}

Lights out!

打开来漆黑一片,看源代码就一个css,受到了上题误导到处找文件……然而经过某大佬提示:好好看看源码,我发现那个最小化的“看似”Bootstrap库的文件其实是做了手脚的……里面有一个属性是content,而且看上去似乎是flag拆分而成的!F12看了下后面“什么也没有”的两个元素,每个元素content属性拼接而成就是flag……尼玛啊这出题人,还煞有其事在css文件前面加上版权声明草!

IceCTF{styles_turned_the_lights}

Friðfinnur

一个开了debugbar的laravel框架,然而我觉得这个题目出bug了……正确解法应该是通过debugbar看到jobs/{alias}然后尝试非法别名抛出异常……但是导航栏的Jobs栏出现了问题……

<a class="nav-link" href="jobs">Jobs</a>

这是它的代码……但是href忘了加’/‘,导致你在随便一个job里面再点一次这个就触发异常抛出flag了……(我才不会说我就是到处乱点莫名其妙出flag了……)

IceCTF{you_found_debug}