浏览器信息伪造

背景介绍

某日,安全工程师"墨者"对一企业办公系统的源代码进行授权检测,在检查过程中,发现程序员(可能是临时工)使用PHP程序,处理服务端接收客户端传递的数据时,使用的是$_REQUEST[],前端使用的是GET方式,然后就遇到问题了"Request-URI Too Long"。

实训目标

1、掌握在浏览器发送数据时、GET、POST两者方式的差异;
GET和POST两种基本请求方法的区别
2、理解在PHP程序中$ _REQUEST、$ _GET、$ _POST三者之间的区别;
三者之间的区别
3、了解不同浏览器通过GET方式传递数据时,限制数据长度的大小;
浏览器
IE
IE浏览器(Microsoft Internet Explorer) 对url长度限制是2083(2K+53),超过这个限制,则自动截断(若是form提交则提交按钮不起作用)。

firefox
firefox(火狐浏览器)的url长度限制为 65 536字符,但实际上有效的URL最大长度不少于100,000个字符。

chrome
chrome(谷歌)的url长度限制超过8182个字符返回本文开头时列出的错误。

Safari
Safari的url长度限制至少为 80 000 字符。

Opera
Opera 浏览器的url长度限制为190 000 字符。Opera 9 地址栏中输入190 000字符时依然能正常编辑。

服务器
Apache
Apache能接受url长度限制为8 192 字符

IIS
Microsoft Internet Information Server(IIS)能接受url长度限制为16 384个字符。
这个是可以通过修改的(IIS7)configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryStringsetting.

Perl HTTP::Daemon
Perl HTTP::Daemon 至少可以接受url长度限制为8000字符。Perl HTTP::Daemon中限制HTTP request headers的总长度不超过16 384字节(不包括post,file uploads等)。但当url超过8000字符时会返回413错误。
这个限制可以被修改,在Daemon.pm查找16×1024并更改成更大的值。

ngnix
可以通过修改配置来改变url请求串的url长度限制。

client_header_buffer_size 默认值:client_header_buffer_size 1k

large_client_header_buffers默认值 :large_client_header_buffers 4 4k/8k

由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务器的不同而有不同限制。
若要支持IE的话,url长度限制为2083字符,若是中文字符的话只有2083/9=231个字符。
若是Chrome浏览器支持的最大中文字符只有8182/9=909个。

解题方向

通过POST方式提交"content"数据内容,查看服务端返回的结果。

分析

使用burpsuit点击静夜思,抓到包后右键change request method forword发送返回得出

步骤

在这里插入图片描述
报错,查看数据包,发现浏览器通过GET方式传递数据时,数据长度太长
在这里插入图片描述
全选报文右键改变post类型
在这里插入图片描述
成功

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值