跳到主要内容Python 基础入门与网络安全资产收集实战 | 极客日志Python算法
Python 基础入门与网络安全资产收集实战
介绍 Python 在网络安全中的应用。首先讲解 Python 基础语法,包括变量、数据结构、流程控制及函数。接着介绍模块系统,涵盖内置、自定义及第三方模块管理。最后通过 requests 库模拟网络请求,并使用 OneForAll 工具进行子域名收集实战。适合零基础学习者快速掌握 Python 安全开发技能。
leon5 浏览 在网络安全领域,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() 转换为字符串)。
age = 30
pi = 3.14159
name = 'niko'
is_student = True
print(f"姓名:{name}, 年龄:{age}")
str_num = "123"
int_num = int(str_num)
print(f"字符串 '{str_num}' 转换为整数:{int_num}")
new_message = "我的分数是:" + str(int_num)
print(new_message)
三大常用数据结构
Python 提供了三种实用的数据结构,分别适用于不同的场景,掌握它们就能高效处理各类数据集合。
| 数据结构 | 定义格式 | 核心特性 | 适用场景 |
|---|
| 列表(List) | 方括号 [] | 可变、有序 | 存储需要增删改的动态数据(如待办事项) |
| 元组(Tuple) | 圆括号 () | 不可变、有序 | 存储无需修改的核心数据(如身份证信息) |
| 字典(Dict) | 花括号 {} | 可变、键值对、Python3.7+ 有序 | 存储需要通过关键字查询的数据(如通讯录) |
todo_list = ["买牛奶", "取快递", "写代码"]
todo_list.append("运动 30 分钟")
todo_list[1] = "取快递(顺丰)"
del todo_list[2]
print("列表结果:", todo_list)
person_info = ("zs", "110101199001011234", "1990-01-01")
print("元组查询姓名:", person_info[0])
contact = {"zs": "13800138000"}
contact["lisi"] = "13700137000"
print("字典查询 zs 手机号:", contact["zs"])
2.流程控制:掌控代码的执行逻辑
Python 不使用大括号 {} 划分代码块,而是依靠缩进(通常 4 个空格),这是 Python 的核心规则,缩进错误会直接导致程序运行失败。
条件判断:if-elif-else
用于根据不同条件执行不同的代码逻辑,适用于成绩评级、权限判断等场景。
user_score = 85
if user_score >= 90:
print("成绩优秀")
elif user_score >= 80:
print("成绩良好")
else:
print("需要努力")
循环:while 与 for
用于重复执行某段代码,while 适用于未知循环次数的场景,for 适用于已知循环次数或遍历数据集合的场景。
count = 3
while count > 0:
print(f"While 倒计时:{count}")
count -= 1
for i in range(1, 6):
print(f"For 循环数字:{i}")
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print("水果名称:", fruit)
3.函数与面向对象:代码复用与封装
函数:def 关键字定义
函数是组织好的、可重复使用的代码段,用于实现单一或相关联的功能,能大幅提升代码的复用性和可维护性。
def sum_num(arg1, arg2):
total = arg1 + arg2
print("函数内计算结果:", total)
return total
result = sum_num(10, 20)
print("函数返回结果:", result)
面向对象:类与对象
类是一个模板或蓝图,包含属性(存储数据)和方法(执行操作),对象是类的实例化结果。在网络安全工具开发中,面向对象能更好地封装工具的核心逻辑。
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 等。
import math
print("4 的平方根:", math.sqrt(4))
from math import sqrt
print("9 的平方根:", sqrt(9))
2.自定义模块:封装自己的功能
自定义模块是开发者自己编写的 .py 文件,用于封装特定的功能逻辑,命名时注意不要与内置模块重名。
步骤 1:创建自定义模块文件(my_sum.py)
def add(num1, num2):
"""求两个数的和"""
return num1 + num2
步骤 2:导入并使用自定义模块
import my_sum
result = my_sum.add(1, 2)
print("自定义模块求和结果:", result)
3.第三方模块:丰富的生态扩展
第三方模块是由其他开发者或组织发布的模块,需要通过 pip 命令安装,这也是 Python 生态强大的核心原因。
常用 pip 命令
pip list
pip install 模块名
pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip uninstall 模块名
国内优质镜像源
四、网络安全实战:Python 工具落地
掌握了 Python 基础和模块系统后,我们就可以上手网络安全领域的实用工具,完成从理论到实战的跨越。
1.模拟浏览器:requests 库(网络请求必备)
requests 是 Python 最常用的网络请求库,核心功能是模拟浏览器向网站发送请求、获取数据,是后续爬虫、资产探测、漏洞扫描的基础。
步骤 1:安装 requests 库
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
步骤 2:发送 GET 请求并获取响应
import requests
domain = "https://example.com/"
r = requests.get(domain)
print("响应状态码:", r.status_code)
print("网站源码:", r.text[:500])
2.子域名收集:OneForAll 工具
OneForAll 是一款基于 Python 开发的功能全面的域名信息收集与爆破工具,能高效枚举目标域名的子域名、获取解析记录与资产信息,是网络安全渗透测试中的必备工具。
步骤 1:下载 OneForAll
步骤 2:安装依赖
打开终端,进入解压后的目录,批量安装项目所需依赖:
cd D:\Oneforall\OneForAll-master
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
步骤 3:使用 OneForAll 收集子域名
python oneforall.py --target https://example.com run
python oneforall.py --target https://example.com --wordlist=自定义字典路径\字典.txt run
运行完成后,工具会自动生成详细的子域名报告,包含子域名、解析记录、状态码等信息,方便后续资产梳理和漏洞探测。
五、总结与展望
- Python 以其简洁易上手、生态丰富的特点,成为网络安全领域的首选语言,零基础小白可优先从 Python3.8+ 入门。
- 掌握变量、数据结构、流程控制、函数与面向对象等基础语法,是后续工具开发和使用的核心前提。
- Python 模块系统(内置、自定义、第三方)是代码复用的关键,pip 命令和国内镜像源能高效解决第三方模块的安装问题。
- 从 requests 模拟网络请求,到 OneForAll 子域名收集,是 Python 网络安全实战的入门路径,后续可深入学习 scapy(网络数据包处理)、BeautifulSoup(数据解析)等工具,提升实战能力。
Python 的学习之路没有捷径,多敲代码、多做实战,才能快速将知识转化为能力,在网络安全领域站稳脚跟。
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- 加密/解密文本
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
- curl 转代码
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online