SQL注入之Sqli-labs第二关

本次注入sql-labs的第二关

1.进入第二关后,我们可以看到英语 please input the id as parameter with numeric value,请输入ID作为参数和数值。首先我们可以判断出这是一个GET请求作为注入点的题目,那么我们就需要去URL上拼接ID的值,首先把值赋为1来试试。

2.如上图片所示,我们可以看到id为1那么就显示出来了第一个用户的名字与密码,接着我们试着把id的值改为2

可以看到名字与密码的参数都发生了变化,也就是这两个地方的值是要与数据库进行交互的,那么这两个地方也有可能会是我们将来注入时回显内容的地方。

3.接着我们来判断一下这是一个字符型还是一个数字型的注入

我们可以先随便丢一个引号试试,看看有没有提示

现在页面已经给出了错误,可以看到多了一个引号就报错,并且根据提示,我们可以看出这是一个数字型的注入,那么就不需要去考虑闭合的问题了。

4.下面我们要去查看一下页面的列数,可以使用group by这个函数的二分法来进行判断

根据页面提示可以看出列数为3

5.构造SQL语句,查看信息会在哪个地方进行回显

我们使用联合查询临时表1,2,3会发现没有显示内容,这是因为现在的值把显示内容的地方占有了,我们需要让页面无法显示正常的内容从而让他去显示我们要查询的内容。

现在我们可以看到Login name与Password这两个地方可以去显示我们要查询的内容,现在开始先查询数据库

数据库为security,下一步就是要去查找这个数据库下面的所有表。MYSQL数据库的所有表的信息都存储在了information_schema数据库里面的tables这个表里(information_schema.tables中两列table_schema是数据库名,table_name中表名。)

由此可以构造SQL语句:

http://sqli-labs:8088/Less-2?id=-2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'

group_concat(table_name)就是把多行的table_name在一行里面显示

from information_schema.tables即table_name的内容在这个数据库里的tables表里查询,并且有个条件是table_name这个表所属的数据库是security

查询出security数据库里的所有表如上图

6.一般账号与密码都会存储在users这个表里面,所以我们要去查看users这个表里面的值,为了需要准确的得出账号与密码,可以先对里面的字段进行查询(information_schema.columns表中三列table_schema是数据库名,
table_name中表名,column_name是列名。)

构造SQL语句

http://sqli-labs:8088/Less-2?id=-2 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'

很显然,账号密码存储在sercurity数据库里面的users表里面的username与password字段里面,现在对账号与密码进行查询

构造SQL语句

http://sqli-labs:8088/Less-2?id=-2 union select 1,2,group_concat(username,'-',password) from security.users

大功告成,最终拿下了所有的账号与密码。

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

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

相关文章

MMdetection3.x个人笔记

1.在自定义数据集用训练出的权重进行可视化推理 input(jpg文件) model_config 这两个可以不用加前面的形参 然后用 \ 隔开 写上 --weight xx.pth python demo/image_demo.py data/coco_duck/train2017/10640.jpg work_dirs/solov2_r50_fpn_1x_coco/solov2_r50_fpn_1x_coco…

嵌入式发展历史

MPU、MCU、SoC、Application Processors 在一个电子系统中,处理器占据最重要的位置,被称为中央处理器单元(CPU:Central Processing Unit)。它从IO设备读取数据,处理,然后输出。 CPU的发展历史…

IntelliJ IDEA Services工具栏运行不显示端口问题解决

问题 如Spring Boot服务启动时,端口不显示。 解决 1、 清理所有缓存 2、 关闭IntelliJ IDEA后,到C:\Users\(你自己的用户名)\AppData\Local\Temp路径把所有文件都删除,因为时一个缓存,不影响其他软件…

网络爬虫的实战项目:使用JavaScript和Axios爬取Reddit视频并进行数据分析

概述 网络爬虫是一种程序或脚本,用于自动从网页中提取数据。网络爬虫的应用场景非常广泛,例如搜索引擎、数据挖掘、舆情分析等。本文将介绍如何使用JavaScript和Axios这两个工具,实现一个网络爬虫的实战项目,即从Reddit这个社交媒…

SAP-MM-定义计量单位组

业务场景: 有些物料的计量单位是相同的,为了快速维护物料的计量单位的转换关系,可以创建计量单位组,输入转换关系时,输入组就可以直接转换,不需要单个维护 SPRO-后勤常规-物料主数据-设置关键字段-定义计…

MySQL数据库入门到大牛_02_MySQL环境搭建、演示使用、图形化管理工具、一二章练习

文章目录 1. MySQL的卸载步骤1:停止MySQL服务步骤2:软件的卸载步骤3:残余文件的清理步骤4:清理注册表(选做)步骤5:删除环境变量配置 2. MySQL的下载、安装、配置2.1 MySQL的4大版本2.2 软件的下…

性能优化之懒加载 - 基于观察者模式和单例模式的实现

一、引入 在前端性能优化中,关于图片/视频等内容的懒加载一直都是优化利器。当用户看到对应的视图模块时,才去请求加载对应的图像。 原理也很简单,通过浏览器提供的 IntersectionObserver - Web API 接口参考 | MDN (mozilla.org)&#xff0c…

【漏洞复现】typecho_v1.0-14.10.10_unserialize

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 漏洞利用GetShell 下载链接:https://pan.baidu.com/s/1z0w7ret-uXHMuOZpGYDVlw 提取码:lt7a 首页 漏洞点:/install.php?finish 漏洞利用 …

解决SpringBoot项目端口被占用的问题

问题描述: 在Window环境下,运行SpringBoot 项目时,出现端口被占用的问题: 解决方案: 1. 查看对应端口的进程号 netstat -ano | findstr 80802. 查看对应进程号的信息 tasklist | findstr 477963. 根据进程号 kill 进程…

掌握文件批量改名的技巧:实现跨文件夹文件统一命名及编号的实用方法“

在日常工作中,我们经常需要处理大量的文件,而这些文件的名字可能各不相同,给我们的管理工作带来了很大的不便。为了解决这个问题,今天我们为您推荐一款全新的文件批量改名工具,它可以帮助您在不同文件夹里的文件进行统…

nodejs express uniapp 图书借阅管理系统源码

开发环境及工具: nodejs,mysql5.7,HBuilder X,vscode(webstorm) 技术说明: nodejs express vue elementui uniapp 功能介绍: 用户端: 登录注册 首页显示轮播图&am…

Qt利用VCPKG和CMake和OpenCV和Tesseract实现中英文OCR

文章目录 1. 开发平台2. 下载文件2.1 下载安装 OpenCV 库2.2 下载安装 Tesseract-OCR库2.3 下载训练好的语言包 3. CMakeLists.txt 内容4. Main.cpp4.1 中英文混合OCR 5. 在Qt Creator 中设置 CMake vcpkg5.1 在初始化配置文件里修改5.2 在构建配置里修改 说明:在Q…