【补档】D^3CTF 2021 - Misc - easyQuantum WriteUp

【补档】D^3CTF 2021 - Misc - easyQuantum WriteUp

图源:@しぐれうい 《雨に恋う》 83975808

cap.pcapng用Wireshark打开,清晰可见TCP的三次握手和四次挥手:

image-20210225173442277

image-20210225173518052

于是需要仔细分析中间的数据传输过程。

注意到某些数据包内有“numpy”等字符串:

image-20210225173716886

于是想到可能是某种兼容Python的序列化方法。

又注意到有固定的头部数据:

image-20210225174044360

image-20210225174106286

而pickle序列化时也有固定的头部数据(协议版本4.0):

image-20210225174451338

于是尝试利用pickle进行反序列化。示例如下:

1
2
3
4
5
6
7
8
9
10
import pyshark
import pickle

cap = pyshark.FileCapture('cap.pcapng')
test_pack = cap[3]
data = test_pack.data.data.binary_value

deserialized = pickle.loads(data)

print(deserialized)
阅读更多
【补档】D^3CTF 2021 - Misc - Robust WriteUp

【补档】D^3CTF 2021 - Misc - Robust WriteUp

图源:@電瘋扇 《仓鼠松鼠》 91999586

“Robust”意为“鲁棒性”。

打开cap.pcapng,发现都是QUIC协议的数据包。结合提供的firefox.log(即使用firefox浏览器访问时生成的SSL Key Log)可以想到基于QUIC协议且强制使用TLS 1.3的HTTP3。

导入SSL Key Log:

image-20210301153942031

清晰可见HTTP3数据包。利用过滤器过滤出所有HTTP3数据包,然后从头查看:

1
http3

image-20210301154351049

可以明显看出,642号包之前的部分是在载入网页和JavaScript脚本。在第642号包处可以发现一个m3u8 playlist:

image-20210305163835730

阅读更多
Rime(1):介绍与安装

Rime(1):介绍与安装

图源:@爱卿 《夏》 82079855

什么是 Rime?

RIME,官方中文名称为“中州韻”(即“中州韵”,中原之韵),是一款开源的轻量的跨平台输入法库,由佛振等人开发。源代码现托管在 Github 上:rime/librime。Rime 具有很强的扩展性和可定制性——你可以使用 Lua 编写它的插件,也可以通过自定义配置文件实现自己研发的、更加高效的汉字输入方案,或者实现多语言混合输入,又或者你只是想在各个平台上获得统一的文字输入体验。这一特性使得强大的 Rime 在使用上拥有无限的可能性。本文是 Rime 系列的第一篇,主要记录 Rime 在各个平台下的安装,及其基础的使用方法。

如何安装 Rime?

Librime 是一个开源的输入法库。库像是一种”后端“,不能直接用于文字输入。需要和配套的“前端”(一说“发行版”)一起使用。“前端”也已有不少实现,列举使用人数较多的输入法“前端”如下:

  • rime/squirrel,中文名为“鼠须管”,macOS 下的输入法前端;
  • rime/weasel,中文名为“小狼毫”,Windows 下的输入法前端;
  • osfans/trime,中文名为“同文输入法”,Android 下的输入法前端;
  • jimmy54/iRime,中文名为“iRime输入法”,iOS 下的输入法前端,注意有应用内购付费,而且有人反映其并未严格按照Rime前端统一的规范加载配置文件;
  • rime/ibus-rime,Linux 下的输入法前端,基于 IBus;
  • fcitx-rime,Linux 下的输入法前端,基于 Fcitx

或者你也可以利用librime,编写自己的输入法前端。

Windows - Weasel

Weasel可以直接在Rime的官网下载安装,也可以手动编译安装。截止本文写作之时,Rime官方发布的稳定版本为0.14.3,采用librime 1.5.3版本,更新于2019年6月22日。而librime的最新版本已迭代至了1.7.2,修复了不少错误并且向后兼容。因此强烈推荐手动编译新版本并安装。

