第三届江西省高校网络安全技能大赛 部分wp&Crypto的疑惑

   日期:2020-09-03     浏览:356    评论:0    
核心提示:2020 第三届江西省高校网络安全技能大赛Misc1-Hello直接把题目拿去base64,得flagBase64: Q01JU0NDVEZ7V2VsY29tZV9DVEZlciF9Flag: CMISCCTF{Welcome_CTFer!}Misc2-encrypt本来是想考zip伪加密,通过winhex修改加密标志位解除伪加密,奈何我的360压缩无视了它的伪加密,直接打开了压缩包,把题目拿去解base64两次,得flagBase64两次: UTAxSlUwTkRWRVo3Um1GclpWO

2020 第三届江西省高校网络安全技能大赛

目录

    • Misc1-Hello
    • Misc2-encrypt
    • Misc3-jump
    • Misc4-Brups
    • Misc5-Trees
    • Misc6-qrcode
    • Misc7-blind
    • Misc8-music
    • Crypto的疑惑

本来实在是不想写这个比赛的wp,最后因为我们队伍解题分配以及战术的问题无缘决赛,赛后我们(也就两个人)也进行了积极的总结和反思,复盘以后发现其实还有好几个题目都能写,最后还是很遗憾的错失进入决赛的机会,准备明年再来吧。

Misc1-Hello

直接把题目拿去base64,得flag

Base64: Q01JU0NDVEZ7V2VsY29tZV9DVEZlciF9

Flag: CMISCCTF{Welcome_CTFer!}

Misc2-encrypt

本来是想考zip伪加密,通过winhex修改加密标志位解除伪加密,奈何我的360压缩无视了它的伪加密,直接打开了压缩包,把题目拿去解base64两次,得flag

Base64两次: UTAxSlUwTkRWRVo3Um1GclpWOWxibU55ZVhCMGFXOXVmUT09

Flag: CMISCCTF{Fake_encryption}

Misc3-jump

题目图片叫jump.png,通过winhex发现gif文件头

直接修改后缀为gif,通过Stegsolve按帧查看,最后得到flag

Misc4-Brups


通过四字节得crc爆破

另附爆破脚本:

import binascii
import string
import os,sys
dic=string.printable
crc5=[0x6083A1C8,0xCE70D424,0xC3F17511,0x526FD582,0x30E25038,0xAA3E6AEA]
password=''
for crc in crc5:
 for i in dic:
  for j in dic:
   for k in dic:
    for l in dic:
     s=i+j+k+l
     if crc==((binascii.crc32(s.encode()))&0xffffffff):
        password+=s
      	print(password)
print(password)

得到password:the_password_here_cipher

拿去解压打开flag.txt即可得flag:

CMISCCTF{how_to_burp_by_coding}

Misc5-Trees

用Stegsolve查看颜色通道时发现部分文字,CMISCCTF{co******t_tree}
上网查单词,得到coconut(椰树)(又暴露英语水平了),猜测flag为CMISCCTF{coconut_tree},提交,正确。

赛后群里大佬给出了正解

from PIL import Image

img = Image.open('enc.png')
w = img.width
h = img.height
img_obj = Image.new("RGB",(w//16,h//16))

for x in range(w//16):
    for y in range(h//16):
        (r,g,b)=img.getpixel((x*16,y*16))
        img_obj.putpixel((x,y),(r,g,b))

img_obj.save('ok.png')

Misc6-qrcode

直接上工具补全二维码

Flag: CMISCCTF{qr_c0de_r3c0very}

Misc7-blind

考查图片盲水印隐写以及PNG文件修复

扔进kali中去binwalk,发现两张图片,foremost分离

使用decode.py版盲水印脚本

查看得到压缩密码Q@CTF@NX,解压图片:

Winhex查看并修复文件头,

补齐文件头,得到flag

Misc8-music

这题是最伤心的,也是我们这次比赛最大的败笔
用audactity分析,发现了音频中有很多高低频

猜测为二进制,用高频表示1,低频表示0,8位位一组,可以发现前面的数据转出来是Rar!,奈何不清楚如何提取其中的二进制数据,手撕三个半小时未果,赛后复现看到大佬用python脚本提出了压缩包数据,后面是NTFS文件流隐写以及PNG图片改高得二维码,这里不再详细叙述了,需要请大佬队伍的wp
web,pwn和reverse可以参考大佬队伍的wp写的也很详细

Crypto的疑惑

这里只想再提一下密码学,同时也以虚心学习的态度请教大佬
Crypto-Factor题目
n = 3454083680130687060405946528826790951695785465926614724373
e = 3
c = 1347530713288996422676156069761604101177635382955634367208
gcd(m, n) = 1
n可以由yafu或在线分解得

p=11761833764528579549
q=17100682436035561357
r=17172929050033177661
使用多因子RSA脚本以及小指数爆破攻击均未果,没有思路了,求教

Crypto-Change题目

from flag import FLAG
from Crypto.Util.number import *
import gmpy2
import random
while True:
    p = int(gmpy2.next_prime(random.randint(10**399, 10**400-1)))
    q = int(str(p)[200:]+str(p)[:200])
    if gmpy2.is_prime(q):
        break
m = bytes_to_long(FLAG)
n = p*q
e = 65537
c = pow(m,e,n)
with open("enc","wb") as f:
    f.write(str(c))
    f.write("\n")
    f.write(str(n))

赛后发现是2019高校运维赛的题目使用该脚本的时候发现,那个题目的n恰好为800位,所以在计算的时候可以直接取n的前两百位和后两百位,这个题目的话由于q,p可能是400位出头的质数,相乘以后的n为798位,在提取n的位数的时候就有些犹豫,目前还没有复现解出这个题目,求大佬帮我答疑解惑。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服