目录

  • 前言
  • 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+lif crc==((binascii.crc32(s.encode()))&0xffffffff):password+=sprint(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 Imageimg = 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写的也很详细
引用的wp如下:

import numpy as np
import struct
import wave
import redef write_records(records, format, f):#Write a sequence of tuples to a binary file of structures.record_struct = Struct(format)for r in records:f.write(record_struct.pack(*r))path = "./music.wav"
f = wave.open(path, "rb")
# 读取格式信息
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 读取波形数据
str_data = f.readframes(nframes)
f.close()
#将波形数据转换为数组
wave_data = np.fromstring(str_data, dtype=np.short)
b = ''
# arr = [elem for elem in wave_data if elem >0]
max = 0
d = ''
for i in wave_data:if i <0:if max !=0:if max<25000:d +='0'else:d += '1'passmax = 0if max < i:max = iprint(d)
print("\n\n\n\n")
a = re.findall(r'.{8}',d)
hex_list=[]
for i in a:res = hex(int(i,2))hex_list.append(res)
print(hex_list)with open("result.txt","wb") as f:for x in hex_list:s = struct.pack('B',int(x,16))f.write(s)

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的位数的时候就有些犹豫,目前还没有复现解出这个题目,求大佬帮我答疑解惑。
我又回来了,赛后找大佬积极复现了题目,发现这个RSA真是有意思(头秃,再也不写RSA了),得到的解释是这样的,由于p是生成的四百位质数,q为p的前后两百位交换,所以有可能p的第201位刚好为0,导致q为399位的质数,最后导致n为798位(太强了吧),大佬的wp如下:

c='182812482972168423884795132699225934365072979206288632257180603530046820174392675977209758378734399146216742345585898385168866887000708558119959898992294085847474548306743585711154035585848291290988967352517174312220756638881837930962458861193652684492265539096477345065113556380573776423787885892688197584678128636231428194711357642971544417113415626331810909274966752557628893585198569815939514862013512237657828262360291726912615575646318630641527418369988268899879152029186728850816178597399494254385226049249357897840618728804680238123954207656671747782543031545429711152272581734051959578453680011676521727918037340906791388178004979453256050227967701258768070039292546964652071924183467364467145178290753361477912582242961929982420950384199259355122986865808523351306098081481072454093823090'
n=438980397031315392229453908048509540832246041631432878509579665664182747463100230160823865621798053164989325086085003940181731721089701380743698761443812523024144817205902380903062054138730658451286904347536210833160924917347633148983052015550354913154312162901555870494273903714349869746793861874257201085777893961715468950661641778512110325457371446203379767458862059193946434683324578530163650541637261158037041205642428802942295011562277084687025213626698849526240663754073508102229066475773893638716845176469070938803298515155140240970836387785401085919369741520890271902332951669953411373633688944162470994856654604872287103746922041844065053274059990595496159866206551119361036237431289830985174384522423364811997241255005514248198447925396378192915553898993758660041223393168707380580012437
s=str(n)[:198]+str(n)[-200:]
print(len(str(n)))
xy=int(s)
t=n-xy*(10**400)-xy
print(t)
xy2=(t)//(10**200)
import gmpy2
x_y=gmpy2.iroot(xy2-2*xy,2)[0]
x__y=gmpy2.iroot(xy2+2*xy,2)[0]
x=(x__y+x_y)//2
y=x__y-x
p=x*10**200+y
q=n//p
e=65537
d=gmpy2.invert(e,(p-1)*(q-1))
from Crypto.Util import number
print(number.long_to_bytes(gmpy2.powmod(int(c),d,n)))

运行即可得到flag

第三届江西省高校网络安全技能大赛 部分wpCrypto的疑惑相关推荐

  1. 2020 第三届江西省高校网络安全技能大赛 线上赛Writeup

    赛题类型 Misc Misc1-Hello Misc2-encrypt Misc3-jump Misc4-Burps Misc5-Trees Misc6-qrcode Misc7-blind Misc ...

  2. 2020第三届江西省高校网络安全技能大赛 线下赛 CTFAWD Writeup

    文章目录 CTF Misc Boring_exe !_ ezAffine Daylight Blue Web Aurora website web2(忘了叫啥名) Crypto EasyRSA Int ...

  3. 第四届江西省高校网络安全技能大赛 决赛 MISC

    第四届江西省高校网络安全技能大赛 线下赛MISC 拿到这图片用010editor打开,没看到什么有用的信息,然后用stegsolve打开图片. 在发现是LSB隐写,通道BGR里面有一个rar文件,sa ...

  4. 第四届江西省高校网络安全技能大赛 复现 2021-09-30

    文章目录 crypto Yusa的密码学课堂-CBC第二课 Yusa的密码学课堂-CBC第三课 Misc 奇奇怪怪的编码 extractall crypto Yusa的密码学课堂-CBC第二课 题目: ...

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

    Misc-Hello 拿到一串字符串Q01JU0NDVEZ7V2VsY29tZV9DVEZlciF9 猜测是base64编码 解得CMISCCTF{Welcome_CTFer!} Misc-encry ...

  6. wp篇 AWD某一赛题全流程复现【江西省高校网络安全技能大赛】

    一,赛题概述 1概述 这道题目是PbootCMS V3.05,主页面如下. 2配置概述 采用tutum/lamp的镜像,Php 5.3+,其他扩展自行apt安装即可 3漏洞赛题 目前在dump下来的镜 ...

  7. 大家好,我是风溯,第三届百度大学生网络安全技能大赛个人第一

    白帽江湖人才辈出,传奇人物不胜枚举,这里只用实力说话,也许你没见过大佬真容,但ta的"传说"或许早有耳闻~ Xrayteam安全团队的xxxeyJ:"挖洞只是展现个人能力 ...

  8. “东华春秋杯”上海大学生网络安全技能大赛决赛收官 聚焦高校人才培养

    11月21日, 由上海市教育委员会.上海计算机开放系统协会指导,东华大学主办,北京永信至诚科技有限公司协办,阅文集团.上海盛大网络发展有限公司.上海勋立信息科技有限公司.上海犇众信息技术有限公司支持的 ...

  9. 第二届全国计算机安全技能比赛,第2届网络安全技能大赛试题(2018年).PDF

    第2届网络安全技能大赛试题(2018年) 第2 届网络安全技能大赛试题(2018 年) 一.选择题(每题1 分,共50 分) 1.网络的链路层中,以( )作为数据的传输单位. A. 比特 B.数据帧 ...

最新文章

  1. JS~字符串长度判断,超出进行自动截取(支持中文)
  2. .NET Core程序中使用User Secrets存储敏感数据
  3. 数据库修改,删除的操作必须有保险操作。
  4. 时间控件_Selenium时间控件的处理
  5. PAT (Basic Level) Practise - 继续(3n+1)猜想
  6. 13个超棒的代码资源网站推荐
  7. netty心跳过程中 发送消息失败_Netty 4.0 实现心跳检测和断线重连
  8. Bootstrap 插件的选项
  9. 游戏王计算机兽,游戏王星杯卡——迅猛龙,再生圣经,入侵蠕虫,鼹鼠,幽世之血樱...
  10. 【深度学习】循环神经网络(RNN)的tensorflow实现
  11. 轻量级小型网站导航条
  12. 博客搬家工具(服务)详解
  13. 不学点《近世代数》怎么学好现代密码学
  14. 华硕老毛子(Padavan)——校园网锐捷(Ruijie)认证路由限制解决方案(锐捷(Ruijie)认证+赛尔认证)
  15. .NET6东西--可写的JSON DOM API
  16. 我喜欢生命本来的样子
  17. 关于微信商户企业付款给用户限额问题的说明
  18. 自噬决定免疫细胞分化及功能执行
  19. VR虚拟现实AR增强现实编程(1):VR和AR简介
  20. 虚拟机RedHatLinux9安装Oralce92全过程

热门文章

  1. redis开启rdb和aof后文件正确恢复
  2. python递归,匿名函数
  3. 2020.10.24--AI--波纹便签、字体设计、徽章制作
  4. 数据结构实验教程-第一套
  5. web大学生个人网站作业模板——上海旅游景点介绍网页代码 家乡旅游网页制作模板 大学生静态HTML网页源码
  6. 大一计算机思维知识点,大学计算机基础教学中计算思维的培养途径
  7. 心はちょっと疲れた、誰も片隅に休んで……作者の宝物は
  8. 关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享
  9. Silverlight 2教程(四):Chiron.exe:Silverlight 2打包和动态语言部署工具
  10. 面试文案策划要准备一些什么?