【SQL注入-02】SQL注入点的简单判断

2023-11-01

1 实验环境

实验靶场——虚拟机(IP为172.16.1.1):本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,网站的搭建过程可以参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例

注入工具——真实机:本实验利用火狐浏览器来实现union注入,为方便注入过程的编码,建议安装一个扩展插件harkbar,安装过程参考《HackBar免费版安装方法》由于该教程中的2.1.3harkbar我安装后无法正常使用,就安装了HackBar Quantum来代替。安装后出现下图左侧的东西。
在这里插入图片描述

2 准备工作

利用御剑后台扫描珍藏版扫描网站后台。
(1)下载御剑后台扫描珍藏版,并打开御剑后台扫描工具。
在这里插入图片描述
(2)按照如下要求填写。
在这里插入图片描述
(3)扫描完成后,如下所示。采用御剑进行扫描时,也是遵循爆破的原理,御剑有自己的字典。
在这里插入图片描述

3 判断是否存在SQL注入点及注入的类型

在该阶段主要是尝试不同的输入参数,根据网页反馈信息来判断是否存在SQL注入点以及注入类型,如是否是字符型还是数值型,是否有布尔状态,是否存在延迟注入等。首先用浏览器访问我们的留言论坛,并点击第一条留言进入测试界面。然后进行如下四步测试。
在这里插入图片描述
在这里插入图片描述
(1)将参数修改为?id=5,并刷新,看到页面变化如下,弹出第5条留言内容,由此可推测见后台是根据id参数的不同来反馈不同信息,因此推测留言内容极有可能是存在数据库中,可控参数id与数据库存在交互,很可能存在sql注入。
在这里插入图片描述
(2)判断注入类型为字符型还是数字型。将参数修改为?id=5'id=5"并刷新,看到页面变化如下。
在这里插入图片描述

  • 如果出现上述这种报错信息,错误发生在单引号附近,说明此注入点可能为数字型注入。具体分析如下:
    猜测原sql语句可能为:select * from table where id=$id。假如id为数字型,则sql语句为select * from table where id=5,当输入?id=5‘,时,sql语句变为select * from table where id=5',说明单引号之前都是正确的,说明单引号是多余的。
  • 如果出现类似下述这种报错信息,错误发生在数字附近,说明此注入点可能为字符型注入。具体分析如下:
    猜测原sql语句可能为:select * from table where id=$id。假如id为字符型,则sql语句为select * from table where id='5',当输入?id=5‘,时,sql语句变为select * from table where id='5'',显示出了数字,是字符型注入。
    在这里插入图片描述

(3) 测试页面是否有布尔类型的状态。修改参数为①?id=5 and 1=1;②?id=5 and 1=2。这两者页面回显不一样,说明可能有布尔类型的状态。

  • 当参数为?id=5 and 1=1;返回页面与原页面一致 。通过该参数我们可以分析得到该注入数据类型为数值型,原因如下:
    ①猜测为数值型,则后台SQL语句为 select * from table where id=5 and 1=1,where语句判断条件为真且id=5,语句正常执行。
    ②猜测为字符型,则后台SQL语句为 select * from table where id=‘5 and 1=1’,where语句将找不到id为‘5 and 1=1’的参数,语句执行失败。
    在这里插入图片描述
  • 当参数为 ?id=5 and 1=2,由于 and 1=2 为假 ,也就是查询条件[where id=5 and 1=2] 恒假,这样的sql语句在数据库中执行后,没有返回结果,如下图所示。也就是说是否能正常回显内容与语句的真假性有关。
    在这里插入图片描述

(4) 判断参数是否存在延迟注入。按F12打开调试面板,修改参数为?id=5 and sleep(5),并刷新。可以看到sleep语句对网页的响应起到作用,也就是意味着存在延迟注入的可能。
在这里插入图片描述

4 结论:

