<!--

下午整了半天Less-29~31,愣是没调好jsp环境,只好跳过。

难受.jpg

!--> 

Less-32:

  核心语句:

各种回显均存在。

第一句话指定了字符集为gbk。

chech_addslaches 函数是个很强的过滤:

  在第二行和第三行,

    它通过在前面加一个反斜杠将其转义的方式,屏蔽了单引号和双引号。经过测试,被转义后的单双引号出现在sql语句中不会引起任何报错。

  在第一行,

    它把所有单独出现的反斜杠变成了两个反斜杠,也相当于将其转义了。

    这是怎么做到的呢?
      preg_quote()将里面内容中的特殊字符前加一个反斜杠构成转义,以便这些字符能被原样抓走。

        在这里, '/'. preg_quote('\\') .'/'  等效于  '/\\\\/'  或  '/\\\\/'

        更广泛的,正则表达式特殊字符一般有: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

      小圆点连接是一种PHP常用写法,在PHP代码审计中也会经常出现。

      至于后面为什么需要六个反斜杠:

        首先,三个反斜杠起转义另外三个反斜杠的作用;正则抓到了三个反斜杠。

        再次,观察以下输出:

         

        二、四个反斜杠较好理解;

        三个反斜杠的时候,前两个反斜活了一个,由于不存在\a转义,第三个反斜也活下来了。

        如果那个字母是f、n、t这类的,就不太行了;但这种情况其实根本输不进来。

      (还是有点迷糊的;但先这么理解吧)

对于本题,我们采用宽字节注入。 

  字符集也叫字符编码,是一种将符号转换为十六进制数的转换关系。
    ASCII编码:单字节编码

    gbk编码:单字节和双字节编码,若第一字节在0x00-0x7F范围内,就为单字节,和 ASCII 保持一致。0x80不作为第一字节使用。双字节的第一字节范围是0x81-0xFE。

    utf-8编码:多节编码,若第一字节在0x00-0x7F范围内,就为单字节,和 ASCII 保持一致。其它字符用二至四个字节变长表示。

宽字节就是两个及以上的字节。

 由此,构造:(%27是单引号,%5c是反斜杠)

    (1)%aa%27

      经过过滤:%aa%5c%27

      aa大于7f,提示这是个双字节。

      解码结果:猏'

    (2)%aa%5c%27

      经过过滤:%aa%5c%5c%5c%27

      解码结果:猏\\'    ;两个反斜等于没有。

  于是,单引号被解放出来了。

  (解码:http://www.mytju.com/classcode/tools/urldecode_gb2312.asp;brup的decoder好像不顶用?)

本题一种payload:?id=-1%df%27 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

Less-32 宽字节的更多相关文章

  1. PHP函数 addslashes() 和 mysql_real_escape_string() 的区别 && SQL宽字节,绕过单引号注入攻击

    首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它. mysql_real_escape_string() 和 ...

  2. 【sqli-labs】 对于less34 less36的宽字节注入的一点深入

    1.AddSlashes() 首先来观察一下是如何通过构造吃掉转义字符的 先将less 34的网页编码换成gbk 加上一些输出 echo "Before addslashes(): &quo ...

  3. 使用Unicode(宽字节字符集);多字节字符集中定义宽字节变量

    2012-03-25 14:54 (分类:计算机程序) 2.2 宽字符和C 宽字符不一定是Unicode.Unicode是宽字符集的一种.然而,因为本书的焦点是Windows而不是C执行的理论,所以书 ...

  4. sqli-libs(32-37(宽字节注入)关)

    补充知识:宽字节注入 定义:GB2312.GBK.GB18030.BIG5.Shift_JIS等这些都是常说的宽字节,实际上只有两字节.宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象,即将 ...

  5. SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}

    首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...

  6. 74cms_3.5.1 宽字节注入

    第一次进行CMS的代码审计,我选择了2014年发布的74CMS 3.5.1,历史比较久远的CMS往往存在更多的问题,虽然技术上难度不大,但是在思路方面给了我很大的启发.下面我根据我的思路给大家分享一下 ...

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

    所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码. 而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE. **************************** ...

  8. windows下多字节和宽字节转换

    先简单说下什么是多字节和宽字节. 多字节是指使用多个字节(1-3)表示一个字符.比如gbk使用英文占一个字节,中文占2个,这个就是多字节了.utf-8是使用1-3个字节表示字符.还有big5等等. 宽 ...

  9. SQL注入--宽字节注入

    PHP测试代码: <?php // 面向对象写法 $id=addslashes($_GET[‘id’]); //获取id并转义预定义字符 // /$id=$_GET[‘id’]; $mysqli ...

  10. MYSQL注入天书之宽字节注入

    Background-7 宽字节注入 Less-32,33,34,35,36,37六关全部是针对'和\的过滤,所以我们放在一起来进行讨论. 对宽字节注入的同学应该对这几关的bypass方式应该比较了解 ...

随机推荐

  1. MyBatis的多表查询笔记

    MyBatis的多表查询 随着学习的进步,需求的提高,我们在实际开发中用的最多的还是多表查询,就让我们一起学习MyBatis中的多表查询. 数据库准备 Class表 Student表 项目结构 这次使 ...

  2. Apache网页优化

    目录: 一.Apache网页优化概述 二.网页压缩 三.网页缓存 四.隐藏版本信息 五.Apache防盗链 一.Apache网页优化概述 在企业中,部署Apache后只采用默认的配置参数,会引发网站很 ...

  3. 部署yum仓库以及NFS共享服务

    目录: 一.YUM概述 二.准备安装源 三.访问YUM仓库 四.本地YUM仓库 五.YUM工具概述 六.软件包查询.安装.卸载 七.NFS共享 一.YUM概述 YUM(Yellow dog Updat ...

  4. Wpf读写Xaml文件

    前言 本文主要介绍Wpf读写Xaml文件. 读写实现 首先我们使用XamlWriter将Wpf的对象转换为Xaml字符串,代码如下: var btn = sender as Button; strin ...

  5. 【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析

    不提XXLJOB或者其他的调度框架,就看我接触的第一个任务调度框架Quartz(温故而知新) Quartz的动态暂停 恢复 修改和删除任务 实现动态添加定时任务,先来看一下我们初步要实现的目标效果图, ...

  6. PHP中的文件对比扩展

    文件对比这个扩展现在用得比较少,因为大部分情况下我们都在使用一些代码管理工具,比如 Git 或者 Svn 之类的,其实它的作用就非常类似这类工具,另外还有一个非常常用的 Beyond Compare ...

  7. PHP执行数据库定时备份 和手动还原

    一 备份数据库 我的这个是在TP5上,其实不在TP5也可以 逻辑: 1 首先在自己电脑的cmd命令上测试备份数据库,成功才能往下进行所以得到 C:/luanxiede/mysql-5.7/bin/my ...

  8. python学习笔记(七)-函数

    函数 方法 功能说白了,函数就是把一堆代码组合到一起,变成一个整体.函数不调用不会被执行.作用在于提高代码的复用性.定义函数 def greet_user(): """关 ...

  9. 利用Qt中的ui文件生成PyQt5程序,自定义槽函数

    1.在Qt Creator4.8.0上面设计如上.ui文件 2.点击上方图标,可以建立信号-槽连接,button_click()为自定义槽函数 3.设计目的:点击clear按钮,可消除上方文本框中的内 ...

  10. web自动化:IE11运行Python+selenium程序

    from selenium import webdriver # 运行此脚本前必须按要求修改注册表'''[HKEY_CURRENT_USER\Software\Microsoft\Internet E ...