POST

如题

POST是什么?

POST是一种HTTP请求方法, 通过网址中的参数来向服务器请求相应的网络资源.

更详细的HTTP请求方法介绍, 请见: MDN文档

如何POST?

POST本质上和GET都属于给网站提供数据的请求方法. 只不过GET请求可以通过在网址后面直接构造的方法来使用, 十分的简单便捷.

POST不同, POST是一种有报文的请求方式, 正常用户是无法显式看见POST请求的详细信息的.

POST的方法有很多种, 我们只挑两种来讲.

使用Postman工具

打开Postman, 界面大致如下:

Screenshot_20200807_122034.png

如上设置好你的数据, 就可以非常方便的向服务器发送请求了.

使用PythonRequests

使用Pythonrequests库是最灵活也是CTF中最常用的方法.

安装requests

确保你的电脑上有Python3;

1
$ python3 -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

请注意! 不要将requests错误的写为request, request库近期被检出投毒: 链接

如果你使用Linux, 也可以在对应发行版的软件仓库里找到requests库的安装包. 例如Arch Linux:

1
$ sudo pacman -Syyu python-requests

即可安装requests库.

尽量使用发行版的包管理器, 这样包管理器更新时会一并检查这些包并自动升级. 如果使用pip, 可能还需要隔一段时间手动更新以修复一些bug, 获得新的功能.

使用requests

使用如下脚本即可简单的对一个网站进行请求:

1
2
3
4
5
6
7
8
9
10
import requests

payload = {"key" : "value"}
url = "https://www.example.com"

response = requests.post(url, data=payload) # 发送请求

print(response.text) # 输出响应主体

print(response.headers) # 输出HTTP响应头

requests库的用法十分丰富, 还可以使用session来维持一个会话, 请熟练掌握.

关于更高级的用法本文不再介绍, 请阅读requests官方文档

评论

:D 一言句子获取中...