【オリジナル】Pythonのリクエストにおけるparams、data、jsonパラメータの詳しい意味とcurlに対応したパラメータの受け渡し方法

まずは 114 チャレンジを見てみましょう: CTFLEARN でのPOST Practice

この Web サイトでは POST による認証が必要です。しかし、誰かが私たちのサイトを改ざんしたようです。認証する方法がまだあるのでしょうか? http://165.227.106.113/post.php

http://165.227.106.113/post.phpページのソース コードを確認すると、ユーザー名: admin | パスワード: 71urlkufpsdnlkadsf がわかります。簡単に言えば、この質問では http://165.227 に投稿リクエストを送信する必要があります。 106.113/post.php で、ユーザー名とパスワードのパラメーターを送信してフラグを取得します。

解決策 1: Python のリクエストを使用してポストリクエストを送信する

import requests

userinfo = {
    "username": "admin",
    "password": "71urlkufpsdnlkadsf"
}
# 方法1,使用data发送,此题的正确答案
response = requests.post("http://165.227.106.113/post.php", data=userinfo)
print(response.text)

# 方法2: 使用json
# response = requests.post("http://165.227.106.113/post.php", json=userinfo)
# print(response.text)

# 方法3:直接在url上加参数
# response = requests.post("http://165.227.106.113/post.php?username=admin&password=71urlkufpsdnlkadsf")
# print(response.text)

# 方法4: 使用params参数,和方法3等同
# response = requests.post("http://165.227.106.113/post.php", params="username=admin&password=71urlkufpsdnlkadsf")
# print(response.text)

Python の 4 つのメソッドの違いは何ですか? 著者 (古代 csdn の誰か) は、これら 4 つのリクエスト メソッドの違いは、リクエストの URL、リクエスト ヘッダーの Content-Type、およびリクエストの本文の違いにあることを発見しました。
ご興味がございましたら、以前に書いた記事も参照してください: [原文] When Python uses request to send post request, dos it use data? Or json? (Moved from my short book blog)

方法 1: データを使用する

URL: http://165.227.106.113/post.php
ヘッダー内のContent-Type:application/x-www-form-urlencoded
本体:username=admin&password=71urlkufpsdnlkadsf

方法 2: json を使用する

URL: http://165.227.106.113/post.php
ヘッダー内のContent-Type:application/json
本体:{“ユーザー名”: “admin”, “パスワード”: “71urlkufpsdnlkadsf”}

方法 3 および方法 4: URL にパラメーターを直接追加し、params を使用する

URL: http://165.227.106.113/post.php?username=admin&password=71urlkufpsdnlkadsf
ヘッダーの Content-Type: なし 宣言本文
: なし

解決策 2:カールを使用する

カール http://165.227.106.113/post.php -X POST -d “username=admin&password=71urlkufpsdnlkadsf”

PS:必ず二重引用符を使用してください。、一重引用符を使用すると、プロンプト「パスワード」は内部コマンドまたは外部コマンド、操作可能なプログラム、またはバッチ ファイルとして認識されません。
Curl の json リクエスト方法、作者 guggle (csdn 古代の誰か) は今のところ試していないので、書き方は載せません。Baidu で自分で調べてください、遭遇したら作者 guggle (csdn 古代の誰か) が追加してください

解決策 3: Chrome の postman プラグインを使用する

postman プラグインをダウンロードして使用する方法

おすすめ

転載: blog.csdn.net/guggle15/article/details/120362917