编译所需环境:

  • Visual Studio 2017
  • Boost 1.69.0
  • CMake
  • NSIS
  • Git、7z、Wget for Windows等常见工具

下面简单叙述步骤。

阅读更多
ASUS C302CA Chromebook 安装 Linux 和 Windows

ASUS C302CA Chromebook 安装 Linux 和 Windows

图源:@山桂贰 87141455

最近在咸鱼上淘到了一个二手的华硕 Chromebook(具体型号是 ASUS C302CA)。四核 M3-6Y30 + 8G 运行内存+ 32G eMMC 存储 + 12.5 寸触摸屏,虽然机身有少量磕碰,笔记本的转折铰链也有问题,但 800 元的价格着实实惠。

机器寄过来的时候依然是原装系统(Power Wash 过的 Chrome OS)。写个文章记录一将 OS 从 Chrome OS 换成 Manjaro 和 Windows 10 的过程。

拆写保护(WP)螺丝

Chromebook 的 BIOS 都是为了配合 Chrome OS 而特殊定做的,因此无法用来启动其他操作系统,没有 BIOS 设置界面,也无法升级 BIOS。但是可能是出于修理和防止可能的 BIOS 紧急固件更新,制造商仍然允许使用者解除 BIOS 的写入保护。常见的保护方式在 Chromium Projects Wiki 里有详细说明:

Application Processor (AP) Firmware

AP firmware (also known as “SOC firmware”, “host firmware”, “main firmware” or even “BIOS”) typically resides on a SPI ROM. Protection registers on the SPI ROM are programmed to protect the read-only region, and these registers normally cannot be modified while the SPI ROM WP (write protect) pin is asserted. This pin is asserted through various physical means (see below), but with effort, users can unprotect devices they own.

Embedded Controller (EC) Firmware

The Chrome OS Embedded Controller (EC) typically has a WP input pin driven by the same hardware that generates SOC firmware write protect. While this pin is asserted, certain debug features (eg. arbitrary I2C access through host commands) are locked out. Some ECs load code from external storage, and for these ECs, RO protection works similar to SOC firmware RO protection (WP pin is asserted to EC SPI ROM). Other ECs use internal flash, and these ECs emulate SPI ROM protection registers, disabling write access to certain regions while the WP pin is asserted.

阅读更多
Linux & Windows 小技巧(3)

Linux & Windows 小技巧(3)

图源:Miv4t - 《MACHiNERY》,Pid:77186528

Windows 下的 cat 和 grep

lscatgrep这三个命令,往往是Linux初学者最先了解、日常使用Linux时不可或缺的。对于Windows系统而言,同样有三个命令可以完成上述工作:dirtypefindstr

例如,用type显示文件内容:

image-20210413151134589

或者用findstr结合管道匹配先前程序输出内容中的字符串:

image-20210413151152079

也可以结合正则表达式:

image-20210413151207393

当然,如果你不满足于系统命令的显示效果,你也可以尝试下面两款开源于Github的工具:

peco

项目链接:https://github.com/peco/peco

peco可以实现对管道输入的文本进行快速搜索、排序、多行选择等功能,使用Golang编写。目前仍不支持中文编码(GBK),且不支持默认的Windows Powershell终端(你需要使用传统的命令提示符,或者更先进的终端程序,比如Hyper或者Windows Terminal)。该项目仍在活跃开发中,合理的使用可以提升效率。

image-20210413151244160

阅读更多
Hexo 新姿势!

Hexo 新姿势!

图源:《三色Δ绘恋》第8幕 烟花大会

Hexo的插件真是个好东西!一开始部署博客的时候并没有太在意插件的问题,毕竟觉得博客主题自带的插件其实挺全面的,足够使用了。但是用久了总是会腻,就想着简单的博客能不能有一些新操作新方法加入。即使是添加写功能也好。于是就翻了翻插件目录,挑了些比较有用的插件,拿出来做个总结,同时也是为了方便以后使用做的一个简单记录。

