什么是Request Smuggling?
简而言之就是一种模糊的请求,当我们向代理服务器发送http请求时,由于两者服务器的实现方式不同,可能代理服务器认为这是一个http请求,然后将其转发给了后端,但后端服务器经过解析处理后,只认为其中的一部分为正常请求,剩下的那些,就算是走私请求,当该部分对正常用户造成了影响之后,就实现了HTTP走私攻击
在默认情况下,HTTP协议中每个传输层只能承载一个HTTP请求和响应,浏览器收到上一个请求响应后,才能开始下一个请求。
这里简单介绍下Transfer-Encoding这是一个请求包通用头域,前后端往往对于Transfer-Encoding和我们常用的
Content-Length优先级不同容易造成漏洞。
Transfer-Encoding一般被人应用于分块传输绕WAF,但今天我主要想说说另一种攻击手法利用Request Smuggling进行账户劫持
Request Smuggling账户劫持:
如果在我们的恶意请求之后,其他用户也进行了请求,我们可以构造POST请求将获得的数据储存并展示出来用户的请求会带上很多敏感信息如cookie,参数等。
这里我利用靶场进行演示:
https://portswigger.net/web-security/request-smuggling/exploiting/lab-capture-other-users-requests
1.首先我们点击Access the lab进入环境(需要登录)
2.打开个页面进入评论
3.进行抓包通过Transfer-Encoding对抓取的数据包进行拼接,之后下个用户评论时其敏感信息就会出现在评论上
4.将抓取的包进行拼接
成功截取用户的敏感信息
本文作者:hatjwe
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/137462.html