【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}
相关推荐
守.护5 分钟前
云计算学习笔记——HTTP服务、NFS服务篇
笔记·学习·云计算
wdfk_prog21 分钟前
[Linux]学习笔记系列 -- lib/dump_stack.c 栈回溯打印(Stack Trace Dumping) 内核调试与错误诊断的基石
linux·运维·服务器·c语言·笔记·学习
i.ajls24 分钟前
无监督学习,推荐系统以及强化学习笔记
笔记·学习·机器学习
聆风吟º1 小时前
【Spring Boot 报错已解决】Web server failed to start. Port 8080 was already in use.
spring boot·笔记·技术干货
Suckerbin1 小时前
LAMPSecurity: CTF6靶场渗透
笔记·安全·web安全·网络安全
特种加菲猫1 小时前
并发编程的守护者:信号量与日志策略模式解析
linux·笔记·策略模式
赶飞机偏偏下雨2 小时前
【Java笔记】单例模式
java·笔记·单例模式
GoldenaArcher2 小时前
OpenAPI Specification 系列笔记 III
笔记
happilyaaa3 小时前
B站 韩顺平 笔记 (Day 27)
笔记
我真的是大笨蛋8 小时前
K8S-Pod(下)
java·笔记·云原生·容器·kubernetes