HTTP动作练习
-----Martin----- ---https://github.com/MartinxMax--
要求
–背景介绍–:
某日,安全工程师"墨者"对一企业办公系统的源代码进行授权检测,在检查过程中,发现程序员(可能是临时工)使用PHP程序,处理服务端接收客户端传递的数据时,使用的是$_REQUEST[],前端使用的是GET方式,然后就遇到问题了"Request-URI Too Long"。
–实训目标 --:
1、掌握在浏览器发送数据时、GET、POST两者方式的差异;
2、理解在PHP程序中
R
E
Q
U
E
S
T
、
_REQUEST、
REQUEST、_GET、$_POST三者之间的区别;
3、了解不同浏览器通过GET方式传递数据时,限制数据长度的大小;
解题思路
使用Burp抓包过关
点击静夜思后通过抓包我们可以看到一堆字符
将GET改为POST请求方式
在这里插入图片描述
拿到flag
使用Python脚本过关
import requests
url ="http://124.70.71.251:47992/info.php"
DATA ={"content":"(填写数据)"}print(requests.post(url,data=DATA).text)
拿到Flag
一些容易出错的问题
1.为什么改了POST请求还是不能得到Flag
答:添加字段Content-Type: application/x-www-form-urlencoded
application/x-www-form-urlencoded是浏览器默认的URL编码格式。
例如
对于Get请求,是将参数转换?a=1&b=2格式
对于Post请求,则将参数封装在body中
知识点总结
1.GET和 POST的区别
GETPOST请求可被缓存请求不会被缓存请求保留在浏览器历史记录中请求不会保留在浏览器历史记录中请求可被收藏为书签不能被收藏为书签请求不应在处理敏感数据时使用请求对数据长度没有要求请求有长度限制请求只应当用于取回数据
- PHP中$ _REQUEST、$ _GET、$_POST区别
$_EQUEST$_GET$_POST可以获取所有POST方法和GET方法提交的数据获取GET方法提交的数据获取POST方法提交的数据获取数据比较慢大小限制大小无限制
3.各大浏览器GET请求最大长度限制
IE:对URL的最大限制为2083个字符,若超出这个数字,提交按钮没有任何反应。
Firefox:对Firefox浏览器URL的长度限制为:65536个字符。
Safari:URL最大长度限制为80000个字符。
Opera:URL最大长度限制为190000个字符。
Google(chrome):URL最大长度限制为8182个字符。
Apache(Server):能接受的最大url长度为8192个字符(这个准确度待定???)
Microsoft Internet Information Server(IIS):n能接受最大url的长度为16384个字符。
版权归原作者 Мартин. 所有, 如有侵权,请联系我们删除。