Python复习笔记(网络安全方向)

5 阅读5分钟

Python复习笔记(网络安全方向)

本次总结围绕网络安全视角梳理Python核心知识点,不要求写代码,重点掌握语法特征、核心功能、网安常用工具/模块,以及和PHP的核心区别,适配渗透测试、漏洞挖掘的基础Python认知需求。

一、Python核心定位

  1. 全领域适配:相比PHP只专注Web后端,Python覆盖渗透测试、自动化运维、数据抓取、漏洞利用等网安全场景,是学习网安必备的核心工具语言。

  2. 入门友好:语法简洁、无需声明变量类型、代码可读性高,零基础易上手,重点学基础即可满足网安基础使用。

  3. 工具生态丰富:大量网安专用工具(子域名收集、端口扫描、漏洞利用)基于Python开发,看懂Python能理解工具原理、会使用工具即可。

二、Python基础语法

1. 核心规则

特性PythonPHP网安关注点
代码块标识缩进(4个空格)大括号{}看懂代码执行范围
变量定义直接命名(如name必须带$(如$name快速识别变量
字符串拼接+号 / f-string(推荐)点号.看懂数据拼接逻辑
注释单行#单行//、多行/**/快速跳过注释看核心代码

2. 变量与数据类型

Python无需声明变量类型,直接赋值,重点看懂3种常用数据容器(网安工具/漏洞代码高频出现):

  • 列表 []:可变、有序,可增删改查(如存储扫描的子域名、漏洞列表);

  • 元组 ():不可变、有序,只能读取(如存储固定的配置信息、靶场地址);

  • 字典 {}:键值对形式(key:value),通过键取值(如存储目标资产信息:{"域名":"ip地址"})。

3. 流程控制

网安中主要用于工具的判断、循环扫描,无需写,重点看执行条件:

  1. 条件语句 if/elif/else:根据条件执行不同代码(如判断扫描结果是否为漏洞、目标是否在线);

  2. 循环语句 for/while:重复执行代码(如for循环遍历字典扫描子域名、while循环持续探测目标端口);

  3. 核心注意:Python的缩进决定代码块归属,缩进一致的代码为同一执行块。

4. 面向对象

  1. 函数 def:封装可重复使用的代码段(如工具中的“扫描函数”“请求函数”),看懂def 函数名(参数):即可识别函数;

  2. 魔术方法 __xx__:双下划线开头,Python自动触发(如__init__是构造函数,初始化对象属性,网安漏洞代码/工具中高频出现);

  3. 关键字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 requestsrequests.get(目标网址) → 获取状态码/页面内容;

  • python-whois:域名信息查询模块,用于获取域名的注册人、注册时间、过期时间(渗透测试的资产信息收集环节)。

四、网安专用Python工具

OneForAll

  1. 工具用途:基于Python开发,高效枚举目标域名的子域名、获取解析记录/资产信息(渗透测试第一步:资产收集,必用工具);

  2. 核心操作(记命令即可)

  • 下载地址:https://github.com/shmilylty/OneForAll

  • 批量安装依赖:pip install -r requirements.txt -i 阿里云镜像源

  • 基础使用(默认字典扫描):python oneforall.py --target 目标域名 run

  • 自定义字典扫描:python oneforall.py --target 目标域名 --wordlist=字典路径 run

  1. 结果查看:扫描结果保存在工具目录的results文件夹中,包含csv/sqlite3格式,直接打开即可。

五、Python vs PHP

对比维度PythonPHP网安应用场景
应用领域全领域(渗透、自动化、Web、AI)专注Web后端开发Python为主,PHP为辅
核心用途网安工具开发、漏洞利用、自动化扫描分析PHP网站漏洞(SQL注入/文件上传)渗透测试:Python用工具,PHP看漏洞代码
学习重点模块/工具使用、网络请求超全局变量、漏洞原理各取所需,无需互通
数据接收无固定超全局变量,通过模块(如requests)获取超全局变量$_GET/$_POST/$_FILESPHP看数据入口,Python用工具请求数据

六、网安视角Python复习核心口诀

  1. 一看缩进:定代码块,看懂执行范围;

  2. 二识容器:列表/元组/字典,看懂数据存储;

  3. 三会pip:安装/卸载/批量装依赖,工具使用基础;

  4. 四熟模块:requests(模拟请求)、OneForAll(子域名扫描),网安高频使用;

  5. 五辨区别:Python做工具、PHP看漏洞,各司其职。