文字上标

插件是hexo-ruby-character,需要在Linux环境下编译npm包。

示例:{% ruby Chocolate | Vanilla %} ,也可方便的给汉字注音,例如:{% ruby 鬼魅魍魉 | 鬼魅魍魉 %},又或者是恶搞,类似: {% ruby 精彩节目 | 前方高能 %},同时也适用于其他语言,譬如:{% ruby 噓 | うそ %} だの?

由于其依赖包nodejieba兼容性问题,此处不再提供演示。

管理员界面

插件是hexo-admin,效果是一个类似CodiMD编辑页面的“管理控制台”,可以实时编辑预览Markdown文章,修改tag,从剪贴板粘贴图片到文章等操作。注意:仅用于hexo s状态下的博客实例。

文章加密

插件是hexo-blog-encrypt,使用前须在站点配置文件加入以下内容:

1
2
encrypt:
enable: true

随后在文章的开头部分加入password:字段设置密码即可。

同时,配合abstract:字段和message:字段可以设置对无密码人的提示信息。同时注意不要设置toc。

中英文自动空格

插件为hexo-filter-auto-spacingnpm install --save之后就可以用,无需手动设置。

阅读更多
PHP 及 PHP 插件编译

PHP 及 PHP 插件编译

图源:《明日方舟》 战场背景2

今后文章会同步更新在我的 CSDN 博客,但是还是以这个自己拿阿里云服务器搭建的网站为主的。不过CSDN有个好处是可以被国内的搜索引擎抓取到,嗯,省得我做搜索引擎优化了啊。

如果有人只想看完整写完的文章的话,也请左拐 CSDN,或者这里。主站开了七牛云加速,顺便做了 Google 、 Bing 和百度等的搜索引擎收录。最近身体欠佳。原定的学习计划和博客更新计划也不出意外的咕了。没有办法。健康是第一要务。等待过后慢慢去补吧。

编译 PHP

安装必要环境

包含编译器,和编译需要的库。所有的编译操作均在 Ubuntu 19.04 下进行。

1
2
sudo apt-get update
sudo apt install -y gcc g++ cmake make libxml2-dev libbz2-dev libcurl4-gnutls-dev libzip-dev libwebp-dev libpng-dev libjpeg-dev libxpm-dev libfreetype6-dev

下载源码

你可以 clone GitHub 上的代码:

1
git clone https://github.com/php/php-src.git

当然也可以到 php.net 下载源码并解压:

1
2
3
4
wget https://www.php.net/distributions/php-7.3.7.tar.gz
tar -xvzf php-7.3.7.tar.gz
rm php-7.3.7.tar.gz
cd php-7.3.7/

开始编译

首先读取插件列表(插件列表没有修改的时候可跳过此步骤):

1
./buildconf --force
阅读更多
Linux & Windows 小技巧(2)

Linux & Windows 小技巧(2)

图源:《ソード・アート・オンライン(刀剑神域)》第一季第二集 CM

博客一直在慢速更新…之前一直忙于各种事情,学校的课、比赛、不断接触和学习新的东西,因此没什么机会静下心来好好整理、记录我学到的东西,也就没有办法一并记下我对某些问题的理解和思考。

之前一度认为,“有写博客文章的时间,还不如好好学点新的东西”。但是自从领悟到我和舍友之间记忆力和知识熟练程度的差距之后,终于肯下定决心好好写自己的博客了——我比不上他们,我真的不是那种过目不忘的人,所以只能通过不断的复习和总结才能勉强记住些东西。

有人说,初学者是“什么都不会,同时自己不知道自己会什么”,稍有学识的普通人是“自己会些东西,但是自己觉得自己会的很多”,而大神则是“自己会很多东西,但是自己觉得自己学的不多而且不知道自己已经会了什么”。

