在上一章中,我们已经完成了WebGoat的安装,接下来,就可以来搞事情了…
首先,第一部分是对WebGoat的介绍,这里不再多说,我们直接进入实战部分
0xx1 General
本节主要介绍的是HTTP基本知识
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议
HTTP基于TCP/IP协议
HTTP的客户端请求包括请求行,请求头部,空行和请求数据四个部分组成
本节主要目的是了解浏览器和Web程序之间的数据传输
在输入框输入任意字符,之后点击提交,然后一直点击GO,即可通关
China
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: application/x-www-form-urlencoded
Content-Length: 47
Gogoing
URL编码为:
China%0AContent-Length%3A%200%0A%0AHTTP%2F1.1%20200%20OK%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0AContent-Length%3A%2047%0A%3Chtml%3EGogoing%3C%2Fhtml%3E%0A
然后刷新一下网页,第一阶段已经通过
在这个基础上可以改进攻击方式让它更有威胁.在构造的请求中加入Last-modify字段,并设置一个将来的值比如2020年1月1日.意思是服务器告诉浏览器,这个网页最后一次修改是在2020年1月1日.如果浏览器不清除缓存,下一次请求这个页面会加上if-modify-since字段,值是2020年1月1日,也就是说浏览器会问服务器,这个网页在2020年1月1日之后修改过嘛?当然服务器是人的话肯定会对这个问法莫名其妙,怎么会传过来一个未来的值?但是因为是程序,服务器会比对最后一次修改时间和传过来的时间,发现传过来的时间较新,就会回送304即Not Modified,表示这个网页没有被修改过.浏览器接受到了这个响应会从本地缓存读取网页,当然是之前注入的错误网页.如果浏览器不清除缓存,再也别想读取到正确的网页信息了.这就是HTTP的Cache Poisoning(缓存毒化)。
china
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: application/x-www-form-urlencoded
Last-Modified: Mon, 27 Oct 2222 14:50:18 GMT
Content-Length: 47
URL编码:
china%0AContent-Length%3A%200%0A%0AHTTP%2F1.1%20200%20OK%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0ALast-Modified%3A%20Mon%2C%2027%20Oct%202222%2014%3A50%3A18%20GMT%0AContent-Length%3A%2047
欢迎关注微信公众号MS08067安全实验室