一、端口扫描相关内容
1. 端口扫描
- 什么是端口扫描
端口扫描是网络安全与渗透测试中,通过向目标主机的网络端口发送特定数据包,根据目标的响应结果,判断端口 "开放 / 关闭 / 过滤" 状态的技术。其核心目的是:识别目标主机运行的网络服务(如 HTTP 对应 80 端口)、发现潜在的服务漏洞,或梳理目标的网络资产边界。
- TCP SYN 端口扫描(基于 Scapy 实现)
原理 :属于 "半开扫描"(不完成 TCP 三次握手)。向目标端口发送SYN包,若目标返回SYN/ACK(表示端口开放),则直接发送RST包终止连接;若返回RST(表示端口关闭),则判定端口不可用。
特点:隐蔽性强(不建立完整连接,目标日志中不会记录 "已建立连接")、扫描速度较快。
- 基于 Nmap 进行端口扫描
Nmap 简介:网络扫描工具,支持端口扫描、服务识别、操作系统探测等功能。
- 基于 Masscan 进行端口扫描
Masscan 简介:高速端口扫描器,扫描速度可达每秒数百万端口,适合大规模网段扫描。
2. 常见扫描方式
(1)TCP connect 端口扫描
- 原理 :通过
connect()系统调用与目标端口建立完整 TCP 三次握手(SYN→SYN/ACK→ACK),若连接成功则端口开放。 - 特点:实现简单(无需 root 权限),但隐蔽性差(目标日志会记录 "已建立连接")。
(2)SYN 扫描
- 原理 :仅发送
SYN包,根据响应判断端口状态(SYN/ACK = 开放,RST = 关闭),不完成三次握手。 - 特点:隐蔽性强(目标日志仅记录 "半开连接"),需 root 权限(需构造原始数据包)。
(3)NULL 扫描
- 原理:发送无任何 TCP 标志位的数据包,若目标返回 RST 则端口关闭;若无响应则端口可能开放 / 过滤(依赖目标系统的 TCP 协议栈实现)。
- 特点:仅适用于遵循 RFC 793 的系统(如 Linux),Windows 系统会对 NULL 包返回 RST,无法识别。
(4)FIN 扫描
- 原理 :发送带有
FIN标志位的数据包,若目标返回 RST 则端口关闭;若无响应则端口可能开放 / 过滤。 - 特点:与 NULL 扫描类似,隐蔽性较好,但对 Windows 系统兼容性差。
(5)ACK 扫描
- 原理 :发送带有
ACK标志位的数据包,根据响应的 RST 包的 "窗口大小" 判断端口是否被过滤(窗口 > 0 = 未过滤,窗口 = 0 = 过滤)。 - 特点:不能直接判断端口 "开放 / 关闭",仅用于探测目标的防火墙规则。
(6)Xmas-Tree 扫描(URG, PSH, FIN)
- 原理 :发送同时置位
URG、PSH、FIN标志位的数据包,若目标返回 RST 则端口关闭;若无响应则端口可能开放 / 过滤。 - 特点:隐蔽性强,但仅适用于 Linux 等遵循 RFC 的系统,Windows 系统会返回 RST。
3. TCP SYN 端口扫描流程
| 端口状态 | 交互流程 |
|---|---|
| 端口开放 | 1→SYN →2;2→SYN/ACK →1 |
| 端口关闭 | 1→SYN →2;2→RST →1 |
4. 端口扫描工具安装
基于 Nmap:pip install python-nmap
基于 Masscan:
- 安装:
pip install python-masscan - 项目地址:https://github.com/MyKings/python-masscan
二、网络工具库相关内容
1. 工具库本节提要
- DNS 操作 - dnspython
- 网络数据包操作 - scapy
- IP 地址操作库 - netaddr
- 爬虫 - scrapy
- HTTP 请求构造 - requests
- 压缩与解压缩 - rarfile
2. DNS 操作(dnspython)的记录类型
- A 记录:将主机名转换成 IP 地址
- MX 记录:邮件交换记录,定义邮件服务器的域名
- CNAME 记录:别名记录,实现域名间的映射
- NS 记录:标记区域的域名服务器及授权子域
- PTR 记录:反向解析,与 A 记录相反,将 IP 地址转换为主机
3. IP 地址操作库 - netaddr
- 描述:A network address manipulation library for Python
4. 压缩与解压缩 - rarfile
- 类型:RAR 文件操作库
- 项目地址:https://github.com/markokkr/rarfile
- 支持:RAR 文件解压示例
5. BeautifulSoup 解析器对比
| 解析器 | 使用方法 | 优势 | 劣势 |
|---|---|---|---|
| Python 标准库 | BeautifulSoup(markup, "html.parser") |
内置标准库、速度适中、文档容错强 | 旧版本(2.7.3/3.2.2 前)中文容错差 |
| lxml HTML 解析器 | BeautifulSoup(markup, "lxml") |
速度快、容错强 | 需安装 C 语言库 |
| lxml XML 解析器 | BeautifulSoup(markup, ["lxml", "xml"])/BeautifulSoup(markup, "xml") |
速度快、唯一支持 XML | 需安装 C 语言库 |
| html5lib | BeautifulSoup(markup, "html5lib") |
容错最好、浏览器式解析生成 HTML5 文档 | 速度慢 |
- 推荐安装 lxml:
pip install lxml - 示例:
soup = BeautifulSoup(html_doc, 'lxml') # 指定解析器
6. XPath 相关内容
-
简介:XPath 是一门在 XML 文档中查找信息的语言,可用于在 XML/HTML 文档中对元素和属性进行遍历;相比 BeautifulSoup,XPath 在提取数据时更高效。
-
安装:
pip install lxml -
核心语法(路径表达式):
表达式 描述 nodename 选取当前节点的所有 nodename 子节点 / 从根节点选取 // 从匹配选择的当前节点选择文档中的节点,不考虑位置 . 选取当前节点 .. 选取当前节点的父节点 @ 选取属性
7. 网络数据包操作(scapy)
- 官网:http://www.secdev.org/projects/scapy/
- 安装:
pip install scapy - 描述:powerful interactive packet manipulation program.
三、常见 XSS 检测点
- 输入类场景:
- 在线留言表单、评论表单、意见反馈表单
- 注册页面
- APP - HTML5 页面
- 批量导入信息(未做过滤)
- 上传文件的文件名
- 文件上传(文件 / 图片内容含恶意 JavaScript,前端 HTML 代码解析)
- 富文本编辑器
- 其他场景:
- Flash XSS
- XSS Expression 示例:
body { color: expression(alert(document.cookie)); } - 开源项目 / 版本已知存在多处 XSS 漏洞
- 返回 JSON 字符串时未过滤,存在 XSS 问题
四、工具安装命令(含你提供的指令)
bash
运行
# 网页解析库
pip install beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple/
# DNS操作库
pip install dnspython
# 网络数据包操作库
pip install scapy
pip install scapy -i https://pypi.tuna.tsinghua.edu.cn/simple/
# IP地址操作库
pip install netaddr -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 爬虫框架
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple/
# HTTP请求库
pip install requests
# 压缩/解压库
pip install rarfile -i https://pypi.tuna.tsinghua.edu.cn/simple/
# Nmap调用库
pip install python-nmap -i https://pypi.tuna.tsinghua.edu.cn/simple/
# XPath依赖库
pip install lxml