Host: www.website.com User-Agent: some user agent Accept: application/json, text/plain, */* Accept-Language: pl,en-US;q=0.7,en;q=0.3 Referer: https://www.website.com/users/12345/profile Content-Type: application/json;charset=utf-8 X-CSRF-TOKEN: Ab1/2cde3fGH Content-Length: 27 Cookie: some-cookie=; DNT: 1 Connection: close {"targetUser":"12345"}

我应该如何使用这些信息,用python发送一个有效的请求? 我找到的东西并没有什么帮助。我需要有人用我给你的数据给我看一个例子。

python
python-3.x
http-post
burp
David
David
发布于 2017-04-09
3 个回答
apoorlydrawnape
apoorlydrawnape
发布于 2021-12-24
已采纳
0 人赞同

I would do something like this.

import requests
headers = {
    "User-Agent": "some user agent",
    "Content-Length": 27
    # you get the point
data = {
    "targetUser" : "12345"
url = "www.website.com/user/follow"
r = requests.post(url, headers=headers,data=data)

是的,你会使用cookies来登录。Cookies是头文件的一部分。

那么,Content-Length不能是一个字符串?("27")
我想把它保持为整数,但字符串也可以。
一个python错误告诉我,它必须是一个字符串。不管怎么说,似乎网站有一些cookies来存储一些东西,如时间/日期和会话令牌,很可能是为了防止僵尸......这将是很困难的。
你们玩得开心点,而我要想办法通过 "XSRF代币验证"。顺便说一下,我不知道该接受哪个答案。不能同时接受。
我可以通过控制台获得令牌,把它放在Burp的中继器中,然后发送请求。这就成功了。现在我得让它与我的脚本一起工作。
Symonen
Symonen
发布于 2021-12-24
0 人赞同

我不会写诗,我只是给你一些示例性的代码。

import requests
headers = {
    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.5",
    "Referer": "SOMETHING",
    "Cookie": "SOMETHING",
    "Connection": "close",
    "Content-Type": "application/x-www-form-urlencoded"
data = "SOME DATA"
url = "https://example.com/something"
request = requests.post(url, headers=headers, data=data)

在标题中,你设置需要的标题等,我想你已经明白了;)

谢谢,但在我的情况下,最后一行--{"targetUser": "12345"}应该放在哪里?它似乎与其他部分不同。
在你的案例中,你应该把 "SOME DATA "改为" {"targetUser": "12345"}。".在数据变量中,你应该插入你的数据 :)
EndlessHomework
EndlessHomework
发布于 2021-12-24
0 人赞同

这个Burp扩展可能有帮助。 复制为Python-Requests

它可以将选定的请求复制为Python-Requests的调用。

在你的案例中,作为Python-Requests复制后,你得到的是。

import requests
burp0_url = "http://www.website.com:80/user/follow"