python Get/Post请求练习

本文为个人学习与实战过程中的思路总结,旨在分享技术探索经验,若有疏漏之处,欢迎交流指正。

前期准备

我们开启靶场先看描述

这道题的描述是:"作为安全人员,Python是你的必修课(请求注意:所有请求都是 http://域名:端口/flag)"

此处注意需要有python环境

实战

官方解题思路

写一个python脚本,通过Python requests模块以Get方式请求地址即可:

复制代码
import requests

# 靶场地址(文档中说明请求 /flag 路径)
url = "http://xxxxxxx.haobachang.loveli.com.cn:8888/flag"

try:
    # 发送 GET 请求
    response = requests.get(url)

    # 检查是否成功(状态码 200)
    response.raise_for_status()

    # 输出 flag
    print("获取 Flag 成功!")
    print(response.text.strip())  # strip() 去除多余换行

except requests.exceptions.RequestException as e:
    print(f"请求失败:{e}")

代码解析

这是一段用 Python requests 库编写的获取 Flag 的 HTTP 请求脚本,用于向靶场服务器发送 GET 请求并提取响应内容。

  1. 导入库

    复制代码
    import requests

    导入 requests 库,用于发送 HTTP 请求。

  2. 定义目标 URL

    复制代码
    url = "http://5n6vos2.haobachang2.loveli.com.cn:8888/flag"

    靶场地址,指定请求 /flag 路径以获取 Flag。

  3. 异常捕获与请求发送

    复制代码
    try:
        response = requests.get(url)
        response.raise_for_status()  # 检查状态码,非200则抛出异常
        print("获取 Flag 成功!")
        print(response.text.strip())  # 输出响应内容并去除首尾空白/换行
    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")
    • requests.get(url):向目标地址发送 GET 请求。
    • response.raise_for_status():自动检查 HTTP 状态码,若为 4xx/5xx 则抛出异常,避免后续处理错误数据。
    • response.text.strip():获取响应文本并去除多余换行和空格,让输出更整洁。
    • except 块:捕获所有 requests 相关异常,打印错误信息便于调试。

拓展

其它思路

我们不仅仅看官方的解题步骤,还可以看看评论区师傅们的思路

除了不同的python脚本外,还有其它方法

思路一

通过抓包修改UA头来拿到flag

sende to repeater

只需要把ua头修改为python,get目录/改为/flag即可

思路二

其实我本来是有思路的,只是题目要求使用python所以一开始就没有尝试

使用reqable


注意haobachang2前面的子域名xxxxxxx是自己开启靶场后随机分配给的,不是每个人都一样每次都一样

此时提示我不要使用自定义UA头请求,然后我看一下请求头

发现这个请求头有问题

改为python-requests/2.31.0尝试或者直接python-requests/

获取flag!

其它

关于pos请求练习和get请求是相同的,无非就是python中的get请求方式改为post

对于bp来说就是在get请求的基础上讲请求头最开头的get改为post

对于reqable来说,直接讲刚刚选择的get方式改为post方式即可

本篇完 | 实践出真知,交流共进步

每一篇文章都是一次沉淀,感谢你的阅读。技术没有捷径,唯有不断积累、不断输出。期待下次继续与你分享更多实战经验,一起前行。

《法律与责任声明》

本内容仅用于网络安全漏洞的技术研究、学习与交流。

一、合法性要求

  • 严格遵守《中华人民共和国网络安全法》及相关法律法规,严禁将所学技术用于非法活动,如未经授权的攻击、窃取信息等。例如,不得对未授权的真实生产环境网站做漏洞测试。
  • 漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。

二、风险与责任

  • 若因参考本内容对第三方造成损失,本人不承担法律责任,使用者自行担责。

三、传播限制

  • 禁止将本内容用于恶意传播,如制作恶意教程、培训非法黑客组织,应维护良好网络安全环境。
  • 发现有人利用本内容非法活动,应及时举报。

四、版权声明

本文为本人独立创作,有完整知识产权。未经书面许可,任何单位或个人不得转载、复制或以其他方式使用,违者依法追责。

阅读并使用本文章内容即表示同意声明条款

相关推荐
解救女汉子2 分钟前
MySQL并发写入如何避免锁竞争_使用队列缓冲与批量插入优化
jvm·数据库·python
qq_342295823 分钟前
HTML函数开发需要SSD吗_SSD对HTML函数开发效率影响【详解】
jvm·数据库·python
升鲜宝供应链及收银系统源代码服务5 分钟前
OMS 订单模块重构正式文档(一)---升鲜宝生鲜配送供应链管理系统
java·开发语言·重构·生鲜配送源代码·生鲜供应链源代码
qq_432703666 分钟前
Golang怎么用embed嵌入SQL文件_Golang如何将SQL迁移文件嵌入Go程序统一管理【技巧】
jvm·数据库·python
m0_6403093012 分钟前
如何将 sticky 元素精确定位到父容器的右上角
jvm·数据库·python
whyfail14 分钟前
CVE-2026-39363-Vite开发服务器安全漏洞深度分析
安全·vite
带娃的IT创业者15 分钟前
深度解析 Claude Design:如何利用 Anthropic 最新设计范式构建 AI 原生应用
人工智能·python·llm·claude·应用开发·anthropic·ai原生应用
是梦终空18 分钟前
计算机毕业设计271—基于python+深度学习+YOLOV7的车牌识别系统(源代码+数据库+3万字论文)
python·深度学习·opencv·yolo·毕业设计·pyqt5·车牌识别系统
m0_3776182325 分钟前
c++如何将双精度浮点数以科学计数法写入文件_scientific标志【详解】
jvm·数据库·python
weixin_4249993628 分钟前
如何检测SQL注入风险_利用模糊测试技术发现漏洞
jvm·数据库·python