Sqli-labs
1.搭建【前提是已经下载安装好phpstudy_pro】
1.1源码准备
1.1.1源码下载
这里从github下载
https://codeload.github.com/Audi-1/sqli-labs/zip/master
https://codeload.github.com/Audi-1/sqli-labs/zip/master
1.1.2下载的靶场源码放到WWW下
将刚才下载的压缩包解压到小皮的文件夹的WWW下

1.1.3修改配置信息
在刚才解压的文件夹中寻找sql-connections
然后用记事本打开其中的db-creds.inc
然后修改密码为root
1.1.4打开小皮,启动套件

1.1.5创建网站
小皮中点击网站,选择创建网站,
然后开始配置网站,这里的根目录要选择到刚才我们下载的源码的解压后的文件夹,到期日期选择长一点
1.1.6访问网站首页
直接从小皮访问网站
打开后得到这个页面
1.1.7数据库初始化
点击刚才的页面的Setup/reset Database for labs
如此就是安装好了
1.1.8进入关卡,开始打靶场进行练习

2.sql练习
2.1 less-1
进入后可以看到这个页面
提示中可以知道需要我们输入id作为带数值的参数,通过修改url来传递参数
参数说明:
?表示传递参数,通常都是在页面后会有 ?id=数值,这样的方式传递参数给服务器,然后给我们返 回参 数对应的页面信息,我们发现我们是在/后面直接使用?传递参数,此时参数会传递给默认页面。


多次改变我们的id的数值后,发现输入的数值不同,返回的内容也不同,那就意味着我们所输入的内容是带入到数据库进行查询然后返回的
然后我们尝试加个单引号来看看错误信息
闭合
一般的代码:
$id=$_GET[‘id’];
$sql=“SELECT * FROM name WHERE id=’$id’ LIMIT 0,1”;
我们可以看到,用户输入的id是被带到sql语句中进行拼接,然后执行的,而且,这个id两边是被’ ‘(两个单引号)给闭合起来的,所以在这个代码里’(单引号)就是闭合符。
MYSQL数据库的包容性比较强,如果你输错了数据的类型,MYSQL数据库会自动将其转换成正确的数据类型,比如输入1)、1"、1-等,只要数字后面的字符不是闭合符的,数据库都会把你输入的错误的数据转换成正确的数据类型。
但是,若输入的数字后面的字符恰好是闭合符,则会形成闭合,若闭合后形成的sql语句是错误的,那么sql语句执行就会错误,从而造成页面显示错误。 比如上方的那个一般代码中变量id是用‘’(单引号)引起来的,这里形成了一个闭合符,当我们传入参数id=1’就会导致第一个单引号与第二个单引号形成闭合,然后就多余了第三个单引号,此时就会报错
如何判断闭合符是什么呢
我们可以在传入参数时,只传入一个\(转义字符)
原理,当闭合字符遇到转义字符时,会被转义,那么没有闭合符的语句就不完整了,就会报错,通过报错信息我们就可以推断出闭合符。
分析报错信息:看\斜杠后面跟着的字符,是什么字符,它的闭合字符就是什么,若是没有,就为数字型。
比如在这一关中
这里可以看到有一对单引号,那么闭合符就是单引号,且为字符型的sql注入【sql注入分为数字类型和字符类型】
扩展:LIMIT 用法
LIMIT 是 MySQL 内置函数,其作用是用于限制查询结果的条数。 其语法格式:
LIMIT [位置偏移量, 行数]
一句话概括: 位置偏移量可以理解为跳过前 N 条记录,或从第 N 条记录开始,往后显示 N 条记 录。
select * 返回所有记录。
limit n 返回n条记录。
limit m,n 从m条记录开始返回n条记录。
补充: 使用order by判断表中字段数
ORDER BY 关键词用于对记录集中的数据进行排序。
用法 1:按某个字段进行排序:
语法:select 字段 1,字段 2 from 表名 order by 字段名;
用法 2:按第几个字段进行排序,如果超过查询的字段数,就报错 语法:select 字段 1,字段 2 from 表名 order by 数字;
例:order by 用于 MySQL 查询排序(升序)
order by 后跟上字段名时,是用于做排序,默认是升序。如果字段名后跟上 desc 则做降序。 如:
MariaDB [security]> select username from users order by id desc;
用法 3:按第几个字段进行排序,如果超过查询的字段数,就报错
语法:select 字段 1,字段 2 from 表名 order by 数字;
这里我们点击f12,打开hackbar开始查找字段数

