【WEB】Polar靶场 6-10题 详细笔记

六.jwt

这题我又不会写

先来了解下jwt

**JWT(JSON Web Token)**是一种基于JSON的开放标准(RFC 7519),主要用于在网络应用环境间传递声明信息。JWT通常用于身份验证和信息交换,确保在各方之间安全地传输信息。一个JWT实际上是一个被编码的JSON字符串,包含了一系列声明。它由三部分组成:Header(头部)、Payload(载荷)[&和Signature(签名)&]。

JWT结构详解

Header(头部)

Header部分用于描述JWT的元数据,包括令牌的类型(JWT)和所使用的签名算法(如HMAC SHA256或RSA)。例如:

{

"typ": "JWT",

"alg": "HS256"

}

这个JSON对象会被Base64编码成字符串,形成JWT的第一部分。

Payload(载荷)

Payload部分存储要传输的信息,如用户的身份信息和一些声明。这里可以包含三种类型的声明:注册声明、公共声明和私有声明。例如:

{

"userId": "b07f85be-45da",

"iss": "https://provider.domain.com/",

"sub": "auth/some-hash-here",

"exp": 153452683

}

这部分信息也会被Base64编码,形成JWT的第二部分。需要注意的是,Payload中的信息是可以被任何人解码阅读的,因此不应该存放敏感信息。

Signature(签名)

Signature部分是对前两部分的签名,防止数据篡改。生成签名的方法是将编码后的Header和Payload以及一个密钥使用Header中指定的算法进行签名。例如,如果使用HMAC SHA256算法,签名会是这样的:

HMACSHA256(

base64UrlEncode(header) + "." +

base64UrlEncode(payload),

secret)

这个签名确保了JWT在传输过程中未被篡改。
一、JWT 的核心作用

1. 身份认证(Authentication)

2. 信息交换与授权(Authorization)

3. 安全传输数据

我的理解就是 JWT在这里起身份认证 的作用,然后整个过程相当于垂直越权

先随便注册一个账号

然后登录,点击个人中心

F12,点击网络,搜索JWT

可以使用jwtcrack工具中的crackjwt.py脚本用字典爆破出密钥

jwtcrack工具免费下载

使用方法:

python crackjwt.py JWT 字典

得到密钥为 SYSA

再把JWT放到在线解析网站(下面3个随便选一个即可)

jwt在线解析 - JSON工具

jwt解密/加密 - bejson在线工具

JSON Web Tokens - jwt.io

把username改为admin,把密钥改为SYSA ,然后进行编码

用编码后的JWT替换原来的JWT

得到flag

复制代码
flag{ec39c705cfb5295f9dddcedc819a1659}

七.login

F12可以看到给了学号密码

学号密码提交20200101,显示提交成功,但没啥反应

提交20200102试试,发现显示了f

然后每次加1,把每次显示的 合在一起就是flag

复制代码
flag{dlcg} 

八. iphone

进来后是这样的

翻译一下

【抱歉,管理菜单必须从 iPhone 或iPad 查看;】这句话是重点

这里又有个知识点了

User-Agent

User-Agent 是 HTTP 请求头中的一个字段,用于标识客户端的设备、操作系统、浏览器等信息。服务器通过解析 User-Agent,可以判断访问者的来源,从而决定是否允许访问或提供特定的内容。

在网页爬虫中,默认的 User-Agent 通常会暴露爬虫的身份,导致被服务器拒绝访问(如返回 HTTP 403 错误)。通过修改 User-Agent,可以伪装成普通用户的浏览器,从而绕过限制。

如何获取网页的 User-Agent

在浏览器中,可以通过以下步骤获取 User-Agent:

  1. 打开目标网页,按下 F12 或点击浏览器右上角的"更多工具"选择"开发者工具"。

  2. 刷新网页后,选择"Network"选项卡,再点击"Doc"。

  3. 在右侧的"Headers"中,向下滚动找到 User-Agent 字段,复制其内容。

User-Agent 的组成结构

