2019年全国大学生网络安全邀请赛暨第五届上海市大学生网络安全大赛

做出了两道Misc==

签到

题干

解题过程

题干提示一直注册成功,如果注册失败也许会出现flag。

下载下来是包含010editor.exe的一堆文件。



打开010editor.exe,想到跟注册有关,于是进入Tools->Register



在弹出的license随便输入用户名和密码



果然,显示注册成功。



想把010editor.exe拖入ollydbg分析,一直不能成功打开,百度查了会儿问题,最后发现好像是因为ollydbg不能分析64位文件



把010editor.exe拖入x64dbg,搜索字符串“Password accepted”



向下滑动滚轮,在附近找到flag的字符串

Unlimited Base64 Works

解题过程

1.分离图片

下载下来是一个.avi视频,用potplayer打开观看,发现是每帧显示一个字符。

用脚本将视频逐帧分离(脚本由李sin提供)

import cv2
import os
#要提取视频的文件名,隐藏后缀
sourceFileName='ubw'
#在这里把后缀接上
video_path = os.path.join("", "", sourceFileName+'.avi')
times=0
#提取视频的频率,每帧提取一个
frameFrequency=1
#输出图片到当前目录vedio文件夹下
outPutDirName='vedio/'+sourceFileName+'/'
if not os.path.exists(outPutDirName):
#如果文件目录不存在则创建目录
os.makedirs(outPutDirName)
camera = cv2.VideoCapture(video_path)
while(True):
times+=1
res, image = camera.read()
if(not res):
print('not res , not image')
break
if(times%frameFrequency==0):
cv2.imwrite(outPutDirName + str(times)+'.jpg', image)
print(outPutDirName + str(times)+'.jpg')
print('图片提取结束')
camera.release()

2.人工识别,初得文本

然后很多人分工,一人负责几百张图片,人工将图片转为字符串。

在我做完我的部分时发现另一边已经得到所有的字符了...S老师使用百度云的人工智能以及自己审阅一遍后给我们提供了所有的字符文本。

在人工识别转化过程中,发现难以区分大写的I和小写的l,于是决定先统一记为I。

然后写一个脚本,识别出文本中所有I的位置(脚本再次由李sin提供)

但是对照这些位置的图片依次比对发现,并不能完全对应,有些位置的图片上的字符并非是I或l,于是我们怀疑S老师给的文本有问题,使用二分法对关键位置的图片比对修改,然后运行脚本再跑出一组位置,这样重复了七八次,终于使所有位置与含I或l的图片对应并得到了正确的文本。

3.火眼金睛,妙分Il

接下来就是将I和l区分了。共有68个I或l,如果全排列去做显然是不行的。我将图片放到最大分析发现,这些位置的字符只有两种样子,一种偏瘦(左侧有竖阴影),一种偏胖(右侧有竖阴影)



很明显,其中一种是I,另一种是l。

于是统计两种图片的位置,记录下来



然后李sin又写了个脚本,分别输出其中一组位置为I或为l,另一组位置反之的两种情况。

a='所有文本'
c=0
b=0
d=[86,156,206,242,248,447,519,548,886,888,895,896,900,920,946,1072,1137,1145,1174,1184,1370,1376,1426,1530,1535,1648,1719,1753,1772,1809,1827,1963]
f=[130,144,183,321,361,399,474,500,501,511,521,609,649,659,774,821,866,913,918,1026,1099,1107,1118,1359,1363,1435,1467,1490,1670,1787,1824,1850,1857,1901,2132,2135]
e=''
for i in a:
b+=1
if(b in f):#f中的I改为l
# if(b in d):#d中的l改为I
i='l'
e+=i
print(e)

将得到的两种文本在线base64解码为图片,发现都失败





如果在chrome浏览器做,会发现得到的图片是透明的,说明确实是PNG文件,但信息损坏。

4.人工再检,正确文本

我们不禁怀疑,一开始S老师给出的文本中有错误。虽然经过几小时的检错后,我们已经将I和l的位置都审查结束,但在其他位置仍有可能存在错误。于是我们小组3人分工,一人负责900张左右的图片,对整个文本进行系统的再次检查(眼要瞎了...)



果然,发现存在五六处大小写错误,于是我们终于得到了最终的正确文本(I和l都设为I)

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

将这个文本带入之前脚本的字符串变量a,再跑两次脚本,得到两组文本

然后在网站上在线分别将两组文本base64转图片(注意加上“data:image/png;base64,”的前缀),其中一个文本转为图片后得到flag

感想

拿了个三血嘿嘿//

