WebGoat-5.4实验笔记(2)

webgoat其他项目的学习笔记在我的博客里有。

General(总体目标)

1、Http Basics(HTTP基础知识)

点击Http Basics,查看页面信息,显示输入信息后,服务器接收请求后会返回用户的输入信息,并回显给用户。我在Enter your Name输入“hello”,点击Go!
在这里插入图片描述

使用burpsuite代理抓取数据包,person数值为“hello”,点击forward,返回数据。
在这里插入图片描述

webgoat界面再次提交,显示完成。
在这里插入图片描述

2、HTTP Splitting(HTTP拆分)

介绍:HTTP拆分攻击是指由于Web应用程序缺乏有效的输入验证,允许攻击者将CR和LF字符插入到应用程序响应的报头,从而将服务器的回应拆分成两个不同的HTTP消息的攻击手段。攻击者通过发送经过精心构造的HTTP请求,试图完全控制第二个响应来实现攻击。

在页面中输入kong并提交(已开启burpsuite抓包)
在这里插入图片描述

Bupsuite抓包显示如下
在这里插入图片描述

把language的值后面加上%0d%0a%0d%0a%0d%0a,点击forward返回。
在这里插入图片描述
在这里插入图片描述
注入特殊字符后,HTTP 响应数据包中“Content‐Length: 0”告诉浏览器响应已经结束。

重新开始操作,把language值修改为以下字符串:

foobar%0d%0aContent‐Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent‐Type:%20text/html%0d%0aContent‐Length:%2047%0d%0a%0d%0a<html> Hacked J </html>

在这里插入图片描述
这段字符串的HTTP请求的URL编码为
在这里插入图片描述

第一次响应:
在这里插入图片描述

第二次请求:
在这里插入图片描述

第二次响应:
在这里插入图片描述

点击forward之后,浏览器显示如下,表示步骤一完成
在这里插入图片描述

接下来重新开始,进行步骤二,把language的值改成下列字符串

kong%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2047%0d%0a%0d%0a<html>Hacked</html>

这段字符串的HTTP请求的URL编码为
在这里插入图片描述
在这里插入图片描述
第一次响应:
在这里插入图片描述
第二次请求:
在这里插入图片描述
第二次响应:
在这里插入图片描述
点击forward,返回数据,浏览器显示如下,表示攻击成功。
在这里插入图片描述

HTTP Splitting攻击的防御方法:
防范HTTP拆分攻击,可以限制用户输入的CR和LF,或者对CR和LF字符正确编码后再输出,以防止注入自定义HTTP头;也可以删除参数中的回车,换行,引号等特殊字符。

猜你喜欢

转载自blog.csdn.net/qq_33336310/article/details/82998404
5.4