「场景」
进入场景后提示
请用GET方式提交一个名为a,值为1的变量
「思路」
根据提示在url后加上?a=1
,回车发送请求。出现新提示。
请再以POST方式随便提交一个名为b,值为2的变量
打开brupsuite,配置本地代理为brupsuite中proxy的地址和端口号,刷新浏览器页面,brupsuite捕获到请求。
将请求发送到Repeater。
切换到Repeater标签页
- 将GET修改为POST
- 增加
Content-Type: application/x-www-form-urlencoded
- 增加
b=2
点击Go,发送请求,得到flag
「工具」
- Chrome
- Brupsuite
「知识拓展」
Content-Type详解
什么是Content-Type
在HTTP协议消息头中,使用Content-Type来表示媒体类型信息。它被用来告诉服务端如何处理请求的数据,以及告诉客户端(一般是浏览器)如何解析响应的数据,比如显示图片,解析html或仅仅展示一个文本等。
Post请求的内容放置在请求体中,Content-Type定义了请求体的编码格式。数据发送出去后,还需要接收端解析才可以。接收端依靠请求头中的Content-Type字段来获知请求体的编码格式,最后再进行解析。
Content-Type的格式
Content-Type:type/subtype ;parameter
- type:主类型,任意的字符串,如text,如果是*号代表所有;
- subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
- parameter:可选参数,如charset,boundary等。
POST请求常见Content-Type类型
application/x-www-form-urlencoded
默认form表单application/json
目前最常用的POST方式multipart/form-data
用于文件上传