USTC2017 writeup

来源:互联网 发布:java使用百度地图api 编辑:程序博客网 时间:2024/05/16 12:56

0x00 前言

突然发现了这个比赛,作为校外同学参加了一下科大的第四届校内赛,题目质量挺不错的,发下wp做下记录(部分思路来自官方题解)

1.看不见的字

这道题挺有意思的,各种常规misc做法轮番轰炸,结果发现使用Adobe Reader的高级搜索功能就可以找到flag

2.科大学生家长的日常

入入入门级web题,查看源码可以发现注释中的flag

3.被入侵的云端

尴尬,云游戏(被入侵的云端下)会做,这道题反而做不出来。
看了下官方题解
解法一:利用计算机网络知识分析packet,可以从中找到ip和端口
这里写图片描述
分离出来一个zip,里面就是我们的云游戏(手动滑稽),那么第一个Zip数据是从0x2A开始的,而前面的数据是做什么的呢?
因为是分析发送ip和端口,那么我们可以猜测前面的数据就是包头。
使用WinHex打开packet,观察0x2A前的数据,并不能发现什么
我们可以尝试使用wireshark随便抓一个包进行比对分析
这里写图片描述
IP地址在这里
这里写图片描述
端口号在这里
那么我们这时候再分析一下我们的packet文件
这里写图片描述
可以得到IP地址0a 00 61 cc 端口号 1fbb(大端序:数据的高位字节存放在地址的低端 低位字节存放在地址高端)
即10.0.97.204:8123

解法二 直接利用wireshark打开packet,因为很多时候数据都是以二进制形式进行传输的,因此再导入前我们需要对packet进行一些处理,将它转为16进制再导入
od -Ax -tx1 -v packet >> packet_h

4.真假flag

在一堆flag中找出只有数字和字母的flag,脚本跑

import rex=open("123.txt").read()print re.findall(r'flag{\w*}',x)

官方的脚本如下

list(filter(lambda s: bytes(s[1:-1], 'utf-8').isalnum(), \requests.get("http://hack.lug.ustc.edu.cn/file/flag.txt").text.split('flag')))

5.骚扰你的一位老学长

好吧这题没做出来….细心程度不够
还尝试发送了邮件给这个老学长,满心欢喜以为会get flag

官方题解

打开
http://www.chenweikeng.com/
发现底部有 jemdoc 的链接,打开后查看 jemdoc 官网的文档得知元信息位于
http://www.chenweikeng.com/index.jemdoc
打开在底部可以找到 flag.

6.云游戏

浏览代码发现有一些没啥用的奇怪运算

// try to gain reward, the constant part of the reward is 2.4657676475X -= 0.1* this.config.ACCELERATION * (4 * PARAM_A * X * X * X - 3* PARAM_B * X * X);//PARAMACCELERATION: 0.1var PARAM_A = 0.943745363;var PARAM_B = 2.895467371;var X = 5.0;

作为一个高数差点挂科的家伙,我是不知道这个是梯度下降公式了,按照提示里的最优化算法,悄咪咪地搜索了一波才发现原来是梯度下降公式
这里写图片描述
所以梯度下降的公式也就是下面这个了
这里写图片描述
我们可以惊奇地发现,
X -= 0.1* this.config.ACCELERATION * (4 * PARAM_A * X * X * X - 3
* PARAM_B * X * X);
也就是公式中的J(θ)了
积分再加上提示中的常数得到
f(x) = PARAM_A * (x * 4) - PARAM_B (x ** 3) + 2.4657676475
之后注释掉小恐龙的游戏结束判断,得到稳定X值2.3010449782539832,代入计算即可得到
f(x) = -6.353530137073035
即flag{63535301}

7.被加密的实验报告

右键属性就可以看到flag了,小伙伴用解密器好像也能去掉密码,打开文档也可以得到flag

8.简单认证

抓包发现cookie是一个base64,解密为nobody
所以改成admin的base64结果即可

9.flag验证器

反汇编得到代码,进行算法分析可以简单出flag

10.黑客猜奇偶

前端对字符串进行了不能修改的限制,但可以通过抓包改,连续置空30次即可

11.熟悉的声音

电话拨号音
这里写图片描述
按这个进行翻译即可,发现使用#分割的ascii码值

16.永恒的东风

音频文件,用coolpro2软件打开就可以看到文件掺杂了额外的高频,简单出结果

剩下的题

剩下的题瞄了一眼
感觉都比较需要数学方面的分析,课程也比较紧,也就没有时间去尝试分析了

原创粉丝点击