学习目标:

sql-labs 靶场基础练习

学习内容:

sql-labs 靶场1~4关

学习时间:

2021年3月7日~2021年3月13日

学习产出:

前言

说出来满满都是泪呀 /(ㄒoㄒ)/~~
我的靶场一直搭建不好,tmd,PHP study下载好了,并且在db-creds.inc里的用户地址也改为了本地127.0.0.1(localhost) 但是在打开靶场,发现打不开题(知道有多难受么)知道最近才问学长,同学,才发现是自己的PHP study版本太高了,这里就又出现一个问题,哎,我下载了好几个版本,但是他还是一直用的是原先呢个高版本,我裂开,这一个问题又愁了好几天,服了,直到有一天,偶然翻PHPstudy时找到了一个神奇的地方

然后神奇的靶场就能打开了

第一关

首先先判断闭合符号 闭合符号有四种 ‘ “ ’) ”)(就是这闭合符号的判断是最要人命的,为啥有的时候就报错,有的时候就不报错,然后辛辛苦苦查资料,看视频,一直处于模棱两可的状态,知道今天终于让我明白了,哈哈,真的,真正掌握之后,你会很轻松,并且开心的一匹) 咱们从原码跟做题一块分析,这样让咱们好理解

这一句话就是他的原码,注意,这里补充一下,最好用火狐浏览器,里面有hackbar插件,老版火狐最好,因为新版火狐的hackbar插件他不编译+,编译出来就是%27 (懂得都懂)
先输入一个引号,发现报错,报错就对了,要的就是报错!


然后输入–+(注释符号),发现就又成功了

这得通过源码来解释

你输入的一个 ‘ 正好是id 后面的引号,源码就变成了 ’$id’ ’ 因为多了一个 ‘ 所以就会报错,但是当你在后面再输入–+时 源码就变成了
你输入的引号与前面的引号闭合,而–+ 注释掉了后面的 ‘ 就不会再报错
而 LIMIT 0,1 这里面的0 就是你前面需要的id里的第一位,如果是LIMIT 1,1 就是id里的第二位 而LIMIT 0,1 后面的1就是显示1个id,如果是LIMIT 0,2
呢么就是id里的第一个开始排序,排出前两位输出(这里就不展示了,想试试的下去可是试试)
然后就要判断他的列数 order by (order by 4 将列表里的第四列从上到下按二十六个字母顺序排序,如果没有第四列,就会报错,这就是order by 能判断列数的原因)


看! 这里就出现报错了 说明他没有第四列

这里就说明这个字段有三列
然后就开始联合查询注入
先爆出他所有的数据库
因为他有三列
所以后面的1,2,3 两个逗号分开了三个数字,三个数字就表示有三列(如果是四列的话 就要三个逗号分开四个数字了,逗号里的数字可以随便写)
查询它所有的数据库(如果联合查询语句不理解的话,去看看我上面的博客,这里直接开始操作)(用union select语句之前要让id等于一个不存在的值,不然他就只执行id的命令,所以当你的id报错时,后面的联合查询才有效)
group_cancat函数是激将所有的内容列出来

查询库 (select group_concat(schema_name) from information_schema.schemata
接下来就是查询security库里面的所有的表


Select group_concat(table_name) from information_schema.tables where table_schema=’security’ (这里的单引号可能出现编译错误的问题,所以这里可以使用十六进制 变成0xsecurity的十六进制形式)我还没遇到过这种情况,到时候遇见再说
接下来就是查询users的列


Select group_concat(column_name) from information schema.columns where table_name=’users’
我么最终是要爆出他的username和password


Select group_concat(usersname) from security.users
Selecy group concat(password) from security.users

**后面我就只就讲如何查询字符了,因为后面几关就只有判断字符,数值不一样,剩下的都一样

第二关

先看源代码

发现没有 这里的$id 左右没有任何字符,说明他就是另一种注入方式了,数值型注入
做题的话咋判断他是字符型注入还是数值型注入呢 看

注意LIMIT前面的符号,这里我第一个输入的id=1" 第二个我输入的是 id=1’ 有没有发现啥,我自己输入的东西报错了
说明就是数值型注入
还有一种方法就是 输入 id=1 and 1=1 没报错 输入 id=1 and 1=2报错的话 就是数值型植入,看你们自己的习惯吧

第三关

输入一个‘ 发现报错了
注意报错的信息 后面多了一个)看源码

咱们输入 ‘ 后 源码就变成了

咱们刚才输入了一个’ 源码后面就变成了双引号 与最前面的双引号对照了,所以就会编译出错误的) 所以咱么就再输入一个) 让源码变成

让(‘’)构成闭合而–+注释掉后面的‘) 就不会再报错

第四关


输入一个 ‘ 发现没报错,说明没构成闭合,所以说明 ‘ 是错的,然后试试 "

