首页 > 数据库 >SQL注入其他情况

SQL注入其他情况

时间:2024-11-04 21:31:29浏览次数:2  
标签:文件 secure 读取 priv file SQL 其他 注入

宽字节注入

当某字符的大小为两个字节时,被称为宽字节。

宽字节注入是利用数据库在处理GBK等宽字节编码时的特性,通过特定的输入绕过过滤。

当发现网站对敏感字符进行转义过滤,且数据库使用的是gbk编码

GBK双字节编码:一个汉字用两个字节表示,首字节对应0x81-0xFE,尾字节对应0x40-0xFE(除0x7F),刚好覆盖了转义符号\对应的编码0x5C0xDF0x5c对应汉字“運”,URL编码用%加字符的16进制编码表示字符,于是%df%5c经过GBK解码后变为汉字“運”

base64编码

判断特征:以 %3D 结尾

Base64编码使用64个字符(包括大小写字母A-Z、a-z、数字0-9、加号“+”和斜杠“/”,以及在编码结束时用作填充的等号“=”)来表示二进制数据。

%3DURL解码后为=,且Base64编码的特征为以=结束。

cookie注入

注入点在cookie数据中

使用BurpSuite修改cookie中键值对的value值

User-Agent注入

注入点在USer-Agent

使用BurpSuite修改USer-Agent的值

Referer注入

注入点在referer

Referer: allen' and extractvalue(1,concat(0x5e,database(),0x5e)) and '1
mysql> select 'allen' and '1';
 +-----------------+
 | 'allen' and '1' |
 +-----------------+
 |               0 |
 +-----------------+
 1 row in set, 1 waring (0.00 sec)
 
 mysql> select 'allen' and extractvalue(1,concat(0x5e,database(),0x5e)) and '1';
 ERROR 1105 (HY000): XPATH syntax error: '^security' 

读取文件

利用SQL注入漏洞进行文件读取

load_file(path) #path是文件绝对路径,可以完成文件内容的读取。

前提

  • MySQL的配置文件mysql.inisecure_file_priv配置;

    参数 含义
    secure_file_priv=NULL 限制mysqld不允许导入导出(读写)操作
    secure_file_priv=‘c:/a/’ 限制mysqld的导入导出操作在某个固定目录(c:/a/)下,并且子目录有效
    secure_file_priv= 不对mysqld的导入导出操作做限制
  • 当前用户是否具有文件读写操作权限;

    # root@localhost
     select file_priv from mysql.user where user='root' and host='localhost';
    
  • 知道读取文件的绝对路径。

联合查询&读取文件

  1. 写入的文件路径为物理绝对路径,并且需要使用/来进行目录拼接
  2. 需要使用联合查询注入的页面显示位来完成文件内容读取

读取php脚本文件

  1. 使用联合查询注入的页面显示位来读取php脚本文件
  2. 由于读取的内容是php代码,浏览器认为它是网页源码的一部分而只在源码中显示,前端页面不显示是因为php代码的解析器只在服务器端

读取其他后缀的文本文件

读取文件内容的其他后缀我呢间的效果和直接读取txt文本我呢间一样

报错注入&读取文件

  1. 报错注入也需要用到页面显示位来读取文件内容
  2. 由于报错的信息有长度限制,每次只显示32位字符,所以需要结合substr函数进行截断读取
and updatexml(1,substr(load_file('path'),1,10),3) --+

文件写入

利用SQL注入漏洞进行文件写入

select a,b,c into outfile "path" #a,b,c为写入的内容,path是文件绝对路径

前提

  • MySQL的配置文件mysql.inisecure_file_priv配置;

    参数 含义
    secure_file_priv=NULL 限制mysqld不允许导入导出(读写)操作
    secure_file_priv=‘c:/a/’ 限制mysqld的导入导出操作在某个固定目录(c:/a/)下,并且子目录有效
    secure_file_priv= 不对mysqld的导入导出操作做限制
  • 当前用户是否具有文件读写操作权限;

    # root@localhost
     select file_priv from mysql.user where user='root' and host='localhost';
    
  • 文件写入不能覆盖服务器上已有同名文件。

