【脚本】Push镜像到Dockerhub

首先你要自己制作一个Docker镜像,这个就不再赘述了,相信各位都会了

  1. COMMIT你的镜像,-p可选,为commit时暂停容器
    docker commit <容器ID> <镜像名:版本号>

    file

  2. 登录你的Dockerhub
    按提示输入账号密码

    docker login
  3. 修改规范你的镜像名
    规范为<注册用户名/镜像名>
    可以通过tag指令修改镜像名

    docker tag <旧镜像名> <新镜像名>
  4. 推送至仓库,版本号可填latest,意思是最新的容器
    docker push <镜像名:版本号>

    file
    登录Dockerhub就确认已经推送上了
    file
    如果你在windows下,且有Docker on desktop,你可以通过这样操作登录,直接push
    file

梅开二度:记得给Docker换源,不然慢死,参考脚本如下
【脚本】Linux换源汇总

【CTFd】靶场安装与配置(Docker一键配置版)

【CTFd】靶场安装与配置这由于上一次的配置有点小问题,主要是Whale插件不再支持CTFd3.x版本,于是找了个新的插件使用
并且找到了更好的解决方式,不用那么麻烦配环境了
CTFd-Whale最新维护仓库
这次我采用Docker一键部署,并且稍加改动添加了中文包
成果图
file
继续阅读【CTFd】靶场安装与配置(Docker一键配置版)

【脚本】正则表达式详解

最近在Github上遇到了个很好的学习正则表达式的仓库
Github-Learn-regex
对于一些正则表达式的高级应用我也不是很熟,于是来重新学习下
在线测试网站Regex101

什么是正则表达式?

正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。

1. 基本匹配

正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成。
例如:一个正则表达式 the,它表示一个规则:由字母t开始,接着是h,再接着是e

"the" => The fat cat sat on the mat.

正则表达式123匹配字符串123。它逐个字符的与输入的正则表达式做比较。
正则表达式是大小写敏感的,所以The不会匹配the

"The" => The fat cat sat on the mat.

2. 元字符

正则表达式主要依赖于元字符。
元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。以下是一些元字符的介绍:

元字符 描述
. 句号匹配任意单个字符除了换行符。
字符种类。匹配方括号内的任意字符。
[^ ] 否定的字符种类。匹配除了方括号里的任意字符
* 匹配>=0个重复的在*号之前的字符。
+ 匹配>=1个重复的+号前的字符。
? 标记?之前的字符为可选.
{n,m} 匹配num个大括号之前的字符或字符集 (n <= num <= m).
(xyz) 字符集,匹配与 xyz 完全相等的字符串.
| 或运算符,匹配符号前或后的字符.
\ 转义字符,用于匹配一些保留的字符 ( ) { } . * + ? ^ $ \ |
^ 从开始行开始匹配.
$ 从末端开始匹配.

继续阅读【脚本】正则表达式详解

【CTFd】靶场安装与配置

建议使用新版【CTFd】靶场安装与配置(同时支持Whale+Owl+AWD的Docker一键配置版v2)

CTFd是githbu上开源的ctf靶场之一,配合上whale等插件,可以快速搭建一个靶场

CTFd

以下测试环境均为Ubuntu20.04,Python3.8
CTFd官网
CTFd-Github仓库
CTFd中文汉化
由于本人更喜欢汉化风格,所以使用的均为CTFd_chinese_CN下3.4.1版本的CTFd

  1. 克隆CTFd代码并安装相关依赖
    #如果空白环境
    sudo ./prepare.sh
    #如果是在宝塔环境下安装(bt自带的python会产生冲突)
    sudo apt-get --fix-broken install
    #如果已经安装好python环境(建议使用3.7)
    sudo pip install -r requirements.txt
  2. 下载CTFd_chinese_CN-v3.4.1并将CTFd目录覆盖到你的项目目录
  3. 运行,默认运行在http://127.0.0.1:4000,你可以通过更改配置文件使其监听0.0.0.0,或者使用nginx反代,此处使用后者
    #配置文件CTFd/config.ini
    python serve.py

    继续阅读【CTFd】靶场安装与配置

