http走私请求随笔
上周两个走私题,昨天周日想写上周两个走私题的writeup,然后再做一遍没做出来,心态爆炸,怀疑人生!!现在写writeup加深印象。
全篇都是个人理解,希望对你有所帮助,如果有错还往指正。
话不多少,入题。走私题方法:1.CL不为0 2.两个CL 3.先TE再CL 4.先CL再TE 5.两个TE 其实就是 前端和后端对请求体的长度有差异造成的,最终导致后端把一个请求当做两个请求,就使得那个走私的请求未经过前端的检测。
这个题12不行,因为我的请求在发送后就必定会有一个Content-Length: (没有CL但有请求体就会自动补一个),说明前端是CL处理,后端是TE。但是我一加上Transfer-Encoding: chunked
,包就发不过去了501,构建完整请求Content-Length: 105
Transfer-Encoding: chunked
453
GET /secret HTTP/1.1
Host: police.liki.link
Client-ip: 127.0.0.1
Content-Length: 73
262
然后我就一直卡在这里卡了很长时间,最后看了writeup,发现第一个位置都是0,把453改为0,可以了。然后第二个题就是把GET改为POST,
就题论题吧,我还是没把http走私请求搞得太明白:chunked的格式,为什么第一个位置都是0,走私请求加CL的理由忘了。对http走私请求印象还是不是很深。