CTF-[LitCTF 2023]只需要nc一下~
2026/6/27 6:39:18 网站建设 项目流程

一、题目信息
靶机地址:node5.anna.nssctf.cnnode5.anna.nssctf.cn:22301node5.anna.nssctf.cn
题目提示:提供现成shell,通过nc连接获取flag,flag格式 NSSCTF{}

二、解题思路
1. 该端口为TCP交互式命令行端口,不是网页服务,浏览器无法访问,需使用Python socket脚本模拟nc连接;
2. 连接后执行基础查看命令 ls 浏览当前目录,未直接看到flag文件;
3. 执行环境变量查看命令 env ,系统环境变量中直接存放完整flag字符串,提取即可完成题目。

三、操作步骤
步骤1:编写Python交互式nc连接脚本
创建 nc_connect.py ,写入如下代码:
python

import socket

HOST = "node5.anna.nssctf.cn"
PORT = 22301

sock = socket.socket()
sock.connect((HOST, PORT))
# 接收欢迎界面
data = sock.recv(4096)
print(data.decode("utf-8", errors="ignore"))

while True:
cmd = input("> ") + "\n"
sock.send(cmd.encode())
res = sock.recv(2048)
print(res.decode("utf-8", errors="ignore"))
if cmd.strip() == "exit":
sock.close()
break

步骤2:运行脚本连接靶机
打开Anaconda Prompt,切换到桌面目录,执行脚本:
cmd:
cd Desktop
python nc_connect.py
脚本建立TCP连接,输出靶机欢迎信息,出现命令输入提示符 > 。

步骤3:执行ls查看目录
在提示符后输入命令并回车:
plaintext
ls

终端输出当前目录文件列表,列表内不存在名为 flag 的文件,判断flag不在文件中,存在于系统环境变量。

步骤4:执行env读取环境变量获取flag
继续在提示符输入环境查询命令:
plaintext
env

终端打印全部系统环境变量,其中某一条环境变量的值为完整flag,格式为 NSSCTF{xxx} 。

步骤5:复制flag提交
提取 env 输出中的flag字符串,回到题目页面,在flag输入框粘贴提交,题目完成。

四、考点总结
1. TCP端口与HTTP网页端口区分:靶机命令行端口无法通过浏览器访问,需要socket/NC工具建立TCP连接;
2. Linux基础命令: ls 目录查看、 env 系统环境变量查询;
3. CTF基础隐藏flag形式:flag不存放在文件内,藏匿于系统环境变量中。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询