一、题目信息
靶机地址: node5.anna.nssctf.cn:24236
题目类型:基础nc交互式shell,无命令过滤
提交格式: NSSCTF{}
浏览器无法直接打开该地址,24236为TCP命令交互端口,非网页HTTP服务。
二、解题思路
1. 使用Python socket脚本模拟nc工具建立TCP连接靶机;
2. 连接成功后执行 ls 查看当前目录文件;
3. 目录内存在flag文件,执行 cat flag 读取文件内容,直接获取flag提交。
三、详细操作步骤
步骤1:编写交互式nc连接脚本
在桌面新建 nc_connect.py ,写入稳定交互代码:
python
import socket
import time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置连接超时5秒
s.settimeout(5)
try:
s.connect(("node5.anna.nssctf.cn", 24236))
except Exception as e:
print("连接失败: ", e)
exit()
# 设置数据读取超时,避免永久阻塞
s.settimeout(1)
while True:
# 先尝试接收数据,超时直接跳过
try:
recv_data = s.recv(4096).decode()
if recv_data:
print(recv_data)
except socket.timeout:
pass
send_data = input("> ") + "\n"
s.send(send_data.encode())
步骤2:运行脚本连接靶机
1. 打开Anaconda Prompt,切换至桌面目录:
cmd
cd Desktop
2. 执行Python脚本建立连接:
cmd
python nc_connect.py
3. 连接成功后出现命令提示符 > ,可以输入Linux指令。
步骤3:查看当前目录文件
在提示符后输入命令并回车:
plaintext
ls
终端输出当前目录所有文件,能清晰看到名为 flag 的文件。
步骤4:读取flag文件获取答案
继续输入读取文件命令:
plaintext
cat flag
终端直接打印完整flag字符串,格式为 NSSCTF{d1555879-7db2-460f-9cac-bceaf70bef3d}。
步骤5:提交flag
复制输出的flag内容,回到题目页面,粘贴至flag输入框,点击提交完成题目。
四、考点总结
1. 区分TCP交互端口与HTTP网页端口:浏览器只能访问网页,nc类靶机必须使用socket/NC工具连接;
2. Linux基础命令使用: ls 列出目录、 cat 读取文件;
3. 基础CTF nc交互题型,无命令过滤,考察最基础的TCP连接与文件读取操作。