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

筑基挑战 | 第14期

第1题

题目:flag值存放在系统根目录下,请根据所学知识及题目提示,获取flag值

配套工具:Cyberchef

在这里插入图片描述
进来就说是文件包含漏洞,而且配套工具也给了Cyberchef,因此第一思路是直接尝试利用 php 伪协议返回base64编码,然后解码得到flag。

于是构造一个 payload,但结果并未返回:
在这里插入图片描述
此时考虑是否存在过滤,比如过滤了 “php”、“filter”等关键字,但经过初步验证,似乎只是过滤了 php 关键字,而且发现 data 关键字并没有被过滤:
在这里插入图片描述
在这里插入图片描述
那么这道题就可以换个思路,利用 data 伪协议进行。由于已经知道题目中可能存在过滤,因此最保险的方法就是将payload进行编码后再输入。因此首先使用Cyberchef将payload进行base64编码:
在这里插入图片描述
接着通过 data://text/plain;base64,[base64编码]读取根目录文件,发现flag文件名为flag.wasj
在这里插入图片描述
那么就可以直接读取了:
在这里插入图片描述
最终Payload为:

?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgLi4vLi4vLi4vZmxhZy53YXNqJyk7Pz4=

第2题

题目:启动环境,通读代码,获得flag值吧,注意flag格式为:flag_nisp_xxxxxx

代码如下:

 <?php
$v1 = 0;
$v2 = 0;
$a = (array)json_decode(@$_GET['w']);
if (is_array($a)) {is_numeric(@$a["bar1"]) ? die("nope") : NULL;if (@$a["bar1"]) {($a["bar1"] > 2020) ? $v1 = 1 : NULL;}if (is_array(@$a["bar2"])) {if (count($a["bar2"]) != 5 or !is_array($a["bar2"][0])) {die("nope");}$pos = array_search("cisp-pte", $a["bar3"]);$pos === false ? die("nope") : NULL;foreach ($a["bar2"] as $key => $val) {$val == "cisp-pte" ? die("nope") : NULL;}$v2 = 1;}
}
if ($v1 && $v2) {include "key.php";echo $key;
}
highlight_file(__file__);
?> 

通读下来,代码首先通过参数‘w’获取数据,并且传递进来的参数必须是JSON格式,接着被转为数组类型。最后发现要想获得 flag,必须使变量$v1$v2均为1才可。

回归到代码中,要使$v1 = 1,需要“bar1”对应的值不是数字,却要大于2020。这里考虑到PHP的弱类型比较,将“bar1”取值为“2021a”即可解决。

要使$v2 = 1,需要“bar2”是数组,并且长度得等于5,第一个元素是数组,且不能存在“cisp-pte”字符串;“bar3”也得是数组,且必须要存在“cisp-pte”元素。因此此处将“bar2”构建为[[],"a","a","a","a"],将“bar3”构建为["cisp-pte"]

最终构建出的payload为:

?w={"bar1":"2021a","bar2":[[],"a","a","a","a"],"bar3":["cisp-pte"]}

第3题

题目:下载日志包,分析日志,找到flag值吧

进入界面后,告知我们有人入侵了服务器,但不知道哪里出现问题,要我们通过日志分析来找出攻击利用点。
在这里插入图片描述
先下载日志文件,长长一大条。
在这里插入图片描述
首先思路就是,日志往往是随着时间记录的,这样想的话,一般攻击成功的信息都会留在日志后面,因此先从日志最后开始分析,果然发现了几串 200 响应码的日志,盲猜攻击者在进行目录扫描这种工作。
在这里插入图片描述
其中最吸引我注意力的就是/upload/admin目录了,因为/upload目录里可能存在攻击者上传的一些恶意文件,/admin则与管理员相关,一般攻击者都会考虑获取管理员权限嘛。

结果/upload无法访问,/admin目录里则出现了一个 backdoor.php 文件:
在这里插入图片描述
在这里插入图片描述
点进该php文件,获取到flag。

相关文章:

  • UI文件上传
  • AI与IT的共生
  • 小测验——已经能利用数据集里面的相机外参调整后看到渲染图像
  • 网页聊天系统项目
  • 谷歌新域名结构:Hreflang的未来展望
  • C++ 基于多设计模式下的同步异步⽇志系统-1准备工作
  • 闩锁效应(latch up)
  • bat脚本转换为EXE应用程序文件
  • systemctl管理指令
  • opencv 给图片和视频添加水印
  • MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境
  • Dify快速入门之chatflow
  • Linux网络编程——基于ET模式下的Reactor
  • 【正则表达式】正则表达式使用总结
  • 如何在3090显卡上使用老版本torch
  • python 库 下载 ,整合在一个小程序 UIUIUI
  • LeetCode 239 滑动窗口最大值
  • 【机器学习】从炼丹到落地!模型部署与监控全流程实战指南 (MLOps 核心)
  • 【sylar-webserver】8 HOOK模块
  • Linux系统:进程终止的概念与相关接口函数(_exit,exit,atexit)
  • 智慧菜场团标试验:标准化的同时还能保留个性化吗?
  • 老年人越“懒”越健康,特别是这5种“懒”
  • 自然资源部:一季度存量商品房转移登记办理量同比增长超三成
  • 贝壳CEO拟捐赠价值4.68亿港元股份:用于行业人员医疗福利及应届生租客帮扶
  • 巴金图书馆、澎湃新闻联合举办“小时光:地铁里的阅读”主题摄影展
  • 九部门:加快建设新形态国家数字大学,探索学历学位授予新机制