python自动化-爬虫库
requests库requests 是 Python 生态中最为广泛使用的 HTTP 客户端库。在网络安全自动化场景(如资产探测、目录爆破、漏洞 PoC 编写)中,它以高度封装的 API 提供了极其便捷的网络交互能力。
一、 基础通信机制 (HTTP Methods)在编写自动化脚本时,最常用的通信方式为 GET 与 POST 请求。
GET 请求 (信息获取/探测): 常用于 URL 参数传递与页面抓取。
12345import requestsurl = "http://target.com/api"params = {"id": "1' OR '1'='1"} # 常用于测试 SQL 注入等response = requests.get(url, params=params)
POST 请求 (数据提交/交互): 常用于表单提交、JSON 载荷发送或文件上传漏洞测试。
123456data = {"username": & ...
python自动化-Socket开发
在网络攻防中,Socket 是构建所有自定义网络交互工具的基石。无论是底层的端口扫描、Banner 抓取,还是高阶的 C2(Command and Control)通信、反弹 Shell,本质上都是对 Socket 接口的灵活运用与排列组合。
一、 核心概念与底层机制Python 的 socket 模块是对底层 C 语言 BSD Socket 接口的封装。在安全开发中,需深刻理解以下基础元素的排列组合:
地址族 (Address Family)
socket.AF_INET: IPv4 网络通信(最常用)。
socket.AF_INET6: IPv6 网络通信(针对现代网络环境的渗透测试)。
socket.AF_PACKET: Linux 下的底层数据链路层接口,常用于嗅探(Sniffing)或二层注入。
套接字类型 (Socket Type)
socket.SOCK_STREAM: 面向连接的 TCP 协议。用于构建可靠的利用通道或准确的端口连通性测试。
socket.SOCK_DGRAM: 无连接的 UDP 协议。常用于 DDoS 脚本构造、DNS 欺骗或特定 UDP 服务的 ...
协议爆破
结合您笔记的上下文(自动化攻击技术 -> 协议爆破),利用 Python 原生或第三方库进行特定协议的口令爆破,是渗透测试中外围打点(Initial Access)的常规手段。
与底层 Socket 相比,使用特定协议的库(如 paramiko、pymysql)的优势在于:不需要手动去实现复杂的协议握手、加密协商或数据包重组,只需关注核心的认证逻辑与并发控制即可。
Python 自动化安全工具:多协议口令爆破开发实战协议爆破(Protocol Bruteforcing)的核心逻辑高度一致:建立连接 -> 提交凭据(账号/密码) -> 捕获特定异常以判断是否成功 -> 资源释放。一个专业的爆破脚本,其工程质量不仅体现在协议覆盖面,更体现在对异常情况的精准捕捉与高并发处理能力上。
一、 核心协议爆破模块解析在开发爆破引擎时,我们将每种协议的认证过程封装为独立的原子函数(Atomic Function)。以下是五大常见协议的实现细节:
1. SSH 协议爆破 (Port 22) - paramiko 库SSH 是服务器管理的核心入口,也是爆破的重灾区。paramiko ...
逆向-汇编代码基础
基础元素1234567move eax,5;将5传输至eax保存;寄存器与寄存器之间;寄存器与立即数;寄存数与存储器;存储器与立即数add eax,6;操作数1+操作数2;加法指令
整数常量0A3h 十六进制42q 八进制26d 十进制01010101b 二进制
有符号数最高位为符号位,“0”代表正数,“1”代表负数
1234567正数:0x0000001A0000000000000000000 0001 1010负数:0x1000001A100000000000000000000011010
无符号数所有二进制位都用于表示数值的绝对大小,没有符号位(最高位也是数据位)。 因此,无符号数只能表示 0 和正整数,永远不会是负数。
在相同的位数下,无符号数能表示的最大正数值,是有符号数最大正数值的两倍多(因为把符号位也拿来算数值了)。
1234567最小值 (十进制 0):0x0000000000000000 00000000 00000000 00000000最大值 (十进制 4,294,967,295):0xFFFFFFFF11111111 11111111 11111111 1111 ...
mysql基础
1 简介Mysql是一种开放源代码的关系型数据库管理系统,使用最常用的数据库管理语言——结构性查询语句进行数据库管理
Mysql是开源的,因此任何人都可以下载并根据个性化的需要进行修改
Mysql因为其速度、可靠性和适应性而备受关注。
2 基础知识2.1 连接Mysql1mysql -h主机地址 -u用户名 -p用户密码
2.2 数据库的启停2.2.1 启动数据库1service mysql start
2.2.2 停止数据库1service mysql stop
2.2.3 重启数据库1service mysql restart
2.3 数据库密码的更改2.3.1 更改密码1234use mysql; 选择数据库update user set password=password("新密码") where user="用户名";# 5.7以下mysql数据库字段名:authentication_stringflush privileges; quit;
2.3.2 更改用户名1234use mysql;update user set user= ...
流量的伪造绕过
Web 流量伪造与访问控制绕过1. 概述在 Web 架构中,服务端的访问控制策略(如 IP 白名单、设备限制、内部路由校验)往往依赖于 HTTP 请求头(HTTP Headers)中的信息。然而,HTTP 请求头完全由客户端控制。当服务端(尤其是处于反向代理、负载均衡或 WAF 之后的应用)未能正确鉴别数据的真实来源,盲目信任这些可被篡改的字段时,就会引发流量伪造与访问控制绕过漏洞。
这类技术常用于信息收集阶段的防护绕过、越权访问以及自动化测试(如 Fuzzing)。
2. 核心伪造技术2.1 客户端 IP 伪造 (IP Spoofing)当流量经过 CDN、WAF 或反向代理(如 Nginx)时,后端的 Web 应用无法直接通过底层 TCP 连接(如 PHP 的 $_SERVER['REMOTE_ADDR'])获取真实客户端 IP,通常会转而读取代理服务器附加的 HTTP 请求头。若后端逻辑存在缺陷,攻击者即可通过手动注入这些头部来伪造源 IP。
常用伪造场景: 绕过基于 IP 的后台限制(提示“仅限本地或受信任网络访问”)。
常见测试 Payload (目标 IP ...
命令基础
VIM基础一、 正常模式 (Normal Mode)这是 Vim 启动后的默认模式,所有的按键都被映射为控制指令。此模式主导光标移动、文本的复制删除、视口控制以及模式切换。
1. 光标移动与基础跳转
基础方向(h/j/k/l):123456 ^ k 提示: h 的键位于左边,每次按下就会向左移动。< h l > l 的键位于右边,每次按下就会向右移动。 j j 键看起来很象一支尖端方向朝下的箭头。 v
词级跳跃:
w:移动到下一个单词的起始处。
b:移动到上一个单词的起始处。
行与文件级跳转:
^:跳转至当前行的行头(首个非空字符)。
$:跳转至当前行的行尾。
gg:跳转至文件/文章开头。
G:跳转至文件/文章结尾。
<数字>gg:例如 52gg,精确跳转至第 52 行。
[[:跳转到当前文件开头(通常用于代码块匹配)。
]]:跳转至当前文件结尾。
2. 文本删除、置入与替换许多改变文本的命令都由 操作符 + 动作 (Motion) 构成。
删除操作符 (d):
x:删除光标当前所在位置的单个 ...
awd防御基础
系统修改密码linux密码1passwd test
服务修改密码mysql登录密码修改用set password命令首先登陆mysql
修改密码格式为:
1set password for 用户名@localhost = password('新密码');
一定不要忘记最后面的分号,例如:我们把密码改成成123:
mysqladmin利用mysqladmin,我们不需要先登录,但是需要直到原来的密码;我们可以直接修改,修改密码格式为:
mysqladmin -u用户名 -p旧密码 password 新密码,注意,password前面没有 - ,例如:我们再把密码改成123456:
1mysqladmin -uroot -p123456 password 123
用update直接编辑user表首先要先登录MySQL
然后依次输入:
123use mysql # 连接权限数据库update user set password=password('234567') where user='root' and host=' ...
dvwa暴力破解
DVWA靶场-暴力破解等级:high源码分析以下12345678910111213141516171819202122232425262728293031323334353637<?phpif( isset( $_GET[ 'Login' ] ) ) { // 检查Token checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); // 输入用户名 $user = $_GET[ 'username' ]; $user = stripslashes( $user ); $user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS ...
内网穿透
内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。简单来说,就是通过一定的技术手段,让位于内网(局域网)的设备能够被公网(互联网)上的设备所访问,实现内外网之间的互联互通。
ngrok 介绍概述ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。它可捕获和分析所有通道上的流量,便于后期分析和重放。ngrok 支持多种协议,包括常见的 HTTP、HTTPS 以及 TCP 协议等,这意味着无论是 Web 服务、SSH 服务还是其他基于 TCP 协议的服务,都能通过 ngrok 实现内网穿透。
特点
使用方便:操作相对简单,适合入门,免费使用(需求少的话就不需要购买它的付费服务)。
支持多协议:能满足不同类型服务的内网穿透需求。
数据监控:可捕获和分析所有通道上的流量,便于后期分析和重放。
使用 ngrok 实现内网穿透步骤注册 ngrok 账号访问 ngrok 官方网站(https://ngrok.com/)。
可以使用 GitHub 或者 Goo ...






