当前位置:首页>python>从零开始学Python:测试的必修课

从零开始学Python:测试的必修课

  • 2026-09-09 10:22:20
从零开始学Python:测试的必修课

从零开始学Python:测试的必修课

📌 微信:CTF_JunMo

君陌-LNM发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

📢 如侵权请私聊我们删文

在渗透测试与安全攻防领域,Python 是每一位安全从业者的必修课。它能让我们从手动点击浏览器,升级为自动化探测、批量测试漏洞的高效猎手。本文将围绕「好靶场」的五个核心练习,带你从零掌握 Python HTTP 请求的核心技能。

如果你是零基础,建议先夯实一些基础知识。这里也推荐一下国家网络空间安全人才培养基地的NISP一级 和 NISP二级 认证,非常适合刚入门的小伙伴系统学习,快速搭建知识框架。

👉[NISP一级购买微信跳转链接]👈#小程序://CISP/X519g8JFppaMbpG

👉[NISP二级购买微信跳转链接]👈#小程序://CISP/X519g8JFppaMbpG

(如无法点击,请添加微信咨询)

如果你想系统学习,同时获得权威认证,提升就业竞争力,强烈推荐报考 NISP一级 和 NISP二级。

NISP是国家网络空间安全人才培养基地的认证,含金量高,流程简单,尤其适合在校大学生和刚入行的网络安全从业者,是入门的“敲门砖”。

👉[NISP一级购买微信跳转链接]👈#小程序://CISP/X519g8JFppaMbpG

👉[NISP二级购买微信跳转链接]👈#小程序://CISP/X519g8JFppaMbpG

(如无法点击,请添加微信咨询)

Python GET:被动信息收集的基石

GET 请求是 HTTP 协议中最基础的「只读」请求,它不会修改服务器数据,是安全测试中最安全的初筛手段。

一、核心作用

信息收集:爬取网页源码、响应头,提取中间件、CMS 指纹、敏感文件路径。

资产探测:批量扫描 robots.txt、.git、备份文件等敏感路径。

参数漏洞测试:在 URL 中拼接 Payload,测试 SQL 注入、XSS 等 URL 参数型漏洞。

二、实战代码示例

import requests# 目标地址:http://域名:端口/flagurl = "http://xxx.xxx.xxx.xxx:xxxx/flag"# 发送GET请求response = requests.get(url)# 分析响应print(f"状态码: {response.status_code}")print(f"响应内容: {response.text}")# 这里通常会直接返回flag

✅关键要点:GET 参数直接拼接在 URL 后,适合被动、无侵入的探测场景。

Python POST:主动攻击的核心

与 GET 不同,POST 请求是主动向服务器提交数据的方法,是漏洞利用、登录爆破的核心载体。

一、核心作用

登录 / 弱口令爆破:批量提交用户名和密码,探测未授权访问。

POST 型漏洞利用:提交恶意 Payload 到表单或接口,测试 SQL 注入、命令注入等。

越权测试:篡改提交的数据,测试水平 / 垂直越权漏洞。

二、基础代码模板

import requestsurl = "http://xxx.xxx.xxx.xxx:xxxx/flag"# 基础POST请求(后续练习会在此基础上扩展)response = requests.post(url, data={})print(response.text)

✅关键要点:POST 数据藏在请求体中,比 GET 更隐蔽,适合传输敏感信息和攻击载荷。

Python POST-data:表单传参的标准姿势

application/x-www-form-urlencoded 是最传统的表单数据格式,也是 90% 网站登录框、后台表单采用的传参方式,我们称之为 Post-Data。

一、核心作用

弱口令爆破:这是最常用的场景,将 username 和 password 作为键值对提交。

表单漏洞测试:在表单字段中注入 Payload,测试 POST 型 SQL 注入、XSS。

二、实战代码示例

import requestsurl = "http://xxx.xxx.xxx.xxx:xxxx/flag"# Post-Data:键值对格式,对应HTML表单的name和valuepost_data = {"username":"admin","password":"123456"}response = requests.post(url, data=post_data)print(response.text)

✅关键要点:requests.post(url, data=字典) 会自动将字典编码为标准表单格式,无需手动处理 URL 编码。

Python POST-ua:伪造请求头,绕过基础防护

很多服务器和 WAF 会通过 User-Agent(UA)头来识别客户端。如果 UA 是 Python 脚本的默认标识,很容易被拦截。因此,伪造 UA 头是渗透测试的必备技能。

一、核心作用

绕过反爬 / 防护:将 UA 伪装成浏览器,避免被识别为脚本。

身份伪装:配合其他请求头(如 Referer、Cookie),绕过更复杂的验证逻辑。

二、实战代码示例

import requestsurl = "http://xxx.xxx.xxx.xxx:xxxx/flag"# 伪造请求头,模拟Chrome浏览器headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}post_data = {"key": "value"}# 携带自定义请求头发送POST请求response = requests.post(url, data=post_data, headers=headers)print(response.text)

✅关键要点:除了 UA,还可以伪造 Referer、Cookie、X-Forwarded-For 等头,进一步绕过防护。

Python POST-json:现代接口测试的必备技能

随着前后端分离架构的流行,越来越多的 Web 应用使用 JSON 格式 来传输数据。与传统的 Post-Data 不同,JSON 接口需要指定 Content-Type 并使用 json 参数提交。

一、核心作用

API 接口测试:测试 RESTful API、微服务接口的安全性。

JSON 型漏洞测试:在 JSON 字段中注入 Payload,测试 JSON 注入、命令执行等漏洞。

二、实战代码示例

import requestsurl = "http://xxx.xxx.xxx.xxx:xxxx/flag"# JSON格式数据json_data = {"user":"test","pass":"test123"}# 使用json参数提交,requests会自动设置Content-Type: application/jsonresponse = requests.post(url, json=json_data)print(response.text)

✅关键要点:requests.post(url, json=字典) 与 data=字典 的区别:

ldata=字典:默认 Content-Type: application/x-www-form-urlencoded

ljson=字典:自动设置 Content-Type: application/json,并将数据序列化为 JSON 字符串

总结与进阶

这五个练习层层递进,构成了 Python 安全测试的基础框架:

lGET:被动收集,摸清家底。

lPOST基础:主动出击,提交数据。

lPost-Data:表单交互,爆破核心。

lUA伪造:隐藏身份,绕过防护。

lJSON:对接现代 Web,测试 API。

掌握这些技能后,你就可以编写自动化脚本,批量扫描漏洞、爆破弱口令,成为一名高效的安全测试工程师。

⚠️ 重要提醒:所有测试必须在授权的合法靶场中进行,未经授权的渗透测试是违法行为。

文末福利 🎁

如果你对漏洞挖掘感兴趣,想获取更多学习资料(工具包、教程、靶场资源)和实战技巧,欢迎添加我的微信,拉你进交流群一起学习、一起进步!

📌 备注“公众号”,即可通过好友验证

【作者微信二维码图片占位】

(请扫描上方二维码添加好友,群内定期分享干货、解答疑问)

最新文章

随机文章