发现出现报错 咱们输入的 " 与最前面的 " 构成了闭合 所以会出现后面的报错信息,还是放源码,这样咱们好理解
、发现了点啥没,同志们
咱们后面的 因为 ") 编译错误了,所以他的闭合符号必是”(“ "),
哎,写了一下午,终于写完了,笔者如果哪里写的不对或者思路有问题,欢迎各位师傅指教

sql-labs超详细教程相关推荐

  1. post修改服务器数据源,postgresql安装及配置超详细教程

    1. 安装 根据业务需求选择版本,官网下载 初始化数据库 执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库: linux 系统用户 postgres:管理数据库的系统用 ...

  2. 大数据平台Ambari2.7.4+HDP3.1.4安装(超详细教程)

    大数据平台Ambari2.7.4+HDP3.1.4安装(超详细教程) Ambari2.7.4+HDP3.1.4是最后一个免费版本,新版本需要授权. 因工作需要,安装大数据集群,了解到Ambari属于A ...

  3. mMySQL中触发器和游标的介绍与使用L8.0.23免安装版配置详细教程 msi安装超详细教程

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 一.下载MySql,安装 ...

  4. mybatis-generator生成带中文注释POJO类的超详细教程含代码和图解

    mybatis-generator生成带中文注释POJO类的超详细教程含代码和图解 mybatis-generator自动生成带中文注释POJO类和增删改查,idea和eclipes都可以使用 MyC ...

  5. 手把手从零开始搭建k8s集群超详细教程

    本教程根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps同步所做笔记教程 k8s集群搭建超详细教程 1. 基本环境搭建 1. 创建私有网络 2. 创建服务 ...

  6. 安装64位Oracle 10g超详细教程

    安装64位Oracle 10g超详细教程 1. 安装准备阶段 1.1 安装Oracle环境 经过上一篇博文的过程,已经完成了对Linux系统的安装,本例使用X-Manager来实现与Linux系统的连 ...

  7. mysql超详细教程_MySQL8.0.23安装超详细教程

    前言 最近在做一个人脸识别的项目,需要用数据库保存学生信息与前段交互. MySQL的优点 1.mysql性能卓越,服务稳定,很少出现异常宕机. 2.mysql开放源代码且无版权制约,自主性及使用成本低 ...

  8. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码

    转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...

  9. 二进制安装部署 4 kubernetes集群---超详细教程

    二进制安装部署kubernetes集群---超详细教程 前言:本篇博客是博主踩过无数坑,反复查阅资料,一步步搭建完成后整理的个人心得,分享给大家~~~ 本文所需的安装包,都上传在我的网盘中,需要的可以 ...

  10. 【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结...

    [超详细教程]使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结 原文 http://www.cnblogs.com/liuxianan/ ...

最新文章

  1. PowerDesigner使用教程 —— 概念数据模型
  2. input 的id 和name什么区别
  3. Java 从业一年的心得体会
  4. 第二篇|腾讯开源项目盘点:ncnn、xLua、libco等
  5. 读《系统虚拟化-原理与实现》-第一章
  6. 移动硬盘提示无法访问使用驱动器中的光盘之前需要格式化,里面的数据怎么恢复...
  7. 快速排序算法_大佬的快速排序算法,果然不一样
  8. 西门子 S7-200和S7-300/400 通过模块连接INTOUCH通讯方法
  9. poedit使用(本地化和国际化)
  10. 图像处理珍藏版本汇总
  11. 计算机无线键盘没反应,电脑连接无线键盘没反应怎么办
  12. 王菲微博“逗贫”语录暴光
  13. android电视直播卡顿,智能电视或电视盒子经常会在看直播的时候卡顿
  14. Unity分屏显示效果
  15. php实现报表拖拉拽,看!这款BI工具用拖拉拽的方式做报表
  16. Android MD5加密法
  17. 全国增值税发票查验平台 | 免验证码
  18. RedHatEnterpriseLinux [RHEL]7.0——操作系统下载地址
  19. <二> objectARX开发:创建和编辑基本图形对象
  20. iOS 多线程使用示例

热门文章

  1. ajax如何传两个不同的参数,ajax 如何从后台传多个data对象(多个参数)string类型的...
  2. java中两个数交换的4种方式
  3. 下列哪项不属于以太网交换机的特点_钢筋混凝土结构的特点及配筋要求考点,每天几分钟,轻松学二建...
  4. java for 变量赋值_Java 如何引用变量赋值?
  5. python中and和的区别_python中逻辑与或(and、or)和按位与或异或(amp;、|、^)区别...
  6. redis常用的数据类型
  7. react 中event 的处理方式
  8. 解决Maven下载慢的问题
  9. 解除webservice上下传文件大小限制
  10. 浅谈EM算法的两个理解角度