今天是2026年8月1日

今天继续分享Polar靶场做题题解

Polar靶场

8.题目信息:

进入靶场:

点击Enter后会让我们从iPhone或ipad上访问:

打开BP点击Enter按钮进行抓包:

包中的User-Agent 是存放客户端软件与操作系统环境信息,不含底层硬件信息,且可伪造。,对其进行修改,改为iPhone或iPad然后发包:

成功拿到flag:flag{ba4c2f175f0dba2f2974e676c6dfbbab}

9.题目信息:

进入靶场:

在源码中看到一大串可疑字符和一句提示:

意思是让我弹个窗,先试试弹窗:

发现script标签被过滤了,我又尝试了双写绕过,发现成功了但还是没有弹窗:

打开查看器发现是我输入的值被双引号括起来了,用尖角符和双引号来闭合一下:

点击写日记,发现成功弹窗:

成功拿到flag:flag{747b11f075d2f6f0d599058206190e27}

10.题目信息:

进入靶场:

可以看到过滤了很多字符,几乎把所有能用的字符全部过滤了,并且会把我们输入的命令用var_dump来打印(var_dump可以打印变量的完整信息),我想到了超全局数组:$GLOBALS,它是PHP中的内置数组,它的作用是存放当前作用域所有全局变量,并且它刚好可以被var_dump打印出来,构造payload:

http://20fe76c3-9de3-4783-8826-f0680f962e29.www.polarctf.com:8090/?c=GLOBALS

成功拿到flag:flag{9f8a2133f0cad361ff6d22a445c2531a}

11.题目信息:

进入靶场:

题目要求我输入的字符被md5加密后,值的第1位、14位、17位要相同,然后它们相加后的值除以它们,得到的值要和第31位相同,于是我让AI给我写了一个php脚本来跑这个字符:

<?php
$target_last = '3';
for($i=1;$i<10000000;$i++){
    $hash = md5((string)$i);
    $a = $hash[1];
    $b = $hash[14];
    $c = $hash[17];
    $d = $hash[31];
    if($a === $b && $b === $c && $d === $target_last && ctype_digit($a) && $a!='0'){
        echo "找到pass = ".$i."\nmd5:".$hash."\n";
        break;
    }
}
?>

之后跑出来一个符合的值:422

输入这个字符成功拿到flag:flag{8277e0910d750195b448797616e091ad}

12.题目信息:

进入靶场题目说只有ip为1.1.1.1的用户才能得到flag:

打开BP进行抓包:

在包中添加一行X-Forwarded-For,值为1.1.1.1:

发包后成功拿到flag:flag{847ac5dd4057b1ece411cc42a8dca4b7}

13.题目信息:

进入靶场:

题目告诉我们只过滤了空格,于是我直接构造payload:

127.0.0.1;ls

发现了flag:

接下来可以用${IFS}来绕过空格,继续构造:

127.0.0.1;cat${IFS}fllllaaag.php

在源代码中拿到flag:flag{a3949821f7627a7fd30ab0722ff9b318}

14.题目信息:

进入靶场:

题目让我们用GET请求传递id=1,可以用Hackbar插件来进行传递:

可以看到第二句提示出来了,打开POST开关发POST包:

flag直接出来了:flag{a52b7cac3af0b081349001c92d79cc0a}

15.题目信息:

进入靶场:

没有发现什么有用的点,用dirsearch扫一下看看:

扫到了两个目录,先看看第一个:

里面是一些疑似密码的字符,再看看第二个:

是一个登录框,我突然想到,刚刚的字符中很可能有这里的密码,于是我直接打开BP抓包放到Intruder中队密码进行字典爆破,字典就用刚刚发现的大量字符:

爆破结束后发现一个长度不同的响应包:

用这个密码来登录:nikel

直接给我了flag:flag{8e539a7a46fea05dea18b9b9f9ff6a63}

16.题目信息:

进入靶场:

看源码:

没发现有用的东西,再看看存储-->Cookie:

发现有一个名为didi值为no的Cookie会话,我们把no改为yes再刷新页面拿到了一串像是base64编码的字符串:

去base64解码后得到一个目录:

访问这个目录拿到原题:

题目说明只要我输入的字符中有../就直接转换为空,最后再拼接.php,这题可以用伪协议来直接绕过转换,构造payload:

http://9359c05b-fb38-4b9a-a4ac-85ae6b4caa1d.www.polarctf.com:8090/data/index.php/?file=php://filter/read=convert.base64-encode/resource=/flag    #php伪协议读flag
得到一串base64编码:PD9waHANCiAgICAkZmxhZyA9ICJmbGFnezkyZWI1ZmZlZTZhZTJmZWMzYWQ3MWM3Nzc1MzE1NzhmfSI7DQo/Pg==

解码后得到flag:flag{92eb5ffee6ae2fec3ad71c777531578f}

17.题目信息:

进入靶场:

看了看源码,没有发现有用的信息,又看了一下输入框,发现提交按钮被禁用了,直接再前端把禁用标签删掉,点击可以看到提示:

让我提交ilovejljcxy就能拿到flag,但输入框字符长度被限制了,直接把这个限制也删了:

在输入框中输入ilovejljcxy点击提交:

成功拿到flag:flag{fa3f77dd58a0a8f990bb6292da75618f}

18.题目信息:

进入靶场:

让我输入名字,随便输入一个admin:

有两个链接,随便点一个发现地址栏中出现了传参点:

我们让网站访问一下/etc/passwd目录:

能成功读取,说明这个接口就是上传点,现在我们可以看一下有没有session漏洞,目录在/tmp/sess_PHPSESSID的值:

可以看到成功读取了我的用户名,现在返回一开始的页面,重新输入一个用户名:一句话木马

然后再看看是否被成功执行了:

看到木马消失了,字符长度26说明上传成功,接下来打开蚁剑进行连接:密码a

连接成功,到根目录拿到flag:flag{43306e8113f53ece238c0a124432ce19}

今天就做到这里了,今天做了11题收获颇丰,明天继续努力>_<!