【脚本】安卓虚拟机配置

本文分为CM-x86和WSA(Win11安卓子系统)两部分

CM-x86

CM-x86是Android-x86的衍生版本,用作PC的安卓虚拟机再好不过
我使用的是CM-x86-14.1(64位),以下为配置
file
在安装时有以下几步

  1. GPT安装 NO
  2. 创建新磁盘(New)->设置为启动盘(bootable)->写入分区表(Write)
  3. 安装Grub引导
  4. EXT4文件格式
  5. Reboot重启即可

但是完成以上几步,只能进入到安卓的Shell模式,无法进入图形界面,可以选择下面第三个的nomodeset模式
file

继续阅读【脚本】安卓虚拟机配置

【MISC】Wordle

TQLCTF-Wordle题目出自当下火热的填字游戏
填字游戏的规则为输入五个字母,然后分别返回五个颜色

  • 绿色:位置和字母均正确
  • 黄色:字母正确位置不正确
  • 灰色:字母和位置均不正确

我们的任务就是用最少的次数,把答案找出来
在该题目中,颜色可以通过字节流分辨出来。在这之前,我在B站大学看到过一个讲述相关技术的视频,于是我就翻了下。
利用信息论解决Wordle问题
理论存在,实践开始
于是,又写了一个10K的代码,发现自己的代码只能做到平均4.3左右。
好废物啊我
于是上Github找轮子Wordle-solver
这个开源项目能做到平均3.4,然后就有了如下10K代码

继续阅读【MISC】Wordle

【脚本】WSL数据磁盘迁移

Windows中WSL默认磁盘为C盘,这导致在安装了Docker,Kali,Ubuntu等WSL后,C盘空间不足,于是参照相应Issue有如下脚本

#以下脚本均应该在PowerShell管理员模式下运行
wsl --list -v
PS C:\Windows\system32> wsl --list -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2
  kali-linux             Stopped         2
#查看相应WSL
wsl --shutdown
#停止WSL
wsl --export Ubuntu F:\WSL\Ubuntu.tar
wsl --export docker-desktop F:\WSL\docker-desktop.tar
wsl --export docker-desktop-data F:\WSL\docker-desktop-data.tar
wsl --export kali-linux F:\WSL\kali-linux.tar
#导出WSL
wsl --unregister Ubuntu
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
wsl --unregister kali-linux
#删除对应WSL
wsl --import Ubuntu F:\WSL\Ubuntu F:\WSL\Ubuntu.tar --version 2
wsl --import docker-desktop F:\WSL\docker-desktop F:\WSL\docker-desktop.tar --version 2
wsl --import docker-desktop-data F:\WSL\docker-desktop-data F:\WSL\docker-desktop-data.tar --version 2
wsl --import kali-linux F:\WSL\kali-linux F:\WSL\kali-linux.tar --version 2
#在新位置重新导入
wsl -d Ubuntu exit
wsl -d docker-desktop exit
wsl -d docker-desktop-data exit
wsl -d kali-linux exit
#重新对应WSL
ubuntu config --default-user root
kali config --default-user root
#设置Ubuntu/kali默认用户

【脚本】NC中的SHA256解密

VNCTF-CRYPTO-ezmath是一道完全没难度的密码题,但是又是一道非常有难度的脚本题
这题只要返回4*N就好,难度就在写脚本了
在PWN等运用到nc的题目中,Sha256是最好的防止扫端口的计算方法。
由于Sha256不可逆,我们只好通过暴力或者撞库的方式找出所有解
但是这题又使用的是Sha256(????+XXXXXXXXXXXX)这样的方式,所以只好选择暴力了
再配合上pwntools,发就完事了
继续阅读【脚本】NC中的SHA256解密