【原创】python中request中的params,data,json参数含义全解及curl对应如何传参

我们先来看下CTFLEARN中的114 challenge:POST Practice

This website requires authentication, via POST. However, it seems as if someone has defaced our site.Maybe there is still some way to authenticate? http://165.227.106.113/post.php

查看http://165.227.106.113/post.php页面源码,即可发现username: admin | password: 71urlkufpsdnlkadsf,简单来说,此题需要我们向http://165.227.106.113/post.php,发送post请求,将username和password参数提交,即可得到flag。

解法1:使用python的requests发送post请求

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中的四种方法有何区别呢?笔者guggle(csdn远古某人)发现,这4种请求方式的区别在于:请求的url,请求header中Content-Type,请求的body不同。
有兴趣大家也可以参看下我之前写的文章:【原创】Python 使用requests发post请求时是用data?还是json?(从本人简书博客移入)

方法1:使用data

url: http://165.227.106.113/post.php
header中的Content-Type:application/x-www-form-urlencoded
body:username=admin&password=71urlkufpsdnlkadsf

方法2:使用json

url: http://165.227.106.113/post.php
header中的Content-Type:application/json
body:{“username”: “admin”, “password”: “71urlkufpsdnlkadsf”}

方法3和方法4:直接在url上加参数和使用params

url: http://165.227.106.113/post.php?username=admin&password=71urlkufpsdnlkadsf
header中的Content-Type:没有声明
body:none

解法2:使用curl

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

PS:一定要使用双引号!!!,使用单引号,会提示’password’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
curl的json请求法,笔者guggle(csdn远古某人)暂时未试,故不贴写法,请自行百度,如有遇到,笔者guggle(csdn远古某人)会补充进来

解法3:使用chrome的postman插件

postman插件下载及使用方法

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值