zoukankan      html  css  js  c++  java
  • 河北省2019网络安全竞赛线上赛部分题解

    后期补充,写到哪算哪,不按顺序。

    1.Doc什么鬼

    基础题,Winhex下打开。

    非常明显的zip文件头,将文件直接后缀改成zip。


    提取Flag.xml并打开即可得到flag。

    2.爱因斯坦

    基础题,将misc2.jpg用binwalk打开,可以发现压缩包以及其中的flag.txt。

    直接将图片后缀改成zip,需要密码。
    用winhex查看16进制数据时发现好多0区域,其中有一段不被0包围的,是压缩包密码:this_is_not_password。
    解压即可得到flag。

    3.mimi

    基础题,但过程略多。

    这个题给了一个mp3文件和一个压缩包。压缩包需要密码,mp3文件的音频无任何异常。猜测压缩包密码在音频文件中,用mp3stego可以解出。考虑到MP3stegp需要密码,我用网易云听歌识曲,利用歌名Canon作为密码可以解出。

    密码

    pqiem*zoei$%h
    

    解压出来的文件这个样子:

    像图片转的base64,写个脚本解一下。一开始会发现解完打不开,因为缺少png的文件头,补上就行。

    import base64
    a = b'x89x50x4ex47x0dx0ax1ax0a'
    with open('pic_png.txt') as f:
        r = f.read()
    
    rlt = base64.b64decode(r)
    rlt = a+rlt
    with open('flag.png','wb') as f:
        f.write(rlt)
    

    4.真是假

    文件打开后有341个字,只有真和假。将真假分别替换成1和0。考虑到341不能拆成8个一组或者偶数个一组,暂时想不到好方法,但是341可以开方,于是得到一个29*29的矩阵。打印一下发现很像二维码,于是将其化成图,在扫描即可得到flag。

    from PIL import Image
    img = Image.new("RGB",(29,29))
    a = ''#真假的数据省略,太长了
    a = a.replace('真','1')
    a = a.replace('假','0')
    pix = []
    for i in range(29):
        pix.append(a[29*i:29*i+29])
    for i in range(29):
    	for j in range(29):
    		if pix[i][j]=='1':
    			img.putpixel((i,j),(255,255,255,0))
    		else:
    			img.putpixel((i,j),(0,0,0,0))
    img.save("flag.png")
    
    

    结果扫一下二维码就行,我用微信扫的。

    5.奇怪的数字

    基础题,看看九宫格键盘就可以了。举个例子,33就是第三个格的第三个字母。

    文件内容

    33 53 21 41 43 74 43 53 63 83 32 71 42 63 62 32
    

    flag

    flagisilovephone
    

    待续

  • 相关阅读:
    WebGIS中解决使用Lucene进行兴趣点搜索排序的两种思路
    WebGIS中兴趣点简单查询、基于Lucene分词查询的设计和实现
    手机端和网页端使用同一后台时进行会话控制的一种思路
    由项目浅谈JS中MVVM模式
    数字转换为汉字小算法
    6. GC 调优(工具篇)
    Android基础工具类重构系列一Toast
    <html>
    Android自己定义控件--圆形进度条(中间有图diao)
    jquery-ajax-php(内容点赞并进行cookie限制实现)
  • 原文地址:https://www.cnblogs.com/kevinbruce656/p/11563533.html
Copyright © 2011-2022 走看看