网络安全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总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

粒子群优化算法(Particle Swarm Optimization,PSO)求解基于移动边缘计算的任务卸载与资源调度优化(提供MATLAB代码)

一、优化模型介绍 移动边缘计算的任务卸载与资源调度优化原理是通过利用配备计算资源的移动无人机来为本地资源有限的移动用户提供计算卸载机会,以减轻用户设备的计算负担并提高计算性能。具体原理如下: 任务卸载:移动边缘计算系统将用户的计…

网站防护可以采用高防SCDN吗?

随着网络攻击日益复杂和频繁,网站安全已经成为业界的头等大事。在这个背景下,高防SCDN(高防御内容分发网络)作为一种强大的网络保护工具,正逐渐成为各类网站不可或缺的安全设施。很多人会问,网站防护可以采…

项目解决方案:4G/5G看交通数字化视频服务平台技术方案

目 录 1.总体描述 2.系统结构图 3.系统功能 3.1 信息交互 3.2 语音对讲 3.3 实时码流转换 3.4 流媒体集群和扩容 3.5 负载均衡 3.6 流媒体分发 3.7 流媒体点播 4.系统标准 4.1 流媒体传输 4.2 视频格式 4.3 质量标准 5.设备清单 1.总体描述 视频监控平…

【学术论文写作 笔记02】 鲁棒性实验写作的行文逻辑

文章目录 一、声明二、行文思路三、示例范文一范文二 一、声明 自己总结的,有问题望指正! 二、行文思路 为什么要做鲁棒性测试怎么做实验结论对结果的解释 三、示例 PPT 范文一 2022, TIM, “A Robust and Reliable Point Cloud Recognition Netw…

跟着cherno手搓游戏引擎【13】着色器(shader)

创建着色器类&#xff1a; shader.h:初始化、绑定和解绑方法&#xff1a; #pragma once #include <string> namespace YOTO {class Shader {public:Shader(const std::string& vertexSrc, const std::string& fragmentSrc);~Shader();void Bind()const;void Un…

Adobe ColdFusion 任意文件读取漏洞复现(CVE-2023-26361)

0x01 产品简介 Adobe ColdFusion是美国奥多比(Adobe)公司的一套快速应用程序开发平台。该平台包括集成开发环境和脚本语言。 0x02 漏洞概述 Adobe ColdFusion平台 filemanager.cfc接口存在任意文件读取漏洞,攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配…

56. 合并区间 - 力扣(LeetCode)

题目描述 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 题目示例 输入&#xff1a;intervals [[1,3…

专有钉钉开发记录,及问题总结

先放几个专有钉钉开发文档 专有钉钉官网的开发指南 服务端(后端)api文档 前端api文档 前端开发工具下载地址 小程序配置文件下载地址 后端SDK包下载地址 专有钉钉域名是openplatform.dg-work.cn 开发记录 开发专有钉钉时有时会遇到要使用钉钉的api&#xff1b;通过 my 的方…

分布式id-雪花算法

一、雪花算法介绍 Snowflake&#xff0c;雪花算法是有Twitter开源的分布式ID生成算法&#xff0c;以划分命名空间的方式将64bit位分割成了多个部分&#xff0c;每个部分都有具体的不同含义&#xff0c;在Java中64Bit位的整数是Long类型&#xff0c;所以在Java中Snowflake算法生…

台式电脑的ip地址在哪里找

在网络连接方面&#xff0c;IP地址是非常重要的信息&#xff0c;它是用于标识网络设备的唯一地址。对于台式电脑用户来说&#xff0c;了解自己设备的IP地址是非常有必要的&#xff0c;因为它可以帮助解决网络连接问题&#xff0c;进行远程访问和共享文件等功能。本文将指导读者…

spring整合mybatis的底层原理

spring整合mybatis的底层原理 原理&#xff1a; FactoryBean的自定义对象jdk动态代理Mapper接口对象 一、手写一个spring集成mybatis 目录结构&#xff1a; 1.1 入口类 public class Test {public static void main(String[] args) {AnnotationConfigApplicationContext co…

使用一个定时器(timer_fd)管理多个定时事件

使用一个定时器(timer_fd)管理多个定时事件 使用 timerfd_xxx 系列函数可以很方便的与 select、poll、epoll 等IO复用函数相结合&#xff0c;实现基于事件的定时器功能。大体上有两种实现思路&#xff1a; 为每个定时事件创建一个 timer_fd&#xff0c;绑定对应的定时回调函数…

7-205 神奇的循环

通过自己双手写出来的代码真的很有成就感 我们知道&#xff0c;在编程中&#xff0c;我们时常需要考虑到时间复杂度&#xff0c;特别是对于循环的部分。例如&#xff0c; 如果代码中出现 for(i1;i<n;i) OP ; 那么做了n次OP运算&#xff0c;如果代码中出现 for(i1;i<n; i)…

Android音量调节修改

前言 今日公司&#xff0c;安卓设备的音量显示不正常&#xff0c;让我来修复这个bug&#xff0c;现在已修复&#xff0c;做个博客&#xff0c;记录一下&#xff0c;以后碰到类似一下子就好解决。 Android音量调节相关 路径 frameworks\base\services\core\java\com\android…

LeetCode力扣题解(随机每日一题)——买钢笔和铅笔的方案数

题目链接 2240. 买钢笔和铅笔的方案数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个整数 total &#xff0c;表示你拥有的总钱数。同时给你两个整数 cost1 和 cost2 &#xff0c;分别表示一支钢笔和一支铅笔的价格。你可以花费你部分或者全部的钱&#xff0c;…

LandrayOA内存调优 / JAVA内存调优 / Tomcat web.xml 超时时间调优实战

目录 一、背景说明 二、LandrayOA / Tomcat 内存调优 2.1 \win64\tomcat\conf\web.xml 文件调优 2.2 \win64\tomcat\bin\catalina64.bat 文件调优 一、背景说明 随着系统的使用时间越来越长&#xff0c;数据量越多&#xff0c;发现系统的有些功能越来越慢&…

C语言基础:写一个函数,输入一行字符,将此字符串最长的单词输出

方法一&#xff1a; #include<string.h> int find_longest(char line[])//把数组传过来 {int is_alphabetic(char word);int i 0;int length 0;//统计每个字符串的长度int max 0;//比max长就把值赋值给maxint place 0;//最长单词的起始位置int point;//每个字符串第…

机器学习的数据库积累........

https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md ​​​​​​​ 另一个database:&#xff08;网址:Object Detection Made Easy with TensorFlow Hub: Tutorial&#xff09; Object Detection Made Easy with Ten…

Android底部导航栏创建——ViewPager + RadioGroup

Android底部导航栏有多种实现方式&#xff0c;本文详解其中的ViewPager RadioGroup方式的实现步骤。 我们先来看以下看一下最终做出的效果&#xff0c;使大家有个基本概念。 本结构特点&#xff1a; 1&#xff0c;ViewPager部分触摸左右滑动切换页面&#xff0c;RadioGroup部…

XXL-JOB

SpringTask这种任务只能放在单机节点下&#xff0c;就是说一个程序只跑一份的情况下&#xff0c;用SpringTask做定时任务没有什么问题&#xff0c;而且很好用&#xff0c;但是一旦这个程序需要运行多份&#xff0c;定时任务用SpringTask就不行了。多份代码重复执行了。 要解决…