可能我还是初学者吧。

git push 反复输密码很烦?

有的时候可能会遇到一种极端情况:假设你要编写脚本,比如:自动化运维脚本。其中涉及到一些对 git 仓库的操作,而且需要密码,比如:在自动脚本中让部署机器拉取私有仓库,或是让部署机器将构建后的代码使用某个 github 账号推送到某个 git 仓库。这个时候需要用户手动输入用户名和密码,但是我们往往不能手动输入——比如公用的 docker build machine,根本不允许用户在构建过程中进行交互。

阅读更多
Linux & Windows 小技巧(1)

Linux & Windows 小技巧(1)

图源:《三色绘恋》 游戏背景图

最近又学到了一些零零碎碎的 Linux、Windows 命令,和一些可能今后会用得着的小技巧,怕自己忘记,所以把它们写在博客里面提醒一下自己,免得到时候再花费大量时间去百度、Google 找文章。

Linux 下查看进程树?

查看进程有好几种方式,tophtop 这种可视化的,还有 ps 这种纯文本输出的程序都可以做到。但是如果想要查看某一进程的父进程或者子进程PID该怎么办?可以借助另一个程序,pstree。参数很灵活,可以根据需要启用或关闭。程序截图如下:

image-20210411152055083

WinHex 的替代品?

WinHex是很强大的一个二进制文件查看和编辑工具(尤其是做 CTF 杂项题的时候 :)。虽然说现在全网随便搜搜就有破解版(Cracked Version)可以用,但是多了解几个 WinHex 的替代品,有备无患。

EditPlus

说起来很巧,这个神器还是我在学校图书馆电脑上发现的。本来以为这东西只能编辑编辑文本,做 Notepad++ 的小弟,没想到这还能打开二进制文件查看16进制数据(emmm,不能编辑),而且…还支持 Windows ARM。

image-20210411151916081

打开文件之后,点击 Edit->Hex Viewer 即可查看十六进制数据。

阅读更多
压制技术 A:光盘的种类、资源发布标注与常见名词解释

压制技术 A:光盘的种类、资源发布标注与常见名词解释

图源:《终将成为你》BD-1 声优特典 背景图

常见光盘种类

CD

Compact Disc,又叫做“小型镭射盘”、“激光唱片”,通过激光来读写数据。单层容量大概 700MB。其中一般存储的是音乐,但也有存储视频、相片、软件(多数是游戏)的 CD。常见分类如下:

  1. 按存储内容分类:
    • CD-DA: 音乐 CD
    • CD-I: 交互式 CD(游戏CD)
    • VCD: 视频 CD
    • CD+G: 带有专辑图片和歌词的音乐 CD
    • Photo CD: 图片 CD
  2. 按读写情况分类:
    • CD-ROM: 只读光盘。光盘背面的凹槽为厂家印制。
    • CD-R: 一次性写入光盘。 光盘背面的凹槽为刻录机烧制。
    • CD-RW: 可读写光盘。
阅读更多
RCTF 2019 杂项 Disk WriteUp

RCTF 2019 杂项 Disk WriteUp

图源:《明日方舟》游戏背景 龙门之夜

我又来随便糊一篇文章了。

题目设定如下:

An otaku used VeraCrypt to encrypt his favorites.

Password: rctf

Flag format: rctf{a-zA-Z0-9_}

题目给的提示十分简单。于是准备 VeraCrypt,开始解题。

找前半段Flag

首先下载题目附件,得到 rctf-disk.zip,解压得到 encrypt.vmdk。因为无法确定 vmdk 是 VeraCrypt 加密完的虚拟硬盘文件随便改了个格式,还是存储了 VeraCrypt 加密后虚拟磁盘文件的虚拟磁盘(这话真的超级绕hhh),因此先尝试使用 7zip 打开该文件。

7zip可以成功打开

阅读更多
西湖论剑预选赛 Misc 第二题 Write-UP

