2024年BaseCTF-week1-wp

Basectf比赛wp

MISC

[Week1] 签到!DK 盾!

关注公众号得到flag。

[Week1] Base

考点:base编码

下载附件得到一串base编码,解密得到flag。

image-20240815183028571

image-20240815183051398

[Week1] 正着看还是反着看呢?

考点:文件逆序,文件分离

附件压缩包解压发现一个名为flag的未知文件,用010editor打开发现文件逆序了

image-20240815183306729

使用脚本将文件顺序调换回来,得到一张jpg图片。

image-20240815184020850

image-20240815184010960

用010editor打开,发现藏了一个隐藏文件flag。

image-20240815184131348

提取出来得到flag.

image-20240815184306841

image-20240815184334599

[Week1] 海上遇到了鲨鱼

考点:流量分析

打开是个pcapng文件,用wireshark打开。

image-20240815184514652

检索关键词flag,用tcp流打开,查看流,最后找到flag。

image-20240815184725885

image-20240815184801405

image-20240815184832777

image-20240815184904549

[Week1] 人生苦短,我用Python

考点:代码审计,搜索引擎

打开程序,一段超长python代码

import base64
import hashlib

def abort(id):
    print('You failed test %d. Try again!' % id)
    exit(1)
print('Hello, Python!')
flag = input('Enter your flag: ')

if len(flag) != 38:
    abort(1)

if not flag.startswith('BaseCTF{'):
    abort(2)

if flag.find('Mp') != 10:
    abort(3)

if flag[-3:] * 8 != '3x}3x}3x}3x}3x}3x}3x}3x}':
    abort(4)

if ord(flag[-1]) != 125:
    abort(5)

if flag.count('_') // 2 != 2:
    abort(6)

if list(map(len, flag.split('_'))) != [14, 2, 6, 4, 8]:
    abort(7)

if flag[12:32:4] != 'lsT_n':
    abort(8)

if '😺'.join([c.upper() for c in flag[:9]]) != 'B😺A😺S😺E😺C😺T😺F😺{😺S':
    abort(9)

if not flag[-11].isnumeric() or int(flag[-11]) ** 5 != 1024:
    abort(10)

if base64.b64encode(flag[-7:-3].encode()) != b'MG1QbA==':
    abort(11)

if flag[::-7].encode().hex() != '7d4372733173':
    abort(12)

if set(flag[12::11]) != {'l', 'r'}:
    abort(13)

if flag[21:27].encode() != bytes([116, 51, 114, 95, 84, 104]):
    abort(14)

if sum(ord(c) * 2024_08_15 ** idx for idx, c in enumerate(flag[17:20])) != 41378751114180610:
    abort(15)

if not all([flag[0].isalpha(), flag[8].islower(), flag[13].isdigit()]):
    abort(16)

if '{whats} {up}'.format(whats=flag[13], up=flag[15]).replace('3', 'bro') != 'bro 1':
    abort(17)

if hashlib.sha1(flag.encode()).hexdigest() != 'e40075055f34f88993f47efb3429bd0e44a7f479':
    abort(18)

print('🎉 You are right!')
import this

进行代码分析一步一步来就能做出来。

image-20240815185450874

[Week1] 倒计时?海报!

考点:图片隐写

群里的海报,有十张,每张都潜藏flag的一部分,需要使用ps或者其他调色软件进行调色后寻找,大概就是像下面的图一样

image-20240816200115184

image-20240816200811716

image-20240816201411434

找齐后按10-1的顺序拼接在一起就是flag。

image-20240816201823427

[Week1] 你也喜欢圣物吗

考点:图片隐写,压缩包伪加密

打开文件,进行解压缩,发现一个png图片和一个压缩包。

image-20240816222450635

解压需要密码。

image-20240816222541447

刚开始觉得是伪加密,放进010editor查看了一下

image-20240816223911247

表面上看确实是,但根据后来题目提示发现,里面的另一个压缩包才是伪加密,这个是真有密码。

那就需要从图片入手。刚开始以为是高度,放进010editor里修改,发现没有用。

然后就用stegsolve打开,发现了信息。

image-20240816222825621

解码这段编码,得到提示

image-20240816222917433

就是简单的LSB。找到key。

image-20240816223022332

解压过后得到里面的另一个压缩包

image-20240816223251279

这个压缩包也需要密码,但是却是伪加密,放进010editor修改过后就能解压,拿到里面的flag。

image-20240816223452392

image-20240816223545019

这里的flag有两个,上面那个是假的,最后那个才是真的。

image-20240816223627484

image-20240816223709957

[Week1] 根本进不去啊!

考点:域名解析

image-20240821155833385

根据题目提示,进行域名解析,发现flag。

image-20240821155809814

[Week1] 捂住X只耳

考点:Audacity的使用

此解法非官方预期,需要官方解法请看官方wp。

image-20240821160008205

直接人声分离,得到下图

