首页 > 其他分享 >宽字节注入

宽字节注入

时间:2024-10-16 19:53:15浏览次数:11  
标签:字符 字节 name df hex 转义 user 注入

文章目录

  • 转义函数
  • 宽字节注入
    • 单双引号被过滤

转义函数

  • magic_quotes_gpc()

该函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。

单引号、双引号、反斜线等字符都会被加上反斜线转义,该参数只在低版本的phpstudy可以使用(低于5.4)

  • addslashes()
    该函数的作用与上面函数相同,主要适用于高版本的phpstudy,用于对用户输入的特殊字符做转义处理

宽字节注入

数据库使用GBK编码可能会存在宽字节注入:通过添加字符使得用于转义的\与该字符组合成为一个汉字,使得转义失效

e.g 
%df	#%df和\在一起可以组合成一个新的字符
其他能够和\组合的字符(如果是post传参的话要用bp抓包后将'或"前的字符的hex改成df
  • 爆数据库
?id=1%df' union select database() -- qwe

然后就是sql注入的一般流程,爆表,爆字段,爆数据

单双引号被过滤

1.嵌套查询
2.将字符串改成hex形式
e.g 假如我们查出表名为user,需要到user表中查字段
一般payload: union select column_name from information_schema.columns where table_name='user'
'user'单引号被过滤会导致查询不出来字段,我们可以将user用hex形式表示,user转换成hex为:75736572,需要在前面添加0x以便计算机能够识别
修改后的payload:union select column_name from information_schema.columns where table_name=0x75736572

标签:字符,字节,name,df,hex,转义,user,注入
From: https://blog.csdn.net/weixin_70059007/article/details/142966191

相关文章

  • springboot使用自定义注解将对象注入容器中
    在SpringBoot中,你可以通过自定义注解和Spring的`BeanPostProcessor`来将对象注入到Spring容器中。以下是一个简单的实现步骤:1.**创建自定义注解**:importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.Reten......
  • 山东大学管理学院携手和鲸“101 数智领航计划”,为“经济管理+AI”学科建设注入新动力
    近年来,高校在“四新”理念的指导下,不断加速探索教学资源建设的新路径,以推动高等教育的“质量革命”。山东大学管理学院积极响应这一趋势,全面优化课程建设路径,推动教育模式从“学知识”向“强能力”转变。学院依托其国家级实验教学示范中心——山东大学管理学科实验中心,积极探索基于......
  • laravel 中实现注解注入
    laravel中实现注解注入创建注解类<?phpdeclare(strict_types=1);namespaceApp\Support\Attributes;#[\Attribute(\Attribute::TARGET_PROPERTY)]readonlyclassInjection{publicfunction__construct(public?string$propertyType=null,p......
  • 串口HEX字节流交互协议解析库分享
    通信协议解析库说明一、概述用于上位机串口通讯协议解析,协议格式:AAlentypeiddata校验帧头(1byte)长度(1byte)协议类型(1byte)命令ID(1byte)数据(xbyte)校验和(1byte)AAxxxx异或校验和固定帧头:0xAA校验和:从AA到校验和之前的所有字节进行异或校验......
  • sql手工注入获取库、表名(union联合注入)(个人学习笔记)
    1,发现存在sql漏洞的网站当我们发现一个网站存在sql注入的漏洞时,可以使用sql手工注入来获取信息,如下列的网站sql注入的原理是前端给后端发送指令的时候由于设计者未考虑安全,导致用户可以加上自己的指令进去,从而让服务器完成一些列危险的操作2,确定列表数名首先,我们要先知道......
  • ABP VNext 系列:框架启动流程以及依赖注入原理和源码分析
    简单介绍ABPVNextGithub地址:https://github.com/abpframework/abp官网文档地址:https://abp.io/docs/latest官网:https://abp.io/ABPVNext框架是一个基于ASP.NETCore的完整基础架构,也就是我们现在称的ABP框架,它遵循软件开发最佳实践和最新技术来创建现代Web应用程......
  • EF Core 中避免 SQL 注入的三种写法
    SQL注入攻击可能会对我们的应用程序产生严重影响,导致敏感数据泄露、未经授权的访问和应用程序受损。EFCore提供了三种内置机制来防止SQL注入攻击。1、利用LINQ查询语法和参数化查询,这是比较推荐的做法。awaitusingvarcontext=newPostgresContext();varauthor=......
  • [Spring] 深入理解: Spring @Value 解析、注入时机及原理
    内容摘要:@Value的使用及它是什么时候解析的并且解析后是如何注入值的?1@Value的使用简述@Value注解可用来将外部的值动态注入到Bean中,在@Value注解中,可以使${}与#{},它们的区别如下:(1)@Value("${}"):可以获取对应属性文件中定义的属性值。(2)@Value("#{}"):表示Sp......
  • SQL注入基础速通
    <aside>......
  • 字节与字符
    字节(Byte)和字符(Character)是计算机科学中两个基本概念,它们之间有着重要的区别:字节(Byte)定义:字节是计算机存储和处理数据的基本单位,通常由8位二进制数字(比特)组成。用途:用于存储数据,如文件、图像、音频等。在内存中,字节用于表示不同类型的数据(整型、浮点型等)。范围:一个字......