2019年上海市大学生网络安全大赛两道misc WriteUp的更多相关文章

  1. Writeup:第五届上海市大学生网络安全大赛-Web

    目录 Writeup:第五届上海市大学生网络安全大赛-Web 一.Decade 无参数函数RCE(./..) 二.Easysql 三.Babyt5 二次编码绕过strpos Description: ...

  2. 2019 上海市大学生网络安全大赛 RE部分WP

    这次比赛就做了这一道逆向题,看到队友的WP,下面的对v10的加密方式为RC4,从我提取的v4数组就能够察觉出这是CR4了,自己傻乎乎的用OD调试,跟踪数据半天才做出来,还是见得的少了... ...下面 ...

  3. 2019全国大学生信息安全大赛两道web

    简单小结 菜鸟第一次打国赛,这次题目质量很高,学到了许多姿势. Web Justsoso 打开题目,源代码出存在提示: 使用LFI读取index.php与hint.php http://d4dc224 ...

  4. 第三届上海市大学生网络安全大赛 流量分析 WriteUp

    题目链接: https://pan.baidu.com/s/1Utfq8W-NS4AfI0xG-HqSbA 提取码: 9wqs 解题思路: 打开流量包后,按照协议进行分类,发现了存在以下几种协议类型: ...

  5. 第三届上海市大学生网络安全大赛wp&学习

    wp 0x00 p200 先分析了程序关键的数据结构 分析程序逻辑,在free堆块的时候没有清空指针,造成悬挂指针,并且程序中给了system('/bin/sh'),可以利用uaf 脚本如下: 1.先 ...

  6. 【LOJ】#3034. 「JOISC 2019 Day2」两道料理

    LOJ#3034. 「JOISC 2019 Day2」两道料理 找出最大的\(y_{i}\)使得\(sumA_{i} + sumB_{y_i} \leq S_{i}\) 和最大的\(x_{j}\)使得 ...

  7. 『ACM C++』Virtual Judge | 两道基础题 - The Architect Omar && Malek and Summer Semester

    这几天一直在宿舍跑PY模型,学校的ACM寒假集训我也没去成,来学校的时候已经18号了,突然加进去也就上一天然后排位赛了,没学什么就去打怕是要被虐成渣,今天开学前一天,看到最后有一场大的排位赛,就上去试 ...

  8. 2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解

    2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 ...

  9. ACM/ICPC 之 欧拉回路两道(POJ1300-POJ1386)

    两道有关欧拉回路的例题 POJ1300-Door Man //判定是否存在从某点到0点的欧拉回路 //Time:0Ms Memory:116K #include<iostream> #in ...

随机推荐

  1. 理解 Virtual DOM(摘)及评价

    框架并没有提高web的性能,只是让开发者更加专注的完成业务逻辑,而不用过渡的考虑性能上的优化.如果以性能来比的话,框架是绝对比不过优化后的原生代码的. 二.什么是Virtual DOM Virtual ...

  2. Blend 阴影 倒影 模糊效果

    原文:Blend 阴影 倒影 模糊效果 1)阴影 和模糊效果很简单 在Blend的面板效果中就有体现 直接拖拽到控件即可 2)文本加圆角 需要一个布局控件Border 设置属性CornerRadius ...

  3. boto3用法

    aws是Amazon Web Service的简写,它包括众多服务,其中最有名的两个是EC2和S3. S3是Simple Storage Service的简写,它是一种对象存储的实现. 安装和配置 安 ...

  4. [VSTO] 区分MAILITEM的ATTACHMENT是真正的附件还是内嵌资源

    在遍历MailItem的Attachments集合的时候发现,不管是真正的附件还是内嵌资源,比如邮件内容中内嵌的图片(Embedded Image),都是Attachments集合的元素,通过查看at ...

  5. 英语CollaCoriiAsini阿胶CollaCoriiAsini单词

    阿胶(colla Corii Asini)始载于<神农本草经>,是马科动物驴的皮去毛后熬制而成的胶块,其性味甘.平,具有滋阴润肺,补血.止血等功效.主要治疗血虚萎黄,眩晕心悸,肌痿无力,心 ...

  6. kubernetes学习控制器之StatefulSet控制器

    StatefulSet介绍 一.StatefulSet概述 StatefulSet是用来管理stateful(有状态)应用的StatefulSet管理Pod时,确保Pod有一个按序增长的ID与Depl ...

  7. 【剑指 offer】数组中重复的数字 -- PHP 实现

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  8. Linux使用svn在github上下载部分文件(单个文件夹)

    1.安装svn sudo apt-get update sudo apt-get install subversion 2.输入命令 svn checkout (url) 这里url是github上要 ...

  9. Java中基本数据类型、不能用浮点数表示金额

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10831763.html 一:8种基本数据类型 8种基本数据类型(4整,2浮,1符,1布): 整型:byte( ...

  10. mysql数据库之主从复制+双主--MMM

    mysql复制:在主数据库中,前端用户每执行一个写操作/语句,都会在二进制日志中保存一个事件,把这个事件从mysql的服务器中3306端口发送给从服务器,从服务器把这个事件接受下来,接受下来先保存在本 ...