网站开发团队构成,百度浏览器广告怎么投放,太原工业学院教务网络管理系统,广州最好的网站建设文章目录 1. 工具准备1.1. requests代码包1.2. BurpSuite抓包工具 2. 操作过程2.1. 一个简单的请求2.1.1. Burp获取响应2.1.2. 转发获取响应 2.2. 构造GET类型URL参数2.3. 构造请求头部2.4. 构造POST类型payload数据2.4.1. urlencoded格式2.4.2. json格式 本文主要讲解常用API接… 文章目录 1. 工具准备1.1. requests代码包1.2. BurpSuite抓包工具 2. 操作过程2.1. 一个简单的请求2.1.1. Burp获取响应2.1.2. 转发获取响应 2.2. 构造GET类型URL参数2.3. 构造请求头部2.4. 构造POST类型payload数据2.4.1. urlencoded格式2.4.2. json格式 本文主要讲解常用API接口如何使用python实现。 APIApplication Programming Interface是应用程序开发接口的缩写意思是一些预设好的函数或方法这些预设好的函数或方法允许第三方程序通过网络来调用数据或提供基于数据的服务。
1. 工具准备
Python运行环境python3.10.2 PyCharm
1.1. requests代码包
使用pip install requests安装此代码包pip安装教程
1.2. BurpSuite抓包工具
BurpSuite安装教程参考1.2章节设置http协议代理为127.0.0.1端口8080完成后开启Intercept劫持功能 2. 操作过程
2.1. 一个简单的请求
使用python发现一个简单的GET请求并且通过BurpSuite抓取其请求
import requests# URL
host www.testcode.com
port 9201
url http:// host : port# 配置Burp截取配置
proxies {http:http://127.0.0.1:8080}# 发送请求
reponse requests.get(urlurl, proxiesproxies)print(reponse.text)代码运行后会在BurpSuite上回显一条http请求即为该代码构造的http请求
将此请求放入重放或者点击代理的forwafd转发即可看到其具体响应内容。
2.1.1. Burp获取响应
使用BurpSuite的Repeater重放功能就可以直接查看到Response响应。
2.1.2. 转发获取响应
使用Proxy代理模块中的Forward转发可以将请求发送到服务侧即可在原软件获得Response响应。
2.2. 构造GET类型URL参数
import requestshost www.testcode.com
port 9201
url http:// host : port# 构造参数
params {username : test,passwd : aaabbbccc1234567890
}proxies {http:http://127.0.0.1:8080}reponse requests.get(urlurl, proxiesproxies, paramsparams)print(reponse.text)执行结果 像这种/usernametestpasswdaaabbbccc1234567890的参数格式称之为 urlencoded 格式主要是以键值对keyvalue和拼接字符组合成http请求参数。
2.3. 构造请求头部
参考文章HTTP协议头部字段梳理
import requestshost www.testcode.com
port 9201
url http:// host : portparams {username : test,passwd : aaabbbccc1234567890
}# 构造头部字段注意大小写
headers {User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,Referer : www.aaa.bbb.ccc.com
}proxies {http:http://127.0.0.1:8080}reponse requests.get(urlurl, proxiesproxies, paramsparams, headersheaders)print(reponse.text)执行结果
2.4. 构造POST类型payload数据
import requestshost www.testcode.com
port 9201
url http:// host : portparams {username : test,passwd : aaabbbccc1234567890
}headers {User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,Referer : www.aaa.bbb.ccc.com
}# 设置payload
payload
!-- Edited by XMLSpy® --
note
toTove/to
fromJani/from
headingReminder/heading
bodyDont forget me this weekend!/body
/note
proxies {http:http://127.0.0.1:8080}# 修改类型为POST设置payload对象编码为UTF-8(中文编码)
reponse requests.post(urlurl, proxiesproxies, paramsparams, headersheaders, datapayload.encode(utf-8))print(reponse.text)执行结果
2.4.1. urlencoded格式
urlencoded格式解释详见本文2.2章节内容
import requestshost www.testcode.com
port 9201
url http:// host : portparams {username : test,passwd : aaabbbccc1234567890
}headers {User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,Referer : www.aaa.bbb.ccc.com
}payload {key1 : value1,key2 : value2
}proxies {http:http://127.0.0.1:8080}reponse requests.post(urlurl, proxiesproxies, paramsparams, headersheaders, datapayload)print(reponse.text)执行结果
2.4.2. json格式
参考文章JSON数据格式与格式化操作详解
import json
import requestshost www.testcode.com
port 9201
url http:// host : portparams {username : test,passwd : aaabbbccc1234567890
}headers {User-Agent : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,Referer : www.aaa.bbb.ccc.com
}payload {key1 : value1,key2 : {key3 : value3,key4 : {key5 : 测试}}
}proxies {http:http://127.0.0.1:8080}# payload数据使用json.dumps转化为strensure_asciiFalse代表关闭非ASCII字符转义
# 若不关闭非ASCII字符转义则测试回显为转义后的ASCII字符\u6d4b\u8bd5两者意思一致
reponse requests.post(urlurl, proxiesproxies, paramsparams, headersheaders, datajson.dumps(payload, ensure_asciiFalse).encode())print(reponse.text)