(1)因为id参数是用户可控的,会随请求带入到数据库中执行并回显相应内容,可能是一个注入点。
(2)第一步当id变化时,页面回显响应变化,首先考虑联合注入
(3)第二步,加单引号或双引号,当有报错时,可考虑报错注入;
(4)当第二步没变化,进行第三步,当页面有布尔类型的状态,可考虑布尔盲注;
(5)若都不行,进行第四步,考虑延时注入。
(6)从联合注入到盲注以及延迟注入,其时间人力成本逐步增大,尽可能选择低成本方式进行注入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【SQL注入-02】SQL注入点的简单判断 的相关文章

  • 工业设备自动化平台的一些杂想

    今天是愚人节 浦西开始正式封闭 所有人都被关在家里足不出户 等待着不知道何时开始的核酸检测 一时间也不知道能做些啥 闲的发慌 总得找点事情做做 翻了会CLR的书 又背了会单词 总感觉心不静 回想起之前被人问过的工业设备自动化平台的问题 突然
  • 非递归实现二叉树遍历(附c++完整代码)

    先序 中序和后序遍历过程 遍历过程中经过结点的路线一样 只是访问各结点的时机不同 从图中可以看到 前序遍历在第一次遇见元素时输出 中序遍历在第二次遇见元素时输出 后序遍历在第三次遇见元素时输出 非递归算法实现的基本思路 使用堆栈 一 前序遍
  • 【Android Studio】android.database.sqlite.SQLiteException: no such table: XXX (code 1 SQLITE_ERROR)

    问题描述 android database sqlite SQLiteException no such table XXX code 1 SQLITE ERROR while compling select from xxxx 参考了各种
  • 字符替换C++

    题目描述 把一个字符串中特定的字符全部用给定的字符替换 得到一个新的字符串 输入 只有一行 由一个字符串和两个字符组成 中间用单个空格隔开 字符串是待替换的字符串 字符串长度小于等于1000个字符 且不含空格等空白符 接下来一个字符为需要被
  • FileReader读取文件

    前言 FileReader是一种异步文件读取机制 结合input file可以很方便的读取本地文件 input file 在介绍FileReader之前 先简单介绍input的file类型
  • doxygen教程-6-把注释放在其他位置

    文章目录 把注释放到成员之后 注释在头文件和源文件的分布 Structural commands 把注释放到 几乎 任意位置 只有先注释高层级的结构 才会显示低层级的注释 把注释放到成员之后 这里出现了新词 成员 member 在官方手册里
  • ubuntu18.04更新clang的版本

    可选 添加bionic相关的源 1 备份 etc apt sources list 2 添加源到sources list文件最后 sudo vim etc apt sources list deb http archive ubuntu c
  • 模型结构可视化神器——Netron(支持tf, caffe, keras,mxnet等多种框架)

    转自 https blog csdn net leviopku article details 81980249 很多时候 复现人家工程的时候 需要了解人家的网络结构 但不同框架之间可视化网络层方法不一样 这样给研究人员造成了很大的困扰 前
  • 【华为OD机试真题2023 JS】几何平均值最大子数组

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 几何平均值最大子数组 知识点数组二分查找 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大
  • Kubernetes1.91(K8s)安装部署过程(四)--Master节点安装

    再次明确下架构 三台虚拟机 centos 7 4系统 docker为17版本 ip为10 10 90 105到107 其中105位master 接下来的master相关组件安装到此机器上 etcd集群为3台 分别复用这3台虚拟机 作为k8s
  • Docker安装(使用阿里云镜像)

    Docker安装 使用阿里云镜像 Docker从1 13版本之后采用时间线的方式作为版本号 分为社区版CE和企业版EE 社区版是免费提供给个人开发者和小型团体使用的 企业版会提供额外的收费服务 比如经过官方测试认证过的基础设施 容器 插件等
  • webp图片在html上显示,WebP 格式图片在实际项目中的使用方式

    一 前言 关于 WebP 的支持情况 以及适用场景此处不做详细说明 具体见官方文档 先说结论 目前 WebP 支持情况占比较大 数据如下 在适合的场景下可以使用 WebP 格式图片来提高页面加载速度 支持的浏览器占比达到近90 数据来源 C
  • word 安装

    亲测可用 记录一下 安装word步骤 office tool plus 概述 安装激活 1 下载安装 2 解压 3 移除 4 安装部署 5 激活 总结 概述 Office Tool Plus 是一个强大的 Office 部署工具 可以很方便

