我的解题过程
-
题目描述“X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?”
-
使用Burp Suite捕获网络请求,查看效果
-
浏览器输入目标网址,点击访问,Burp Suite捕获请求,直接发送到Repeater
-
Burp Suite的Response对中文解析乱码,在User options->Display->Http Message Display,把字体改成中文字体即可。
-
网页正文为“请用GET方式提交一个名为a,值为1的变量”
GET / HTTP/1.1 Host: 220.249.52.133:38339 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Connection: close Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0
-
将Repeater的Request中的请求报文的请求行,加上/?a=1
GET /?a=1 HTTP/1.1 Host: 220.249.52.133:38339 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Connection: close Upgrade-Insecure-Requests: 1
-
这次网页多了一行”请再以POST方式随便提交一个名为b,值为2的变量”
-
使用Burp Suite的Repeater修改请求方式为POST,并在请求体中加上一个值为2的b字段
POST /?a=1 HTTP/1.1 Host: 220.249.52.133:38339 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Connection: close Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0 Content-Length: 3 Content-Type: application/x-www-form-urlencoded b=2
-
发现flag:cyberpeace{e3a724bda5b72bbddf76c3ca8a484b7e}
-
提交,答案正确
独立思考
1. Burp Suite为什么会中文乱码?
Burp Suite展示数据包时中文乱码其实并不是解码失败的问题,而是它默认选用了英文字体,它的字库里没有中文,所以只需在User options->Display->Http Message Display,把字体改成中文字体即可。
2. 通过Burp Suite手动添加GET参数有什么需要注意的点?
-
请求行格式:请求方法 URL字段 HTTP协议版本 CRLF
-
当访问网站主页时,即浏览器只需输入网站域名或者ip:port时,请求行为请求方式、/、HTTP协议版本号(HTTP/1.1),此处的”/”代表了访问网站根目录,即主页
GET / HTTP/1.1
-
当访问某一URL时,若要带上参数,只需在请求行的URL路径后跟上?x=xxx&y=yyy,?用来标识GET参数的开始,之后每个键值对用\&作为分割。
-
注意访问网站根目录时,原请求行URL字段是有一个”/”的,不要把它误当作HTTP协议版本字段。所以正确格式如下:
GET /?x=xxx&y=yyy HTTP/1.1
3. 通过Burp Suite手动添加POST参数有什么需要注意的点?
- 首先需要将请求行的请求方式改为POST
- 在请求头部分,添加Content-Type: application/x-www-form-urlencoded,表明MIME类型为form表单
- 在请求体部分,写入要传输的字段如x=xxx&y=yyy,用&作为每个键值对的分隔符
产生过的疑问
- Burp Suite为什么会中文乱码?
- 通过Burp Suite添加GET参数有什么需要注意的点?
- 通过Burp Suite添加POST参数有什么需要注意的点?