解释一下这里所传入url的
?id=1正常传入参数
'(单引号)是单引号闭合id参数
order by 4 是判断是否存在4个字段数
--+在sql语言中是注释的作用,也就相当于python语言中的# [sql的注释符号是--] [这里的+,加号被url编码后相当于空格,而数据库会要求注释符后面有一个空格才会生效执行]
由于这里报错,提示“找不到第四个字段”,那么4超出了列表数,我们再试试3
可以查到列表,说明这里表格有3列
确定回显位。就是看表格里哪一列是显示在页面中的。这里就是显示第二列(name)和第三列(password)
获取当前数据名和版本号,这个就涉及mysql数据库的一些函数,记得就行。通过结果知道当前数据看是security,版本是5.7.26。
然后进行爆表

/?id=-1'union select 1,2,group_concat(table_name)from information_schema.tables where table_schema='security'--+
information_schema.tables表示该数据库下的tables表,点表示下一级。where后面是条件,group_concat()是将查询到结果连接起来。如果不用group_concat查询到的只有user。该语句的意思是查询information_schema数据库下的tables表里面且table_schema字段内容是security的所有table_name的内容
相关文章:
Sqli-labs
1.搭建【前提是已经下载安装好phpstudy_pro】 1.1源码准备 1.1.1源码下载 这里从github下载 https://codeload.github.com/Audi-1/sqli-labs/zip/masterhttps://codeload.github.com/Audi-1/sqli-labs/zip/master 1.1.2下载的靶场源码放到WWW下 将刚才下载的压缩包解压到…...
unreal engine gameplay abiliity 获取ability的cooldown剩余时间
unreal engine gameplay abiliity 获取ability的cooldown 版本 5.4.4 参考 测试代码 if (HasAuthority() && AbilitySystemComponent){TArray<FGameplayAbilitySpecHandle> OutAbilityHandles;AbilitySystemComponent->GetAllAbilities(OutAbilityHandles…...
【GenBI优化】提升text2sql准确率:建议使用推理大模型,增加重试
引言 Text-to-SQL(文本转 SQL)是自然语言处理(NLP)领域的一项重要任务,旨在将自然语言问题自动转换为可在数据库上执行的 SQL 查询语句。这项技术在智能助手、数据分析工具、商业智能(BI)平台等领域具有广泛的应用前景,能够极大地降低数据查询和分析的门槛,让非技术用…...
【六祎 - Note】SQL备忘录;DDL,DML,DQL,DCL
SQL备忘录 from to : 点击访问源地址...
高频 SQL 50 题(基础版)_1341. 电影评分
高频 SQL 50 题(基础版)_1341. 电影评分 思路 思路 (select Users.name results from Users left join MovieRating on Users.user_id MovieRating.user_id group by(Users.name) order by count(MovieRating.movie_id) desc,Users.name asc limit 1) u…...
JavaScript 变量命名规范
在编写JavaScript代码时,选择合适的变量名对于代码的清晰度、可读性和可维护性至关重要。一个良好的变量命名规范不仅能帮助团队成员更好地理解代码意图,还能减少错误发生的可能性。本文将介绍一些广泛接受的JavaScript变量命名规则和最佳实践。 命名的…...
解决 uView-UI和uv-ui 中 u-tabs 组件在微信小程序中出现横向滚动条的问题
问题描述 在微信小程序中使用 uView-UI 的 u-tabs 组件时,用户可能会遇到横向滚动条的问题。这不仅影响了页面的美观,还可能导致用户误操作。 问题原因 该问题的根本原因是未在微信小程序环境下屏蔽滚动条。uView-UI 的 u-tabs 组件默认只在 H5 环境下…...
20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开
sync poweroff rootok3588:/# sync rootok3588:/# sync rootok3588:/# cd 107 rootok3588:/107# ls -l total 0 rootok3588:/107# sync rootok3588:/107# poweroff 20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开 2025/3/4 10:58 缘起:…...
build gcc
1,下载源码 wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2 wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz git clone --mirror https://github…...
【每日论文】How far can we go with ImageNet for Text-to-Image generation?
下载PDF或查看论文,请点击:LlamaFactory - huggingface daily paper - 每日论文解读 | LlamaFactory | LlamaFactory 摘要 近年来,通过在大规模数据集上训练,文本到图像(T2I)生成模型已经取得了显著成果&a…...
STM32 两个单片机之间的通信
STM32 两个单片机之间的通信 原创 HS 平凡灵感码头 2025年03月04日 11:25 广东 以上我们就是有A B两个板子来进行通信,A板将接收按键的键值,然后发送给B板,B板接收键值,然后判断键值控制LED翻转,然后把键值按字符形式…...
Linux 下使用traceroute来进行网络诊断分析
简介 traceroute 命令是一种网络诊断工具,用于跟踪数据包从系统到目标服务器的路径。它有助于识别网络延迟和路由问题。 安装 Debian/Ubuntu sudo apt install traceroute -yRHEL/CentOS sudo yum install traceroute -yFedora sudo dnf install traceroute -…...
基于vue框架的游戏商城系统cq070(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
系统程序文件列表 项目功能:用户,分类,商品信息,游戏高手,游戏代练 开题报告内容 基于Vue框架的游戏商城系统开题报告 一、研究背景与意义 随着互联网技术的飞速发展和游戏产业的蓬勃兴起,游戏商城作为游戏产业链中的重要一环,迎来了前所…...
SpringBoot接入DeepSeek(硅基流动版)+ 前端页面调试(WebSocket连接模式)
文章目录 前言正文一、项目环境二、项目代码2.1 pom.xml2.2 DeepSeekController.java2.3 启动类2.4 logback-spring.xml2.5 application.yaml2.6 WebsocketConfig.java2.7 AiChatWebSocketHandler.java2.8 SaveChatSessionParamRequest.java2.9 index.html 三、页面调试3.1 主页…...
idea实现热部署
1.在pom.xml文件添加依赖 java <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency> 更新可见配置成功: 2.在appli…...
记一次误禁用USB导致键盘鼠标失灵的修复过程
背景说明 在电脑上插入了一个USB hub,然后弹窗提示:“集线器端口上出现电涌”,点开让选择“重置”或者“关闭”,不小心点了关闭,结果这个usb口就被关了,再插任何东西都没反应,找了很多办法都恢…...
0x03 http协议和分层架构
HTTP协议 简介 Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议:面向连接,安全基于请求-响应模型:一次请求对应一次响应HTTP协议是无状态的协议ÿ…...
【leetcode hot 100 189】轮转数组
错误解法一:申请一个数组,第i个数放在新数组的ik或ik-nums.length上 class Solution {public void rotate(int[] nums, int k) {int[] resultsnew int[nums.length];for(int i0; i<nums.length; i){if(ik<nums.length){results[ik] nums[i];}els…...
医药行业哪些招聘管理系统有AI功能?
随着医药行业竞争加剧,企业对高端研发、临床、市场人才的需求日益迫切。传统招聘模式因效率低、成本高、匹配度不足等问题,已难以满足行业需求。2025年,以AI为核心的招聘管理系统成为解决痛点的关键工具。 一、医药行业招聘的痛点与AI解决方案…...
.net8 使用 license 证书授权案例解析
创建 webapi 项目 使用 .NET CLI 创建一个 ASP.NET Core Web API 应用,并添加指定的 NuGet 包,可以按照以下步骤操作: 创建 ASP.NET Core Web API 项目: dotnet new webapi -n WebAppLicense cd WebAppLicense添加 Standard.Li…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