当前文件所在位置

mysql> select @@datadir;
 +-------------------------+
 | @@datadir               |
 +-------------------------+
 | E:\phpStudy\MySQL\data\ |
 +-------------------------+
 1 row in set (0.00 sec)

联合查询&写入文件

  1. 利用‘’空字符作为占列位。
  2. 所有的列都可以用来放置写入的文件内容,不一定非要页面显示位。

报错注入无法进行写入操作

标签:文件,secure,读取,priv,file,SQL,其他,注入
From: https://www.cnblogs.com/yxrd/p/18526407

相关文章

  • 数据库操作与数据管理——Rust 与 SQLite 的集成
    第六章:数据库操作与数据管理第一节:Rust与SQLite的集成在本节中,我们将深入探讨如何在Rust中使用SQLite数据库,涵盖从基本的CRUD操作到事务处理、数据模型的构建、性能优化以及安全性考虑等方面。SQLite是一个轻量级的关系型数据库,适合嵌入式应用和小型项目。我们将利......
  • Java毕设项目案例实战II基于Java+Spring Boot+Mysql的果蔬作物疾病防治系统的设计与实
    目录一、前言二、技术介绍三、系统实现四、核心代码五、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言随着现代农业的快速发展,果蔬作物的健康生长与高效管理......
  • Java毕设项目案例实战II基于Java+Spring Boot+Mysql的公司资产网站设计与实现(开发文档
    目录一、前言二、技术介绍三、系统实现四、核心代码五、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在当今信息化高速发展的时代,企业资产的高效管理和精确......
  • SQL注入学习笔记
    BUUSQLCOURSE1一道很入门的的SQL手工注入,所用到的知识点也就只有union和group_concat联合注入和输出,带给我的主要收获是解读了题解代码后初步理解了查数据库名->表名->列名—>具体元素的三板斧,和具体查询原理0unionselectdatabase(),group_concat(table_name)frominform......
  • IDEA连接mysql数据库
    再开始之前,我们需要下载mysql的数据库驱动jar包,下载地址如下:http://dev.mysql.com/downloads/connector/j/?os=26打开网址后选择第二个下载,下载后解压即可,解压后打开文件,后缀为.jar的即驱动jar包首先,我们在idea中新建一个project,这里我命名为test,大家还可以把project放到自己......
  • 开源数据库 - mysql - innodb源码阅读 - master线程(一)
    masterstruct/**Themasterthreadcontrollingtheserver.*/voidsrv_master_thread(){DBUG_TRACE;srv_slot_t*slot;//槽位THD*thd=create_internal_thd();//创建内部线程ut_ad(!srv_read_only_mode);//断言srv_read_only_m......
  • 【Python期末/课程设计】高校成绩管理系统(PyCharm项目/flask框架/MySQL数据库)
    代写C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业,长期接单,信誉有保证,如有需要请加推广QQ。本文资源:【Python期末/课程设计】高校成绩管理系统(PyCharm项目/flask框架/MySQL数据库)1.题目要求题目描述:无编程软件:2.视频演示【Python期......
  • 数据库 PostgreSQL 和 MySQL 开源协议的区别
    说到开源数据库,很多人想到了MySQL和PostgreSQL数据库,这是两种比较有名和使用量较多的数据库技术,两者虽然都是开源的,但开源协议是不一样的。PostgreSQL遵循灵活的开源协议BSD,MySQL使用的是GPL(GNUGeneralPublicLicense)协议,二者有以下区别:1.商业使用限制方面-PostgreSQLBS......
  • MySQL8.0安装配置教程【超级详细图解】
    万分感谢.参考文章内容:https://blog.csdn.net/m0_73442728/article/details/131359479万分感谢.参考文章内容:https://blog.csdn.net/qq_40187702/article/details/130618805目录**一、MySQL下载与安装二、MySQL安装三、MySQL连接测试四、配置环境变量一、MySQL下载与安......