3 个网络安全低成本练手项目:附 GitHub 源码与实现步骤
三个适合计算机专业学生的网络安全低成本练手项目:基于 Python 的简易端口扫描器、基于 Burp Suite 插件的 Web 漏洞扫描器以及 Linux 服务器安全加固脚本。每个项目均提供技术栈、实现步骤及 GitHub 源码参考,涵盖资产探测、Web 安全检测及安全运维方向。内容经过清洗,去除营销推广信息,专注于技术实践与简历优化建议。

三个适合计算机专业学生的网络安全低成本练手项目:基于 Python 的简易端口扫描器、基于 Burp Suite 插件的 Web 漏洞扫描器以及 Linux 服务器安全加固脚本。每个项目均提供技术栈、实现步骤及 GitHub 源码参考,涵盖资产探测、Web 安全检测及安全运维方向。内容经过清洗,去除营销推广信息,专注于技术实践与简历优化建议。

开发一个能扫描指定 IP 开放端口,并识别对应服务的工具(类似简化版 Nmap),掌握'TCP 连接扫描'原理,熟悉 socket 编程。
大二刚学 Python,想入门网络安全'资产探测'方向。
需要实现 3 个基础功能:
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()
在 GitHub 仓库里写清楚:
pip install 无额外依赖,Python 自带);'使用 Python 开发简易端口扫描器,实现 TCP/UDP 端口检测与服务识别,通过多线程优化将扫描速度提升 30%,支持批量 IP 扫描与结果导出,可用于网络安全资产探测场景。'
开发一个 Burp Suite 插件,自动检测 Web 应用的'SQL 注入''XSS'2 类基础漏洞,理解'漏洞检测逻辑',熟悉 Web 安全原理。
大三学过 Web 开发(HTML/PHP),想往'渗透测试'方向发展。
重点实现 2 个漏洞的检测规则:
' or 1=1--,判断响应是否包含'SQL syntax error'等报错信息;<script>alert('xss')</script>,判断响应是否包含该脚本(未被过滤则存在 XSS)。核心代码片段(SQL 注入检测):
// 处理 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 注入漏洞", "高风险",
));
}
}
}
'基于 Burp Suite API 开发 Web 漏洞扫描插件,实现 SQL 注入、XSS 漏洞自动检测,支持漏洞等级划分与 HTML 报告导出,在 DVWA 靶场测试中漏洞检测准确率达 90%,可辅助渗透测试人员高效发现 Web 安全风险。'
开发一个自动化脚本,对 Linux 服务器进行'基础安全加固'(如密码策略配置、防火墙规则设置、日志审计开启),理解'安全运维日常工作',熟悉 Linux 系统安全。
大三学过 Linux 基础命令,想往'安全运维'方向发展。
选取 5 个基础且实用的加固点(避免复杂操作):
#!/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 天前的文件)
>> /var/spool/cron/root
crontab /var/spool/cron/root
bash secure_linux.sh);passwd test,输入 6 位密码会提示'密码太短';iptables -L,确认只有 22/80/443 端口开放。'开发 Linux 服务器安全加固 Shell 脚本,实现密码策略配置、SSH 安全加固、防火墙规则设置等 5 项核心功能,支持日志审计与定期清理,在 CentOS 7 环境中测试通过,可自动化完成服务器基础安全加固,减少安全运维人工操作成本。'
bash -x secure_linux.sh 调试,定位报错行(通常是路径或命令不兼容)。在网络安全领域,是否具备编程能力是'脚本小子'和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。
这部分内容对零基础的同学来说还比较遥远,感兴趣的可以研究一下。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online