西湖论剑预选赛 Misc 第二题 Write-UP

图源:“西湖论剑”线上赛主页

所以说,近期铺天盖地宣传的“西湖论剑”网络安全技能赛预选已经结束了。在这里随便糊一篇文章(也是我第一次写Write-Up文章),就聊聊杂项最先放出的那个第二题的解法。

首先拿到题,解压,发现里面有“题目描述”,先看描述,是这么写的:

我们截获了一些IP数据报,发现报文头中的TTL值特别可疑,怀疑是通信方嵌入了数据到TTL,我们将这些TTL值提取了出来,你能看出什么端倪吗?

然后看给出的另一个文件,ttl.txt,里面的内容是这样的:

image-20210411163821143

不难发现TTL值只有 $63$,$127$,$191$,$255$ 四种,都是$2$的某次幂$-1$的值。于是将这四个数都转换成二进制,得到 $111111_2$、$1111111_2$、$10111111_2$、$11111111_2$ 四个二进制数。从后面两个数字可以观察到二进制数的开头两位似乎有关系。又因为TTL值为一个8位整数,进行合理猜想,不妨将不足8位的二进制数开头补0,变为8位后再取开头两位。即:$00111111_2$、$01111111_2$、$10111111_2$、$11111111_2$提取开头两位为:$00_2$、$01_2$、$10_2$、$11_2$,恰好为全排列,可以用于数据的存储。

这样每组两个比特,四组就可以组成一个字节。博客园上也有文章提到了这种数据隐藏方式(点击这里)。

阅读更多
拜年祭启发的小小探索

拜年祭启发的小小探索

图源:Bilibili 2019 拜年祭 视频截图

2019年2月4日,一年一度的哔哩哔哩拜年祭如约而至。不得不说,今年的拜年祭在节目质量和形式上相较于前三年都有较大的提升。出于在电视上离线播放(即非网络电视,而是读取存储设备上的媒体文件)的需求,及家中的缓慢网速达不到 Bilibili 大会员 1080P+ 无卡顿播放的程度,我利用少量的空余时间对 Bilibili 高清视频的下载方式进行了简单实践,并在本文中进行简单总结。

ID

熟悉B站的用户应该都会了解到,B 站上的视频、音频、专栏文章、用户都是以唯一的 ID 进行标识的。以“【星尘原创】尘降【PV付/COP】”这个视频为例:其视频地址为:https://www.bilibili.com/video/av4402328,该视频所对应的音频的地址为:https://www.bilibili.com/audio/au18065,上传该视频的UP主的个人主页地址为:https://space.bilibili.com/396194。由此我们可以获取到以下类型的唯一 ID:

  • 视频 ID [Anime (Video) ID, aid/avid]:4402328
  • 音频 ID [Audio ID, auid]:18065
  • 用户 ID [User ID, uid]:396194

中包含的“av”、“au”、“cv”等均是为了区分 ID 的类型所用。在 Ajax 请求过程中各 ID 的值均为数字,不包含字符。

阅读更多
你好,世界!

你好,世界!

图源:创客贴

经历了各种思考和尝试,包括:好的服务器太贵、好的云空间太贵;低价的 VPS 和云空间不是速度慢就是限并发限 Idle;域名太贵(But 最终还是买了);找不到顺眼的主题;配置太麻烦;可用性达不到要求,等等。最终的最终,将这个静态小博客安放在了 Github 上。最近比较长的一段时间会陆陆续续把之前欠下的、想写的博文补上。

顺便说一下,由于时间有限等多种因素,博文可能会写的很简略。如果您有幸阅读某一篇博文但却未能完全理解的话,充分利用搜索引擎和评论区可以事半功倍。 特别说明:文章在编写过程中将不开放评论功能。如您发现已编写完的文章中包含的错误,欢迎在评论区指出,谢谢。

最后:

欢迎访问!您的支持是我最大的动力。

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×