计算机专业大二大三:3 个网络安全低成本练手项目(附 GitHub 源码 + 实现步骤)
这篇文章为计算机专业大二大三学生推荐了3个低成本的网络安全练手项目,每个项目都配有GitHub源码和实现步骤。第一个项目是用Python开发简易端口扫描器,通过TCP连接和多线程技术实现端口探测;第二个项目是基于Burp Suite插件开发Web漏洞扫描器,检测SQL注入和XSS漏洞;第三个项目(未完整展示)涉及更高级的网络安全实践。这些项目适合有Python/Java基础的学生,能帮助理解网络安
计算机专业大二大三:3 个网络安全低成本练手项目(附 GitHub 源码 + 实现步骤)

大二大三是计算机专业攒项目经验的黄金期,但很多同学要么觉得 “网络安全项目太复杂”,要么不知道 “从哪找低成本资源”—— 其实不用买服务器、不用学高深算法,用免费工具 + 开源代码,就能做出能写进简历的网络安全项目。
这篇整理的 3 个项目,从 “基础工具开发” 到 “漏洞检测实战”,难度循序渐进,每个项目都附 “技术栈 + 实现步骤 + GitHub 源码参考”,大二学过 C++/Python 基础就能上手,做完不仅能理解安全核心逻辑,还能在秋招简历里多一个 “硬亮点”。
一、项目 1:简易端口扫描器(Python 实现)—— 理解网络资产探测
项目目标:
开发一个能扫描指定 IP 开放端口,并识别对应服务的工具(类似简化版 Nmap),掌握 “TCP 连接扫描” 原理,熟悉 socket 编程。
适合阶段:
大二刚学 Python,想入门网络安全 “资产探测” 方向。
技术栈:
- 核心语言:Python(3.8+)
- 关键库:socket(建立 TCP 连接)、threading(多线程加速扫描)
- 开发工具:PyCharm(社区版免费)
- 测试环境:本地 Windows/Linux 虚拟机(VMware 免费版)
实现步骤(共 5 步,2-3 天可完成):
1. 明确核心功能
需要实现 3 个基础功能:
- 输入目标 IP(如 192.168.1.10)和端口范围(如 1-1000);
- 扫描开放端口,记录端口对应的服务(如 80 端口→HTTP、22 端口→SSH);
- 输出扫描结果(开放端口列表 + 服务类型)。
2. 编写 TCP 连接扫描核心代码
python
import socket
import threading
# 定义扫描函数:检测单个端口是否开放
def scan_port(ip, port):
try:
# 创建TCP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1) # 超时1秒,避免卡壳
result = sock.connect_ex((ip, port)) # 连接端口,0表示开放
if result == 0:
# 尝试获取服务名
try:
service = socket.getservbyport(port)
except:
service = "Unknown"
print(f"[+] 端口 {port} 开放,服务:{service}")
sock.close()
except:
pass
# 定义主函数:多线程扫描端口范围
def main():
target_ip = input("请输入目标IP:")
start_port = int(input("请输入起始端口:"))
end_port = int(input("请输入结束端口:"))
print(f"正在扫描 {target_ip} 的 {start_port}-{end_port} 端口...")
# 多线程扫描,提高效率
for port in range(start_port, end_port + 1):
thread = threading.Thread(target=scan_port, args=(target_ip, port))
thread.start()
if __name__ == "__main__":
main()
3. 测试与优化
- 测试环境:用本地虚拟机 IP(如 192.168.122.100),扫描 1-1000 端口;
- 优化点:添加 “扫描进度提示”(如每扫描 100 个端口打印一次进度)、“结果保存到文件”(将开放端口写入 result.txt)。
4. 扩展功能(可选,提升项目亮点)
- 添加 “UDP 端口扫描”(用 socket.SOCK_DGRAM);
- 支持批量 IP 扫描(读取 ip_list.txt 文件,批量检测多个 IP)。
5. 整理项目文档
在 GitHub 仓库里写清楚:
- 项目功能描述;
- 依赖库安装命令(
pip install 无额外依赖,Python自带); - 测试步骤(如 “扫描本地 IP 127.0.0.1 1-1000 端口”);
- 核心代码解释(标注 “TCP 连接扫描原理”“多线程加速原因”)。
GitHub 源码参考:
- 基础版:simple-port-scanner(可参考其端口扫描逻辑)
- 进阶版:python-port-scanner(学习批量扫描和服务识别功能)
简历写法:
“使用 Python 开发简易端口扫描器,实现 TCP/UDP 端口检测与服务识别,通过多线程优化将扫描速度提升 30%,支持批量 IP 扫描与结果导出,可用于网络安全资产探测场景。”
二、项目 2:Web 漏洞扫描器(基于 Burp Suite 插件)—— 入门 Web 安全检测
项目目标:
开发一个 Burp Suite 插件,自动检测 Web 应用的 “SQL 注入”“XSS” 2 类基础漏洞,理解 “漏洞检测逻辑”,熟悉 Web 安全原理。
适合阶段:
大三学过 Web 开发(HTML/PHP),想往 “渗透测试” 方向发展。
技术栈:
- 核心语言:Java(Burp 插件开发默认语言)
- 关键工具:Burp Suite 社区版(免费)、IntelliJ IDEA(社区版免费,支持 Burp 插件开发)
- 测试环境:DVWA 靶场(免费,本地部署)
- 依赖库:Burp Extender API(Burp 自带,无需额外下载)
实现步骤(共 6 步,5-7 天可完成):
1. 环境搭建
- 下载 Burp Suite 社区版,打开后在 “Extender→APIs” 中导出 Burp API 的 jar 包;
- 在 IntelliJ IDEA 新建 Java 项目,将 Burp API jar 包添加为依赖;
- 新建 “VulnScanner” 类,继承 Burp 的 “IBurpExtender” 和 “IHttpListener” 接口(实现 Burp 插件的核心接口)。
2. 编写漏洞检测核心逻辑
重点实现 2 个漏洞的检测规则:
- SQL 注入检测:向 URL 参数或表单中插入
' or 1=1--,判断响应是否包含 “SQL syntax error” 等报错信息; - XSS 检测:插入
<script>alert('xss')</script>,判断响应是否包含该脚本(未被过滤则存在 XSS)。
核心代码片段(SQL 注入检测):
java
// 处理HTTP请求,检测SQL注入
private void checkSqlInjection(IHttpRequestResponse requestResponse) {
// 获取请求URL和参数
IRequestInfo requestInfo = burp.getHelpers().analyzeRequest(requestResponse);
List<IParameter> params = requestInfo.getParameters();
for (IParameter param : params) {
// 构造带SQL注入 payload 的参数
String payload = param.getValue() + "' or 1=1--";
IParameter newParam = burp.getHelpers().buildParameter(
param.getName(), payload, param.getType()
);
// 替换原参数,生成新请求
byte[] newRequest = burp.getHelpers().updateParameter(
requestResponse.getRequest(), newParam
);
// 发送新请求,获取响应
IHttpRequestResponse newReqResp = burp.makeHttpRequest(
requestResponse.getHttpService(), newRequest
);
String response = burp.getHelpers().bytesToString(newReqResp.getResponse());
// 判断是否存在SQL注入(响应包含报错信息)
if (response.contains("SQL syntax error") || response.contains("mysql_fetch_array")) {
System.out.println("[+] 发现SQL注入漏洞,URL:" + requestInfo.getUrl());
// 在Burp界面标记漏洞(可选)
burp.addScanIssue(new CustomScanIssue(
requestResponse.getHttpService(),
requestInfo.getUrl(),
new IHttpRequestResponse[]{newReqResp},
"SQL注入漏洞",
"高风险",
"确认存在"
));
}
}
}
3. 集成到 Burp Suite
- 编译 Java 项目为 jar 包;
- 在 Burp Suite 的 “Extender→Extensions” 中导入 jar 包,显示 “Loaded successfully” 即成功。
4. 测试漏洞检测功能
- 启动 DVWA 靶场,将 Burp 设为浏览器代理;
- 在 DVWA 的 “SQL Injection” 模块提交请求,插件自动检测并输出漏洞提示;
- 验证 XSS 检测:在 “XSS Reflected” 模块提交脚本,插件标记 XSS 漏洞。
5. 优化功能
- 添加 “漏洞等级划分”(高 / 中 / 低危);
- 支持 “漏洞结果导出”(保存为 HTML 报告);
- 过滤重复漏洞(避免同一漏洞多次检测)。
6. 整理项目文档
- 写清楚插件安装步骤(“Burp 导入 jar 包→启用插件→开始扫描”);
- 附测试截图(DVWA 中检测到漏洞的界面截图);
- 解释漏洞检测原理(如 “SQL 注入通过构造恶意参数触发数据库报错”)。
GitHub 源码参考:
- 基础版:burp-xss-scanner(PortSwigger 官方示例,学习 XSS 检测逻辑)
- 进阶版:burp-sql-scanner(参考 SQL 注入检测规则)
简历写法:
“基于 Burp Suite API 开发 Web 漏洞扫描插件,实现 SQL 注入、XSS 漏洞自动检测,支持漏洞等级划分与 HTML 报告导出,在 DVWA 靶场测试中漏洞检测准确率达 90%,可辅助渗透测试人员高效发现 Web 安全风险。”
三、项目 3:Linux 服务器安全加固脚本(Shell/Python 实现)—— 聚焦安全运维
项目目标:
开发一个自动化脚本,对 Linux 服务器进行 “基础安全加固”(如密码策略配置、防火墙规则设置、日志审计开启),理解 “安全运维日常工作”,熟悉 Linux 系统安全。
适合阶段:
大三学过 Linux 基础命令,想往 “安全运维” 方向发展。
技术栈:
- 核心语言:Shell 脚本(优先,Linux 自带,无需额外环境)或 Python;
- 测试环境:CentOS 7/ Ubuntu 20.04(虚拟机免费部署);
- 工具依赖:iptables(防火墙)、rsyslog(日志服务)、pam(密码策略)。
实现步骤(共 5 步,3-4 天可完成):
1. 明确加固功能清单
选取 5 个基础且实用的加固点(避免复杂操作):
- 配置密码策略(最小长度 8 位、包含大小写字母 + 数字、90 天过期);
- 禁用 root 用户远程 SSH 登录(只允许普通用户登录后 su 切换);
- 配置 iptables 防火墙(只开放 22/80/443 端口,拒绝其他端口访问);
- 开启日志审计(记录 SSH 登录日志、sudo 操作日志,保存 30 天);
- 定期清理 /tmp 目录(删除 7 天未使用的临时文件,防止恶意文件残留)。
2. 编写 Shell 加固脚本
bash
#!/bin/bash
# Linux服务器基础安全加固脚本(CentOS 7适用)
# 1. 配置密码策略
echo "=== 开始配置密码策略 ==="
# 修改/etc/login.defs(密码过期时间、最小长度)
sed -i 's/PASS_MAX_DAYS 99999/PASS_MAX_DAYS 90/' /etc/login.defs
sed -i 's/PASS_MIN_LEN 5/PASS_MIN_LEN 8/' /etc/login.defs
# 启用pam_cracklib(密码复杂度)
echo "password required pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1" >> /etc/pam.d/system-auth
# 2. 禁用root远程SSH登录
echo "=== 开始禁用root远程SSH登录 ==="
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd # 重启SSH服务生效
# 3. 配置iptables防火墙
echo "=== 开始配置iptables ==="
# 清空现有规则
iptables -F
# 允许22/80/443端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许回环地址
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 拒绝其他所有输入
iptables -A INPUT -j DROP
# 保存规则(CentOS 7)
service iptables save
systemctl restart iptables
# 4. 开启日志审计
echo "=== 开始配置日志审计 ==="
# 配置rsyslog记录SSH登录日志
echo "authpriv.* /var/log/ssh_login.log" >> /etc/rsyslog.conf
# 配置日志保存30天(用logrotate)
cat > /etc/logrotate.d/ssh_log << EOF
/var/log/ssh_login.log {
daily
rotate 30
compress
missingok
notifempty
}
EOF
systemctl restart rsyslog
# 5. 定期清理/tmp目录
echo "=== 开始配置/tmp清理任务 ==="
# 添加crontab任务(每天凌晨3点清理7天前的文件)
echo "0 3 * * * find /tmp -type f -mtime +7 -delete" >> /var/spool/cron/root
# 立即生效crontab
crontab /var/spool/cron/root
echo "=== 安全加固完成!请重启服务器确保所有配置生效 ==="
3. 测试脚本功能
- 在 CentOS 7 虚拟机中执行脚本(需 root 权限:
bash secure_linux.sh); - 验证每个功能:
- 密码策略:执行
passwd test,输入 6 位密码会提示 “密码太短”; - SSH 登录:用 root 用户 SSH 连接会提示 “Permission denied”,普通用户可正常登录;
- 防火墙:执行
iptables -L,确认只有 22/80/443 端口开放。
- 密码策略:执行
4. 扩展功能(可选)
- 添加 “漏洞扫描” 模块(调用 openvas 客户端,扫描服务器漏洞);
- 支持 “加固报告生成”(输出加固项是否成功的日志,保存为 secure_report.txt);
- 适配 Ubuntu 系统(修改 iptables 保存命令、日志配置路径)。
5. 整理项目文档
- 标注脚本适用系统版本(“CentOS 7 测试通过,Ubuntu 需修改 XX 行”);
- 写清注意事项(“执行前需备份 /etc/ssh/sshd_config,避免配置错误导致 SSH 无法登录”);
- 附功能验证步骤(如 “验证密码策略:执行 passwd 命令测试密码长度限制”)。
GitHub 源码参考:
- 基础版:linux-security-script(参考加固项清单,用 Ansible 实现,可转为 Shell 脚本)
- 进阶版:server-hardening(学习更多 Linux 安全加固细节)
简历写法:
“开发 Linux 服务器安全加固 Shell 脚本,实现密码策略配置、SSH 安全加固、防火墙规则设置等 5 项核心功能,支持日志审计与定期清理,在 CentOS 7 环境中测试通过,可自动化完成服务器基础安全加固,减少安全运维人工操作成本。”
四、项目实战避坑与简历加分技巧
1. 低成本资源获取
- 服务器:用 VMware 免费版装 Linux 虚拟机,无需购买云服务器;
- 靶场:DVWA、Metasploitable 2(均免费,本地部署);
- 工具:Burp Suite 社区版、IntelliJ IDEA 社区版(足够满足开发需求)。
2. 常见坑点解决
- 项目 1 端口扫描 “速度慢”:用多线程(threading)而非单线程,同时限制线程数(避免被靶机判定为攻击);
- 项目 2Burp 插件 “加载失败”:检查 Java 版本(需 Java 8+)、API jar 包是否正确导入;
- 项目 3Linux 脚本 “执行报错”:用
bash -x secure_linux.sh调试,定位报错行(通常是路径或命令不兼容)。
3. 简历包装核心
- 突出 “问题解决”:比如 “优化端口扫描器多线程逻辑,解决单线程扫描耗时过长问题”;
- 量化成果:比如 “漏洞扫描插件检测准确率 90%”“加固脚本覆盖 5 项核心安全需求”;
- 关联岗位:申请渗透测试岗重点写项目 2,申请安全运维岗重点写项目 3。
如果需要 3 个项目的 “完整源码 + 测试报告模板”,评论区扣 “项目源码” 就能领 —— 大二大三不用怕项目复杂,从这 3 个低成本项目入手,既能练技术,又能给简历加分,比只刷算法题更能打动 HR。
网络安全学习资料分享
为了帮助大家更好的学习网络安全,我把我从一线互联网大厂薅来的网络安全教程及资料分享给大家,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,朋友们如果有需要这套网络安全教程+进阶学习资源包,可以扫码下方二维码限时免费领取(如遇扫码问题,可以在评论区留言领取哦)~


DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)