Python复习笔记(网络安全方向)
本次总结围绕网络安全视角梳理Python核心知识点,不要求写代码,重点掌握语法特征、核心功能、网安常用工具/模块,以及和PHP的核心区别,适配渗透测试、漏洞挖掘的基础Python认知需求。
一、Python核心定位
-
全领域适配:相比PHP只专注Web后端,Python覆盖渗透测试、自动化运维、数据抓取、漏洞利用等网安全场景,是学习网安必备的核心工具语言。
-
入门友好:语法简洁、无需声明变量类型、代码可读性高,零基础易上手,重点学基础即可满足网安基础使用。
-
工具生态丰富:大量网安专用工具(子域名收集、端口扫描、漏洞利用)基于Python开发,看懂Python能理解工具原理、会使用工具即可。
二、Python基础语法
1. 核心规则
| 特性 | Python | PHP | 网安关注点 |
|---|---|---|---|
| 代码块标识 | 缩进(4个空格) | 大括号{} | 看懂代码执行范围 |
| 变量定义 | 直接命名(如name) | 必须带$(如$name) | 快速识别变量 |
| 字符串拼接 | +号 / f-string(推荐) | 点号. | 看懂数据拼接逻辑 |
| 注释 | 单行# | 单行//、多行/**/ | 快速跳过注释看核心代码 |
2. 变量与数据类型
Python无需声明变量类型,直接赋值,重点看懂3种常用数据容器(网安工具/漏洞代码高频出现):
-
列表
[]:可变、有序,可增删改查(如存储扫描的子域名、漏洞列表); -
元组
():不可变、有序,只能读取(如存储固定的配置信息、靶场地址); -
字典
{}:键值对形式(key:value),通过键取值(如存储目标资产信息:{"域名":"ip地址"})。
3. 流程控制
网安中主要用于工具的判断、循环扫描,无需写,重点看执行条件:
-
条件语句
if/elif/else:根据条件执行不同代码(如判断扫描结果是否为漏洞、目标是否在线); -
循环语句
for/while:重复执行代码(如for循环遍历字典扫描子域名、while循环持续探测目标端口); -
核心注意:Python的缩进决定代码块归属,缩进一致的代码为同一执行块。
4. 面向对象
-
函数
def:封装可重复使用的代码段(如工具中的“扫描函数”“请求函数”),看懂def 函数名(参数):即可识别函数; -
魔术方法
__xx__:双下划线开头,Python自动触发(如__init__是构造函数,初始化对象属性,网安漏洞代码/工具中高频出现); -
关键字
self:代表当前对象,是类中方法的第一个参数,看懂即可,无需深究。
三、Python模块
模块是Python的功能封装文件(.py),网安中核心是看懂模块类型、会使用常用模块/工具,分3类掌握:
1. 系统内置模块
Python自带,直接导入即可用,网安常用核心:
-
math:数学计算(如漏洞利用中的加密计算); -
os:系统操作(如工具中的文件读写、路径获取); -
sys:Python解释器操作(如工具的参数传递); -
导入方式:
import 模块名或from 模块名 import 函数(如from math import sqrt)。
2. 自定义模块
开发者封装的专属功能模块(如自定义的“漏洞扫描模块”),命名不与内置模块冲突,导入方式和内置模块一致,网安中只需看懂导入和调用逻辑。
3. 第三方模块)
非Python官方开发,需通过pip安装,网安必备2个操作+2个核心模块:
(1)pip核心操作
pip list # 查看已安装模块(检查工具依赖是否安装)
pip install 模块名 -i 镜像源 # 安装模块(加国内镜像源提速,如清华/阿里云)
pip uninstall 模块名 # 卸载模块
pip install -r requirements.txt # 批量安装工具依赖(网安工具必用,如OneForAll)
国内镜像源(解决下载慢):
-
清华:
https://pypi.tuna.tsinghua.edu.cn/simple -
阿里云:
http://mirrors.aliyun.com/pypi/simple/
(2)网安高频第三方模块
- requests库:Python的“模拟浏览器”,核心功能向目标网站发送网络请求、获取数据(渗透测试中高频用于探测目标、抓取页面、测试接口漏洞);
核心用法:import requests → requests.get(目标网址) → 获取状态码/页面内容;
- python-whois:域名信息查询模块,用于获取域名的注册人、注册时间、过期时间(渗透测试的资产信息收集环节)。
四、网安专用Python工具
OneForAll
-
工具用途:基于Python开发,高效枚举目标域名的子域名、获取解析记录/资产信息(渗透测试第一步:资产收集,必用工具);
-
核心操作(记命令即可):
-
下载地址:
https://github.com/shmilylty/OneForAll -
批量安装依赖:
pip install -r requirements.txt -i 阿里云镜像源 -
基础使用(默认字典扫描):
python oneforall.py --target 目标域名 run -
自定义字典扫描:
python oneforall.py --target 目标域名 --wordlist=字典路径 run
- 结果查看:扫描结果保存在工具目录的
results文件夹中,包含csv/sqlite3格式,直接打开即可。
五、Python vs PHP
| 对比维度 | Python | PHP | 网安应用场景 |
|---|---|---|---|
| 应用领域 | 全领域(渗透、自动化、Web、AI) | 专注Web后端开发 | Python为主,PHP为辅 |
| 核心用途 | 网安工具开发、漏洞利用、自动化扫描 | 分析PHP网站漏洞(SQL注入/文件上传) | 渗透测试:Python用工具,PHP看漏洞代码 |
| 学习重点 | 模块/工具使用、网络请求 | 超全局变量、漏洞原理 | 各取所需,无需互通 |
| 数据接收 | 无固定超全局变量,通过模块(如requests)获取 | 超全局变量$_GET/$_POST/$_FILES | PHP看数据入口,Python用工具请求数据 |
六、网安视角Python复习核心口诀
-
一看缩进:定代码块,看懂执行范围;
-
二识容器:列表/元组/字典,看懂数据存储;
-
三会pip:安装/卸载/批量装依赖,工具使用基础;
-
四熟模块:requests(模拟请求)、OneForAll(子域名扫描),网安高频使用;
-
五辨区别:Python做工具、PHP看漏洞,各司其职。