http header 注入

在开始讲http-header之前,我觉得有必要去简单地了解http-header

http即超文本传输协议,为目前网页传输的通用协议。http采用了请求/相应模型。浏览器或者其他客户端发出请求,服务器给予响应,就整个网络资源传输而言,包括了massage-header和massage-body两部分,首先传输的是message-header,即http-header消息,http-header消息主要分成四个部分:general header ,request header ,response header,entity header.但其实这反而不易理解,根据维基百科,http-header分为request-header和response-header,而request和response底下还会细分。详细的在这里不便展开,想要了解的可以自行百度。

上面介绍了http大概的含义,那到底什么是http-header注入呢?在这里插入图片描述
有图中介绍可知,http-header注入漏洞正是由于后台把超文本传输头中的一些信息拿去拼接到sql语句中又不做安全处理造成的。

接下来,还是在渗透练习平台上给大家做演示。
打开登陆页面并输入用户名和密码在这里插入图片描述
登陆后页面在这里插入图片描述
那么是否后台获取了上图中http头中的信息后被放到了sql语句中进行了相关的操作呢,在这里完全可以去尝试性地去测试一下,一般,类似于上图中这样获取了浏览器或客户端http的地方,都有可能存在http注入漏洞。

打开burpsuit查看抓到的请求数据包在这里插入图片描述
然后把抓到的请求数据包send to repeater进行重放在这里插入图片描述
因为刚刚认为数据库是对http头中的信息进行了获取并拼接,在这里主要就用user agent这个字段来进行测试在这里插入图片描述
不妨把这整个字段删除掉输入别的字符看后台是否报错,如果后台确实是获取http header中的信息进行语句拼接,那么获取到错误的信息自然会报错在这里插入图片描述
输入一个引号在这里插入图片描述
提交后看结果在这里插入图片描述
可以看见确实有错误提示,那么证明后台确实把相关信息拼接的sql语句中去执行了,这也就形成了注入漏洞。

构造payload,后台数据库采用的是insert语句将获取到的信息拼接到sql查询语句当中的,根据之前博客中提到的相关注入语句知识,构造insert注入.在这里插入图片描述
接着查看结果在这里插入图片描述
可以看见报错获取信息成功。

cookie漏洞
在这里插入图片描述
在这里插入图片描述
可以看见有相应的语法报错
在这里插入图片描述
还是用同样的payload来测试,提交在这里插入图片描述
报错返回查看想要的信息在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44720762/article/details/89291602