随机推荐

  • CentOS7安装Docker&配置阿里云镜像仓库

    安装Docker 1 安装yum utils包 yum install y yum utils 2 设置yum源为阿里云 提升下载速度 yum config manager add repo http mirrors aliyun com
  • Unity3D碰撞检测和OnTriggerEnter用法

    在目前掌握的情况分析 在Unity中参与碰撞的物体分2大块 1 发起碰撞的物体 2 接收碰撞的物体 1 发起碰撞物体有 Rigodbody CharacterController 2 接收碰撞物体由 所有的Collider 工作的原理为 发
  • 机器学习笔记 - 使用 ResNet-50 和余弦相似度的基于图像的推荐系统

    一 简述 这里的代码主要是基于图像的推荐系统 该系统利用 ResNet 50 深度学习模型作为特征提取器 并采用余弦相似度来查找给定输入图像的最相似嵌入 该系统旨在根据所提供图像的视觉内容为用户提供个性化推荐 二 所需环境 Python 3
  • 【论文不精读】Reinforced Path Reasoning for Counterfactual Explainable Recommendation

    Reinforced Path Reasoning for Counterfactual Explainable Recommendation 1 Introduction 现代推荐系统在对复杂的用户或者商品上下文进行建模时变得十分复杂并且
  • 【C++】---继承

    文章目录 继承的概念与定义 继承的定义格式 父类和子类的对象赋值转换 继承中的作用域 子类的默认成员函数 菱形继承 虚拟继承 总结 继承的概念与定义 继承是面向对象编程三大特性之一 是一种可以使代码复用最重要的手段 在原有类特性的基础上进行
  • TPS-1教学:TPS-1 PROFINET Demo Board概述视频

    TPS 1教学 TPS 1 PROFINET Demo Board概述 电子发烧友网 elecfans com
  • 用matlab进行模糊识别

    例1 设论域U x1 x2 x3 x4 x5 上的三个模糊模式分别为A 0 7 0 5 0 2 0 4 B 0 8 0 3 0 4 0 2 C 0 6 0 4 0 5 0 3 试判别A和B中 哪个和C最贴近 解 按照 格贴近度 有如下计算
  • C++堆内存分配

    C 堆内存分配 C堆内存分配 抽象与分层 如何扩展有效堆内存 brk和sbrk系统调用 如何维护有效堆内存 operator new 抽象与分层 c和c 的内存服务模型与计算机网络里面的协议分层模型有点类似 计算机网络协议大体分为 层 应用
  • 第二课if语句的练习

    知识点 if判断语句 题目1 训练 李雷想买一个价值7988元的新手机 她的旧手机在二手市场能卖1500元 而手机专卖店推出以旧换新的优惠 把她的旧手机交给店家 新手机就能够打8折优惠 为了更省钱 李雷要不要以旧换新 请在控制台输出 训练提
  • 手把手教你用Keras进行多标签分类(附代码)

    作者 Adrian Rosebrock 翻译 程思衍 校对 付宇帅 本文约7000字 建议阅读10 分钟 本文将通过拆解SmallVGGNet的架构及代码实例来讲解如何运用Keras进行多标签分类 本文的灵感来源于我收到的一封来自PyIma
  • 「Kubernetes」- 使用 Fluentd 收集日志 @20210128

    服务搭建流程概览 1 确定需要收集的日志及位置 2 搭建日志收集服务 Elasticsearch Kibana Fluentd 3 验证日志收集成功 能够查看 集群环境概述 操作系统 CentOS Linux release 7 4 170
  • 3d wallpaper android,3D Parallax Wallpaper

    Increase your home screen liveliness with 3D Parallax Wallpaper StoreThis app is not the usual 3D Live wallpaper but it
  • FreeRTOS-内核控制函数

    FreeRTOS 内核控制函数 FreeRTOS中有一些内核函数 一般来说这些内核函数在应用层不会使用 但是内核控制函数是理解FreeRTOS中断的基础 接下来我们逐一分析这些内核函数 taskYIELD 该函数的作用是进行任务切换 这是一
  • ubuntu防火墙命令介绍

    ubuntu在开启ufw防火墙前 为了避免与iptables现有规则冲突 建议先清空iptables的所有规则 相关命令如下 iptables F 更改iptables规则链默认操作命令如下 iptables P INPUT ACCEPT
  • Eclipse出现Widget is disposed错误

    在Eclipse中切换正常磨损和Debug模式的时候出现了这种问题 可以通过关闭toggle breakcrumb 来屏蔽这种错误 如图所示
  • 单片机串行口

    http www cnblogs com xianghang123 archive 2011 03 22 1991093 html 单片机串行口 MCS 51单片机的串行口具有两条独立的数据线 发送端TXD和接收端RXD 它允许数据同时往两
  • STM32从标准库转到HAL遇到的问题(持续更新)

    一 GPIO配置 1 写入高低电平报错use of undeclared identifier 以下代码在define过程中不报错 define A HAL GPIO WritePin GPIOA GPIO Pin 7 GPIO PIN R
  • web前端向java后端传递model的几种方法

    1 通过fastjson传值 前端代码 post test modelStr JSON stringify data collection collection function ret do something 后端代码 RequestM
  • yolov3为什么对大目标检测不好_基于改进YOLOv3的交通场景小目标检测方法与流程...

    本发明提出一种基于改进yolov3的交通场景小目标检测方法 解决yolov3网络过深问题 提高对小目标检测的精确度和速度 一定程度上避免训练神经网络出现的过拟合现象 属于智能交通领域 背景技术 在交通目标识别应用中 小目标的识别与跟踪是研究
  • 【SQL注入-02】SQL注入点的简单判断

    目录 1 实验环境 2 准备工作 3 判断是否存在SQL注入点及注入的类型 4 结论 1 实验环境 实验靶场 虚拟机 IP为172 16 1 1 本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站 win2008及p