image-20240821165703923

image-20240821170824565

用摩斯密码解码

image-20240821171021708

flag就是BaseCTF{FOLLOWYOURHEART}

web

[Week1] HTTP 是什么呀

考点:http基础知识

打开容器,就是普通的http知识

image-20240815185636716

按照提示抓包传入就行。

image-20240815185817085

image-20240815185937091

爆出flag。

image-20240815185954681

解码得到。

image-20240815190030770

[Week1] 喵喵喵´•ﻌ•`

考点:eval()漏洞利用,指令利用

打开容器,是一个简单的传参利用eval()漏洞问题

image-20240815190259501

[Week1] md5绕过欸

考点:MD5绕过(可以查看我往期博客查阅相关知识)

打开容器,要求get传参name和name2,post传参password和password2。

分析代码,发现name和password的md5进行弱相等,直接用现成的例子。

name2和password2的md5值强相等,可以使用数组绕过。

image-20240815190644451

[Week1] A Dark Room

考点:查看源代码

打开容器是个小游戏,但是其实考点是查看源代码。

image-20240815191053648

image-20240815191109940

[Week1] upload

考点:文件上传漏洞,一句话木马,webshell连接工具(蚁剑)

打开容器发现是文件上传。

image-20240815191232696

先进行准备,用记事本写上一句话木马,因为要上传图片文件,所以后缀改成.jpg

image-20240815191551084

进行文件上传,用bp抓包,修改.jpg为.php

image-20240815191710890

上传完了后找到该php文件路径

image-20240815191810966

image-20240815191842431

然后用蚁剑连接就行。

image-20240815192026311

进入文件管理找到flag就行

image-20240815192129003

image-20240815192141082

[Week1] Aura 酱的礼物

考点:代码审计,伪协议,SSRF

<?php
highlight_file(__FILE__);
// Aura 酱,欢迎回家~
// 这里有一份礼物,请你签收一下哟~
$pen = $_POST['pen'];
if (file_get_contents($pen) !== 'Aura')
{
    die('这是 Aura 的礼物,你不是 Aura!');
}

// 礼物收到啦,接下来要去博客里面写下感想哦~
$challenge = $_POST['challenge'];
if (strpos($challenge, 'http://jasmineaura.github.io') !== 0)
{
    die('这不是 Aura 的博客!');
}

$blog_content = file_get_contents($challenge);
if (strpos($blog_content, '已经收到Kengwang的礼物啦') === false)
{
    die('请去博客里面写下感想哦~');
}

// 嘿嘿,接下来要拆开礼物啦,悄悄告诉你,礼物在 flag.php 里面哦~
$gift = $_POST['gift'];
include($gift);

分析代码,有三个变量,全是post方法传参。

第一个需要使用data协议绕过file_get_concents()函数。构造payload

pen=data://text/plain;base64,QXVyYQ==

第二个就涉及到SSTR漏洞(见往期博客)。构造payload

challenge=http://jasmineaura.github.io@challenge.basectf.fun:34667

第三个就是文件包含漏洞,需要filter协议绕过。构造payload

gift=php://filter/convert.base64-encode/resource=flag.php

image-20240817225236931

解码得到flag。

image-20240817225312658

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!对于心脏病预测的问题,使用循环神经网络(RNN)是一种常见的方法。RNN适用于处理序列数据,而心电图信号就是一种序列数据。在使用RNN进行心脏病预测时,你可以将心电图信号作为输入序列,然后通过训练RNN模型来预测患者是否患有心脏病。 首先,你需要准备一个合适的数据集,其中包含心电图信号和相应的心脏病标签。可以使用公开的心电图数据集,如PTB数据库或MIT-BIH数据库。然后,你可以对数据进行预处理和特征工程,如数据清洗、滤波、降采样等。 接下来,你可以构建一个RNN模型。RNN模型由一系列循环层组成,每个循环层都会处理一个时间步的输入数据。你可以选择不同类型的RNN单元,如简单循环单元(SimpleRNN)、长短期记忆网络(LSTM)或门控循环单元(GRU)。通过添加适当的全连接层和激活函数,你可以将RNN模型输出映射到二分类问题(有或无心脏病)的结果。 然后,你可以使用训练集对RNN模型进行训练,并使用验证集进行模型调优。在训练过程中,你可以使用适当的损失函数(如交叉熵)和优化算法(如随机梯度下降)来最小化模型的预测误差。 最后,你可以使用测试集对训练好的模型进行评估,并计算模型的性能指标,如准确率、精确率、召回率等。这些指标可以帮助你评估模型的预测能力和泛化能力。 需要注意的是,心脏病预测是一个复杂的医学问题,仅仅使用心电图信号可能不能得到准确的预测结果。通常情况下,还需要结合其他患者的临床信息和医学知识来进行综合评估。因此,在进行心脏病预测时,建议与专业医生合作,并遵循相关的医学准则和规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦 & 醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值