记一次CTFd搭建经历
# 前言 一直不想更新博客,最近组织了校内 ctf 内部比赛,之前学长搭建的 CTFd 平台版本有点过时于是打算重新部署一个最新版的,期间遇到了很多问题 同时也十分感谢 VaalaCat 师傅的耐心指点。 现将本人搭建 CTFd 的一点经验分享出来 CTFd Version 3.4.3 # 搭建 我这里参考的是 vaalacat 师傅的博客再次致谢 # 准备环境 docker docker-compose # 配置准备 首先创建一个 swarm 1docker swarm init 然后加入 1docker node update --label-add='name=linux-1' $(docker node ls -q) 镜像源可以根据自己网络需要进行更改 /etc/docker/daemon.json 修改后 重启生效 12sudo systemctl daemon-reloadsudo systemctl restart docker # 安装 参考以及使用 VaalaCat 师傅的仓库 # 下载 首先使用 VaalaCat 师傅仓库中的 ctf ...
buu刷题hatenum
# buu 刷题 Hatenum 知识点 SQL 函数 盲注 脚本编写 # 题目分析 题目给了源码 home.php 123456789101112<?phprequire_once('config.php');if(!$_SESSION['username']){ header('location:index.php');}if($_SESSION['username']=='admin'){ echo file_get_contents('/flag');}else{ echo 'hello '.$_SESSION['username'];}?> 当用户名为 admin 成功登录即可获得密码 config.php 123456789101112131415161718192021222324252627282930313233 ...
wp合集
太久没跟新了 ,就一起发了 💨 # 0x01 DAS sept # web # hellounser 一道 php 反序列化的题目: 1234567891011121314151617181920212223242526272829303132333435363738394041<?phpclass A { public $var; public function show(){ echo $this->var; } public function __invoke(){ $this->show(); }}class B{ public $func; public $arg; public function show(){ $func = $this->func; if(preg_match('/^[a-z0-9]*$/isD', $this- ...
华东南赛区Web4
# 涉及知识点 信息收集 任意文件读取 Flask 模块 伪随机数 session 构造 # 题目分析 打开题目 Hello World! Read somethings 给出一个链接 点击后 跳转到百度界面 1http://xxx.buuoj.cn:81/read?url=https://baidu.com 初步推测 ssrf 尝试 file 协议失败 local_file:// 协议成功 读取文件 123?url=local_file:///proc/self/cmdline #/usr/local/bin/python/app/app.py?url=local_file://app/app.py 1234567891011121314151617181920212223242526272829303132333435363738394041# ...
HarekazeCTF2019-encode_and_encode
# 题目分析 12345678910111213141516171819202122232425262728293031323334353637383940<?phperror_reporting(0);if (isset($_GET['source'])) { show_source(__FILE__); exit();}function is_valid($str) { $banword = [ // no path traversal '\.\.', // no stream wrapper '(php|file|glob|data|tp|zip|zlib|phar):', // no data exfiltration 'flag' ]; $regexp = '/' . implode('|', $banword) . '/i'; if (preg_matc ...
PicDown
# 知识点 liunx 中 用户和应用程序可以通过 proc 得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取 proc 文件时,proc 文件系统是动态从系统内核读出所需信息并提交的。 Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 还有的是一些以数字命名的目录,他们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在 /proc 下,以进程的 PID 号为目录名,他们是读取进程信息的接口。而 self 目录则是读取进程本身的信息接口,是一个 link 123456789cat /proc/[PID]/cmdline #包含进程的完整命令行信息/proc/[pid]/comm #包含进程的命令名。/proc/[pid]/cwd #进程当前工作目录的符号链接/proc/[pid]/enviro ...
RCEService
# 题目分析 对着题目一顿操作没弄出个所以 发现题目本身是给了源码的 123456789101112131415161718192021222324<?phpputenv('PATH=/home/rceservice/jail');if (isset($_REQUEST['cmd'])) { $json = $_REQUEST['cmd']; if (!is_string($json)) { echo 'Hacking attempt detected<br/><br/>'; } elseif (preg_match('/^.*(alias|bg|bind|break|builtin|case|cd|command|compgen|complete|continue|declare|dirs|disown|echo|enable|eval|exec|exit|export|fc|fg|getopts|hash|help|his ...
强网杯
# 0x01 pop_master 打开题目 12345678<?phpinclude"class.php";//class.php.txthighlight_file(__FILE__);$a=$_GET['pop'];$b=$_GET['argv'];$class=unserialize($a);$class->XXXXXX($b); //随机生成6位长度的函数 根据提示信息 下载源码 我滴个乖乖 2M 多的链 16 万行 12345678910111213141516171819202122232425262728class NXlGlW{ public $hGYbeeG; public function HRD4CW($y3Cae){ eval($y3Cae); } public function C3akk9($MSL6W){ eval($MSL6W); }}class qAARvi{ pu ...
sql注入
# 默认存在的数据库: mysql 需要 root 权限读取 information_schema 在 5 以上的版本中存在 # 测试是否存在注入方法 假:表示查询是错误的 (MySQL 报错 / 返回页面与原来不同) 真:表示查询是正常的 (返回页面与原来相同) 共三种情况: 字符串类型查询时: 数字类型查询时: 登陆时: ‘假’' 真 "假"" 真 \ 假 \ 真 AND 1 真 AND 0 假 AND true 真 AND false 假 1-false 有问题时返回 1 的结果 1-true 有问题时返回 0 的结果 2-1 返回与 1 相同代表可能存在问题 156 返回与 56 相同代表可能存在问题 156 返回与 1 相同代表没有问题 ’ OR ‘1’ OR 1 – -" OR “” = “” OR 1 = 1 – -’=’‘LIKE’’=0–+ 例子: 123SELECT * FROM Users WHERE id = '1''';SELECT * F ...
php知识
# 系统变量 123456$_POST // 获取 post 数据,是一个字典$_GET // 获取 get 数据,是一个字典$_COOKIE // 获取 cookie$_SESSION // 获取 session$_FILE // 获取上传的文件$_REQUEST // 获取 $_GET,$_POST,$_COOKIE 中的数据 # 错误控制运算符 PHP 支持一个错误控制运算符:@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉。 # 变量默认值 当定义一个变量,如果没有设置值,默认为 0 # $_GET 和 $_POST 1http://ctf4.shiyanbar.com/web/false.php?name[]=a&password[]=b 如果 GET 参数中设置 name[]=a ,那么 $_GET['name'] = [a] ,php 会把 []=a 当成数组传入, $_GET 会自动对参数调用 urldecode 。 $_POST 同样存在此漏洞,提交的表单数据, user[]=admin , $_POST['u ...









