在网络安全领域,Python 几乎是从业者的 “必备武器”—— 它简洁易上手、生态丰富,能快速实现各类工具脚本的开发与落地。对于零基础小白来说,从 Python 基础语法入门,再到上手实用的安全工具,是一条高效的进阶路径。本文将从 Python 基础讲起,一步步带你落地两款经典的网络安全工具,轻松完成从入门到实战的跨越。
一、认识 Python:为什么它是网络安全的首选语言?
Python 是一种解释型、面向对象、动态数据类型的高级编程语言,它的核心优势在于「可读性强、简洁易学习、生态完善」。
- 无需复杂的语法配置,零基础也能快速写出可运行的代码;
- 拥有高效的高级数据结构,支持简单有效的面向对象编程;
- 丰富的第三方库覆盖网络请求、数据解析、漏洞检测等各类安全场景,无需重复 “造轮子”。
Python 的官方网站是 https://www.python.org,目前主要分为 Python2 和 Python3 两个版本,其中 Python2 已于 2020 年 1 月 1 日停止官方支持,建议大家直接选择 Python3.8 及以上的稳定版本(兼容性更好,支持更多新特性)。
二、Python 核心基础语法:打好入门第一关
Python 的简洁性在语法中体现得淋漓尽致,掌握以下核心内容,就能应对大部分基础开发场景。
1. 变量与数据类型:存储数据的基本容器
Python 最大的特点是无需声明变量类型,直接赋值即可,常用的数据类型包括整数(Int)、浮点数(Float)、字符串(String)、布尔值(Boolean)。
字符串格式化与类型转换
在实际开发中,经常需要拼接字符串或转换数据类型,推荐使用 f-string(简洁高效),也可以使用 + 号拼接(注意数字需用 str() 转换为字符串)。
python
运行
# 定义基础变量
age = 30 # 整数 (Int)
pi = 3.14159 # 浮点数 (Float)
name = 'niko' # 字符串 (String)
is_student = True # 布尔值 (Boolean)
# 1. f-string 格式化输出(推荐)
print(f"姓名: {name}, 年龄: {age}")
# 2. 类型转换示例
str_num = "123"
int_num = int(str_num) # 字符串转换为整数
print(f"字符串 '{str_num}' 转换为整数: {int_num}")
# 3. + 号拼接(数字必须转字符串)
new_message = "我的分数是: " + str(int_num)
print(new_message)
三大常用数据结构
Python 提供了三种实用的数据结构,分别适用于不同的场景,掌握它们就能高效处理各类数据集合。
| 列表(List) | 方括号 [] | 可变、有序 | 存储需要增删改的动态数据(如待办事项) |
| 元组(Tuple) | 圆括号 () | 不可变、有序 | 存储无需修改的核心数据(如身份证信息) |
| 字典(Dict) | 花括号 {} | 可变、键值对、Python3.7 + 有序 | 存储需要通过 “关键字” 查询的数据(如通讯录) |
python
运行
# 1. 列表:增删改查
todo_list = ["买牛奶", "取快递", "写代码"]
todo_list.append("运动30分钟") # 新增元素
todo_list[1] = "取快递(顺丰)" # 修改元素
del todo_list[2] # 删除元素
print("列表结果:", todo_list)
# 2. 元组:不可修改,仅查询
person_info = ("zs", "110101199001011234", "1990-01-01")
print("元组查询姓名:", person_info[0])
# 3. 字典:键值对操作
contact = {"zs": "13800138000"}
contact["lisi"] = "13700137000" # 新增键值对
print("字典查询zs手机号:", contact["zs"])
2. 流程控制:掌控代码的执行逻辑
Python 不使用大括号 {} 划分代码块,而是依靠缩进(通常 4 个空格),这是 Python 的核心规则,缩进错误会直接导致程序运行失败。
条件判断:if-elif-else
用于根据不同条件执行不同的代码逻辑,适用于成绩评级、权限判断等场景。
python
运行
user_score = 85
if user_score >= 90:
print("成绩优秀")
elif user_score >= 80:
print("成绩良好")
else:
print("需要努力")
循环:while 与 for
用于重复执行某段代码,while 适用于未知循环次数的场景,for 适用于已知循环次数或遍历数据集合的场景。
python
运行
# 1. while 循环:倒计时(未知循环次数,依赖条件判断)
count = 3
while count > 0:
print(f"While倒计时: {count}")
count -= 1
# 2. for 循环:遍历范围与列表(已知循环次数)
# 遍历 1-5(range 左闭右开)
for i in range(1, 6):
print(f"For循环数字: {i}")
# 遍历列表
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print("水果名称:", fruit)
3. 函数与面向对象:代码复用与封装
函数:def 关键字定义
函数是组织好的、可重复使用的代码段,用于实现单一或相关联的功能,能大幅提升代码的复用性和可维护性。
python
运行
# 定义求和函数
def sum_num(arg1, arg2):
total = arg1 + arg2
print("函数内计算结果:", total)
return total
# 调用函数
result = sum_num(10, 20)
print("函数返回结果:", result)
面向对象:类与对象
类是一个模板或蓝图,包含属性(存储数据)和方法(执行操作),对象是类的实例化结果。在网络安全工具开发中,面向对象能更好地封装工具的核心逻辑。
python
运行
class Dog:
species = "犬科" # 类属性(所有实例共享)
def __init__(self, name, age): # 构造函数:初始化实例属性
self.name = name # 实例属性
self.age = age
def bark(self): # 实例方法:定义对象行为
print(f"{self.name}在汪汪叫")
def __str__(self): # 魔术方法:自定义对象打印格式
return f"{self.name}今年{self.age}岁了"
# 实例化对象并调用方法
dog1 = Dog("小黑", 3)
dog1.bark()
print(dog1)
三、Python 模块系统:代码复用的核心支撑
模块是包含 Python 代码的 .py 文件,里面可以存放函数、类和变量,是 Python 代码组织和复用的核心。Python 的模块主要分为三类:内置模块、自定义模块、第三方模块。
1. 内置模块:Python 自带的 “工具箱”
内置模块是 Python 安装后自带的标准库,无需额外安装,直接导入即可使用,常见的有 math、os、random、time 等。
python
运行
# 方式1:导入整个模块
import math
print("4的平方根:", math.sqrt(4))
# 方式2:导入模块中的指定函数
from math import sqrt
print("9的平方根:", sqrt(9))
2. 自定义模块:封装自己的功能
自定义模块是开发者自己编写的 .py 文件,用于封装特定的功能逻辑,命名时注意不要与内置模块重名。
步骤 1:创建自定义模块文件(my_sum.py)
python
运行
# my_sum.py
def add(num1, num2):
"""求两个数的和"""
return num1 + num2
步骤 2:导入并使用自定义模块
python
运行
import my_sum
result = my_sum.add(1, 2)
print("自定义模块求和结果:", result)
3. 第三方模块:丰富的生态扩展
第三方模块是由其他开发者或组织发布的模块,需要通过 pip 命令安装,这也是 Python 生态强大的核心原因。
常用 pip 命令
bash
运行
# 1. 列出已安装的模块
pip list
# 2. 安装指定模块
pip install 模块名
# 3. 国内镜像源安装(解决网络卡顿,推荐清华源)
pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple
# 4. 卸载模块
pip uninstall 模块名
国内优质镜像源
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
- 豆瓣:http://pypi.douban.com/simple/
四、网络安全实战:Python 工具落地
掌握了 Python 基础和模块系统后,我们就可以上手网络安全领域的实用工具,完成从理论到实战的跨越。
1. 模拟浏览器:requests 库(网络请求必备)
requests 是 Python 最常用的网络请求库,核心功能是模拟浏览器向网站发送请求、获取数据,是后续爬虫、资产探测、漏洞扫描的基础。
步骤 1:安装 requests 库
bash
运行
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
步骤 2:发送 GET 请求并获取响应
python
运行
import requests
# 目标域名
domain = "https://www.zhibangyang.cn/"
# 发送 GET 请求
r = requests.get(domain)
# 获取响应状态码(200 表示请求成功)
print("响应状态码:", r.status_code)
# 获取响应文本内容(网站源码)
print("网站源码:", r.text[:500]) # 只打印前500个字符,避免输出过长
2. 子域名收集:OneForAll 工具
OneForAll 是一款基于 Python 开发的功能全面的域名信息收集与爆破工具,能高效枚举目标域名的子域名、获取解析记录与资产信息,是网络安全渗透测试中的必备工具。
步骤 1:下载 OneForAll
下载地址:https://github.com/shmilylty/OneForAll下载后解压到本地(如 D:\\Oneforall\\OneForAll-master)。
步骤 2:安装依赖
打开终端,进入解压后的目录,批量安装项目所需依赖:
bash
运行
# 进入目录
cd D:\\Oneforall\\OneForAll-master
# 安装依赖(使用阿里云镜像源)
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
步骤 3:使用 OneForAll 收集子域名
bash
运行
# 方式1:使用默认字典扫描目标域名
python oneforall.py –target https://www.zhibangyang.cn run
# 方式2:使用自定义字典扫描
python oneforall.py –target https://www.zhibangyang.cn –wordlist=自定义字典路径\\字典.txt run
运行完成后,工具会自动生成详细的子域名报告,包含子域名、解析记录、状态码等信息,方便后续资产梳理和漏洞探测。
五、总结与展望
Python 的学习之路没有捷径,多敲代码、多做实战,才能快速将知识转化为能力,在网络安全领域站稳脚跟。
网硕互联帮助中心





评论前必须登录!
注册