User-Agent 通常由以下部分组成:

  1. Mozilla/5.0:历史遗留部分,几乎所有 User-Agent 都包含此字段。

  2. 操作系统信息 :如 Windows NT 10.0 表示 Windows 10 系统,X11; Linux x86_64 表示 Linux 系统。

  3. 引擎版本 :如 AppleWebKit/537.36,表示浏览器的渲染引擎。

  4. 浏览器版本 :如 Chrome/81.0.4044.113,表示浏览器的具体版本。

通过理解 User-Agent 的结构,可以根据需要自定义字段内容,以适应不同的爬虫场景。

所有只需要通过修改 User-Agent,可以伪装成iphone用户的浏览器,从而绕过限制。

复制代码
Mozilla/5.0 (iPhone; CPU iPhone OS 16_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Mobile/15E148 Safari/604.1

轻松拿下

复制代码
flag{ba4c2f175f0dba2f2974e676c6dfbbab}

九.浮生日记

随便尝试的输入一些东西,还尝试了一些注入,但是没啥用

F12后有些新发现

其实上面也有

弹个窗 ,让我想到了xss的一些知识

输入<script>alert(1)</script>试试,发现script没了,应该是被注释掉了

根据源代码先闭合value,然后再独立出一个script执行恶意代码

复制代码
"><sscriptcript>alert(1)</sscriptcript>

这时候就会弹出来一个弹窗,点确认

复制代码
flag{747b11f075d2f6f0d599058206190e27}

十.$$

又是php

解析一下

复制代码
<?php
/*

PolarD&N CTF

*/

highlight_file(__file__);  // 显示当前PHP源代码,方便审计
error_reporting(0);        // 关闭错误报告,防止信息泄露
include "flag.php";        // 包含存储flag的文件

$a=$_GET['c'];             // 获取URL参数c的值

if(isset($_GET['c'])){     // 检查参数c是否存在
    if(preg_match('/flag|\~| |\`|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\-|\+|\=|\{|\[|\;|\:|\"|\'|\,|\.|\?|\\\\|\/|[0-9]|\<|\>/', $a)){
        // 使用正则表达式过滤危险字符:
        // 包括flag字符串、空白字符、各种符号以及数字和HTML标签
        die("oh on!!!");  // 匹配到过滤字符时终止执行
    }
    else{
        eval("var_dump($$a);");  // 执行动态生成的PHP代码,使用变量变量语法
    }
}

GLOBALS

GLOBALS 是 PHP 中的一个超全局变量(Superglobal Variable),其作用是提供对所有全局变量的访问。

总结:利用流程

  1. 用户访问 URL:http://example.com/index.php?c=GLOBALS
  2. 代码执行 eval("var_dump($GLOBALS);");
  3. var_dump() 输出所有全局变量,包括 $flag
  4. 用户从输出中提取 flag 值

输入?c=GLOBALS

复制代码
flag{9f8a2133f0cad361ff6d22a445c2531a}
相关推荐
笑衬人心。1 小时前
Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记
笔记·python·ubuntu
金色光环2 小时前
【Modbus学习笔记】stm32实现Modbus
笔记·stm32·学习
zyxzyx6663 小时前
Flyway 介绍以及与 Spring Boot 集成指南
spring boot·笔记
西岭千秋雪_4 小时前
Redis性能优化
数据库·redis·笔记·学习·缓存·性能优化
HuashuiMu花水木5 小时前
Matplotlib笔记4----------图像处理
图像处理·笔记·matplotlib
DES 仿真实践家6 小时前
【Day 11-N22】Python类(3)——Python的继承性、多继承、方法重写
开发语言·笔记·python
IMPYLH12 小时前
Python 的内置函数 reversed
笔记·python
ysa05103016 小时前
数论基础知识和模板
数据结构·c++·笔记·算法
今天背单词了吗98016 小时前
算法学习笔记:7.Dijkstra 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·数据结构·笔记·算法
mitt_16 小时前
《人生顶层设计》读书笔记7
笔记