首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php字节注入,字节注入详解

很多网上的材料都说程序使用了字节来处理程序,却又不指出具体是指什么程序。本文就介绍一具体漏洞发生的原理与简单的利用。在这里我们限定使用的语言是PHP5.4,数据库MYSQL5.6。...字节 GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的字节,实际上只有两字节字节带来的安全问题主要是吃ASCII字符(一字节)的现象。...同理可得 由上文可得字节注入是由于编码而形成的,那具有编码功能的函数也成了漏洞的成因。...sql=root%e9%8c%a6¶=%20or%201=1%23 总结: 字节注入跟HTML页面编码无关。...编码函数同样会引起字节注入,即使使用了安全的设置函数。

3.5K10

字节注入是什么_sqlmap字节注入

在一个CTF练习的网站,看到了一个字节注入的题目,我是一个web萌新,没什么经验,一开始也没有想到是字节,还是一位朋友给我提到的,让我猛然大悟,咳咳。。。做一些总结。...一、了解一字节注入原理 前提: 1、我们都知道,在防御SQL注入的时候,大多说都是使用的过滤特殊字符,或者使用函数将特殊字符转化为实体,就是说在字符转义,添加‘\’。这里第一条就是有这个机制。...2、设置字节字符集,这里为GBK字符集,GBK字符集占用两个字节。关键就在于这个设置字符集。...我们就以网站的题目测试一: 1、查看网页源码 出现字符集gb2312,这时候就应该想到字节注入 2、报错测试可注入 出现了报错信息,因为构成的语句中会多出一个单引号。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    字节注入(2)

    昨晚折腾了一晚上,把大致的一些东西整理了,为团队纳新选了几首音乐素材..然后团队的一个表弟来问我字节注入的事情了...然后就就才抽空写了一点作为上一篇mysql注入的补充。...用get请求提交~ 这样url编码就会被解码,然后%df和%5c被还原成字节,運。...字节的问题我就不多说了,这边再提了一是因为团队的一个表弟问的… 传送门: 面试中碰到的坑之字节(二) 要补充的是,錦”这个字,它的utf-8编码是0xe98ca6,它的gbk编码是0xe55c。...当我们的錦被iconv从utf-8换成gbk后,变成了%e5%5c,而后面的’被addslashes变成了%5c%27,这样组合起来就是%e5%5c%5c%27,两个%5c就是\\,正好把反斜杠转义了...关于绕过: 一:字符编码问题导致绕过 · 2.1、设置数据库字符为gbk导致字节注入 · 2.2、使用icon,mb_convert_encoding转换字符编码函数导致字节注入 二:编码解码导致的绕过

    74340

    sql–字节注入

    文章源自【字节脉搏社区】-字节脉搏实验室 作者-墨子辰 字节带来的安全问题主要是吃ASCII字符(一字节)的现象。...字节注入是利用msql的一个特性,mysql在使用GBK编码的时候,会认为俩个字符是一个汉字GBK编码,它的编码范围是0×8140~0xFEFE(不包括xx7F),在遇到%df(ascii(223))...通常导致编码转换的注入问题,尤其是使用php连接mysql数据库的时候,一个gbk汉字占两个字节,取值范围是(编码位数):第一个字节是(129-254),第二个字节(64-254)当设置gbk编码后,遇到连续两个字节...gbk 两个字节 gb2312两个字节 utg-8 三个字节 https://the-x.cn/UrlDecode.aspx 在线解码编码(百度就能找到) \' 编码为:%5C%27 ?

    90330

    字节注入原理分析

    什么是字节?...如果一个字符的大小是一个字节的,称为窄字节;如果一个字符的大小是两个字节的,成为字节 像GB2312、GBK、GB18030、BIG5、Shift_JIS等这些编码都是常说的字节,也就是只有两字节...英文默认占一个字节,中文占两个字节 什么是字节注入?...在使用PHP连接MySQL的时候,当设置“character_set_client = gbk”时会导致一个编码转换的问题,也就是我们熟悉的字节注入 字节注入是利用mysql的一个特性,mysql在使用...GBK编码(GBK就是常说的字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范围) GBK首字节对应0×81-0xFE,尾字节对应0×40-0xFE

    1.9K21

    字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:字节编码

    所以我们拿到了一个ANSI字节串的时候,我们还必须知道这个字节串的编码,才能将这个字节串转换成相应国家的字符串。...3.UNICODE编码:字节编码 (一)“字节”的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。...不同编码里,字符和字节的对应关系不同: ①ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。...②UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。 ③Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。...符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

    2.7K60

    字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:字节编码

    所以我们拿到了一个ANSI字节串的时候,我们还必须知道这个字节串的编码,才能将这个字节串转换成相应国家的字符串。...3.UNICODE编码:字节编码 (一)“字节”的定义 字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。...不同编码里,字符和字节的对应关系不同: ①ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。...②UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。 ③Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。...符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。

    3.8K20

    字节注入原理剖析总结

    2内容速览 什么是字节?...如果一个字符的大小是一个字节的,称为窄字节;如果一个字符的大小是两个字节的,成为字节 像GB2312、GBK、GB18030、BIG5、Shift_JIS等这些编码都是常说的字节,也就是只有两字节...英文默认占一个字节,中文占两个字节 什么是字节注入?...在使用PHP连接MySQL的时候,当设置“character_set_client = gbk”时会导致一个编码转换的问题,也就是我们熟悉的字节注入 字节注入是利用mysql的一个特性,mysql在使用...GBK编码(GBK就是常说的字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范围) GBK首字节对应0×81-0xFE,尾字节对应0×40-0xFE

    4.5K10

    关于多字节字节、WideCharToMultiByte和MultiByteToWideChar函数的详解

    字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE. ******************************** 第一个就是字符到多字节字符转换函数,函数原型如下: int...CP_ACP 当前系统ANSI代码页(即多字节),在第二个函数里是字节,或者用0表示 CP_MACCP 当前系统Macintosh代码页 CP_OEMCP 当前系统OEM代码页,一种原始设备制造商硬件扫描码...第三个参数: lpWideCharStr: 待转换的字符串。 第四个参数: cchWideChar: 待转换字符串的长度,-1表示转换到字符串结尾。...***************************************************** 第二个是多字节字符到字符转换函数,函数原型如下: int MultiByteToWideChar...dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar ); 此函数把多字节字符串转换成字符串

    2.2K50

    SQL注入之字节注入

    字节注入 西欧字母符号,通过1个字节来表示。东亚字符通过至少两个字节来表示。GBK编码就是用两个字节来表示中文区字符的一个编码标准。...GBK编码依然采用双字节编码方案,其编码范围:8140-FEFE(高字节从81到FE,低字节从40到FE),剔除xx7F码位,共23940个码位。...条件 后台使用GBK编码的时候,存在着看不见的ascii码转换为GBK编码的转换过程,可以使用字节注入。 原理 编码转换存在着单字符被合并的情形 反斜杠对应url编码%5c,是单字节的。...在%5c前再加入一个单字节字符%dd(范围可以是81到FE之间),就成了%dd%5c 而当后端使用GBK编码的时候,会将合理的两个单字节ANSCII字符解析成一个双字节的GBK编码字符。

    62520

    字节注入原理学习

    0x01 开篇 本题用到考点是字节注入,遇到这种注入类型学习记录。...推荐两篇链接:浅析白盒审计中的字符编码及SQL注入 | 离别歌 Von的博客 | Von Blog 为方便自我下次忘记,总结一: 1.字节涉及到编码问题,便于理解需要看一看 2.字节注入现在已经很少见...url编码: 空格 –%20 ‘ –%27 # –%23 \ –%5c 0x02 原理 我们注入时都会简单输入一个 ‘ 或者 ” ,进行测试,如果数据库过滤不严格就会产生报错,字节注入会在...GBK编码认为一个汉字占两个字节,%5c 是 / 的url编码,加上 %df ,前面两个字符就会拼接为 %df%5c被识别为一个汉字。这样,/ 自动消失,转义作用在此失效。

    27420

    ​ 【SQL注入必学基础】--字节注入

    GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的字节,实际上只有两字节,但是这比起ASCII编码方式只用一个字节来说,是多了一倍啦!...字节带来的安全问题主要是是ASCII字符(一字节)的现象,即将两个ASCII字符误认为是一个字节字符。 4 addslashes函数: ?...由于ASCII编码使用一个字节,GBK编码使用两个字节。PHP语言编码为GBK,MYSQL编码也使用GBK编码。那么GBK这样占用字节较多的就叫字节编码。...由于字节注入是利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字(前一个ASCII码要大于128,才到汉字的范围,所以使用的字符不一定只有 %df’),示例如下图:...使用单引号闭合,试一!这里可以看到我们的单引号是被添加了“\”,查询字符串被变成了 “ 1\’ ”,也就是单引号失效了。这样情况是不能成功注入的 ? ?

    1K10

    windows编程 为什么要用字节

    为什么用字节 Windows中所有的底层函数都是Unicode编码 C++语言中“_T”是什么意思? 一. 多字节字符 二....C语言中的字符的使用 今天这个问题困扰了我好久,其实对于一个初学者来说,不必专研的太深,大致理解如下就可以了: 窄字符就是用一个字节表示一个字符,字符就是用≥2个字节表示一个字符。...比如(以Windows小端存储为例) char c=’A’;//内存中对应字节41 wchar_t wc=L’A’;//内存中对应字节41 00 char cs[]=”AB”;//内存中对应字节41...A的意思为ASCII 在Windows.h中有一个UNICODE宏 底层调用字节版本 窄字节版本仅作编码转换 下面是2个字符串转换的函数: C++语言中“_T”是什么意思?...字符串转换 MFC的常用字符串数据类型表示的含义: L:Long 长  P:Point 指针  C:Const 常量  W:Wchar_t 字符  T:TCHAR   STR:String 字符串

    96130

    字节注入与二次注入

    在进行php 连接mysql 时,当设置”ser character_set_client=gbk” 时会导致一个编码转换的注入问题,也就是熟悉的字节注入 当存在字节注入时,%df%27 可把程序中过滤的...id=1存在字节注入时,则: /1.php?id=-1'and 1=1%23 单引号会被转义成 \' 但是提交:/1.php?...’, character_set_results=’gbk’, character_set_client=’gbk’ [节选自尹毅的代码审计《企业级web代码安全架构》] 在线上靶子上试一...sql>mysql处理请求==>mysql中的sql 默认编码character_set_client>根据character_set_connection转码>更新数据库时转化成字段 所对应的编码 字节注入修复...数据存进数据库后,数据又被还原,在这种情况,如果发现一个新的注入同 时引用了被插入的数据库数据,就可以实现闭合新发现的注入漏洞引发二次注入 https://www.xss.tv/payload/sql

    58020

    什么是字节注入_百分号两个字节

    字节注入 原理:字节(两字节)带来的安全问题主要是吃ASCII字符(一字节)的现象,使用一些特殊字符来”吃掉“经过转义符 “ \ ” 。...在重新详细了解字节注入之前,我认为字节注入只是出现在网站使用GBK编码的时代,现在已经很少出现了,但是实际上字节不只是出现在GBK编码中。...在PHP中,通过iconv()进行编码转换时,也可能出现字节注入。...字节编码有哪些: GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的字节 MySQL中用于转义的函数有: addslashes、mysql_real_escape_string...还得调用mysql_set_charset来设置一字符集。 3.谨慎使用iconv来转换字符串编码,很容易出现问题。

    43620
    领券