关于phpStudy的Less-26空格被过滤使用%a0变乱码无法执行应该带有空格的查询语句

2023-10-27

我的实验环境是:
C:\phpStudy\PHPTutorial\WWW\sqli-labs-master\Less-26
练习sql inject 注入练习第26关,Less-26

在这里插入图片描述

输入的空格被过滤了
在这里插入图片描述
提示中明显指出select1之间的空格被过滤了,

包括使用 %a0 也不行

http://127.0.0.1/sqli-labs-master/Less-26/?id=0' || (select%a01) || '

老师使用 %a0 成功了,但是我使用 %a0 报错

Invalid utf8 character string: 'select\xA01'

在这里插入图片描述而且,回显的结果中,输入的语句里空格的位置为乱码,

在这里插入图片描述

按照常用的空格替代办法,尝试均未果
在这里插入图片描述

在HTML语言中,类似空格#+等都是以%十六进制值表示的,
例如:
在这里插入图片描述空格的 十进制是32,十六进制是20
# 的 十进制是35,十六进制是23
+ 的 十进制是43,十六进制是2b

所以,在HTML语音中,
空格表示为:%20
#表示为:%23
+ 表示为:%2b

老师讲过,在MySQL的查询语句中 +也可以当空格使用,所以尝试使用+查询,结果成功了,

在这里插入图片描述
这里需要注意一点,我们使用的是具备空格功能的+,而不是真正的空格,所以,需要使用小括号将带有+的select语句包裹起来,让整个查询语句成为一个整体才行
使+起到空格的作用,否则select+被认为是错误的sql语句,
在这里插入图片描述在这里插入图片描述

下图是使用括号包裹后的查询语句,是可以正常执行的,
在这里插入图片描述

这就是在使用常规空格替代方案失败时的解决办法,
直接用空格的各种显示模式不成功的话,就找找,能达到空格作用的其他字符,用HTML的语言(%16进制)来表示这些具有空格功能的字符用于MySQL的查询语句中,就能解决问题,

而,老师的实验环境使用 %a0 成功了,经过我对%a0 的十六进制值a0查询,发现它属于扩展ASCII码,如下图,

在这里插入图片描述而,对于扩展ASCII码中的字符,如果不兼容它的字符集就会出现乱码情况,
在这里插入图片描述

所以,本文能解决问题,具备了3个条件,
1、使用了具有空格作用的+来成功执行sql查询语句,
2、用小括号包裹的select查询语句作为一个整体时,+代替空格行使空格的作用可以正常执行,
3、+在标准ASCII码中,而标准ASCII码是所有字符集都兼容的,所以不会出现乱码,可以被正确识别和执行,
February the 23th 2022 Wednesday

补充,
当然具体的情况具体分析,
Less-27中,使用%a0Less-26中的 %2b都不行,但是使用 %09 就可以成功代替 空格
在这里插入图片描述
这个表还是很有用的,每个不同的环境不是千篇一律的,遇到不同的情况,每个都试试,也许就能解决问题,

在这里插入图片描述
补充,今天在阅读 csdn 大神 lc11535的关于编码的文章时,得到理论依据,给大家分享一下,

————————————————
版权声明:本文为CSDN博主「lc11535」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lc11535/article/details/100013653

转载如下:
网页在提交表单的时候,如果有空格,则会被转化为+字符。服务器处理数据的时候,会把+号处 理成空格。
所以这个就是,在%a0变乱码的情况下,使用%2b(+号)就能成功执行sql查询语句的理论依据,

2022 02 28 补充实验(失败的实验,虽然失败,但是可以让大家少走弯路。)
那是因为5.7的数据库里的database这个已经被官方弃用,所以改不过来,于是想试试将数据库挨个放雪,都改成utf8试试
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除数据库之前,最好先把数据库名字记好,复制到记事本中,方便下面创建数据库时不会输入错误的数据库名字,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述操作了,一顿猛如虎,现在不报乱码错误了,但是,%a0 却不被识别了。看来改数据库时不行的,只剩下升级到
8.0的路子了。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于phpStudy的Less-26空格被过滤使用%a0变乱码无法执行应该带有空格的查询语句 的相关文章

  • Twitter Bootstrap 上的插入符号是如何构建的?

    这更多的是一个好奇问题 而不是我真正需要知道的事情 在本页面 http twitter github com bootstrap components html buttonDropdowns http twitter github com
  • 图像下方不需要的边距

    我有一个图像和一个 div 我想将其放置在其下方 这是小提琴 http jsfiddle net d3Mne 1 http jsfiddle net d3Mne 1 问题是两者之间存在差距 此下边距仅出现在图像中 有什么办法可以去除吗 Se
  • 在响应模式下使用 CSS 更改元素顺序

    图1为桌面模式 下面两张图片和文字 总共三个div 图 2 是我希望它在移动浏览器 例如手机 中的显示方式 关于如何实现这一点有什么想法吗 我愿意接受任何建议 这个想法是让文本显示在图像上方 以最好地说明这两个图像的描述 在桌面版本中将文本
  • CSS3 转换会立即发生吗?

    我有一个名为 artwork需要动画化 artwork webkit transition all 20s ease in transition all 20s ease in width 75 display block margin 0
  • 使用 PHP 将 class="active" 添加到活动页面

    动态标头 CSS 类更改为活动使用 PHP 目录 我想要的班级 li 在活动目录下更改标签 现在 每个指南都向我展示了当您的页面等于它时如何执行此操作 但我想更改 这 li li 取决于我所在的目录 例如 如果说我在 http exampl
  • 交替 div 使图像向左(偶数)或向右(奇数)

    我正在尝试更好地排列图像 而不仅仅是一列中的图像 请参阅附件中的示例 每篇文章的图像可以位于左侧和右侧 这是我的代码 HTML section class content list page section
  • 如何设置引导开关的 css 颜色?

    如何在此引导开关中将蓝色更改为另一种颜色 我尝试更改输入元素的颜色和背景颜色 但它没有更改开关颜色 这是 html 和 bootstraplink https getbootstrap com docs 4 2 components for
  • CSS:多属性选择器

    我想设置 电子邮件 和 密码 类型的表单输入样式 但不设置其他任何样式 我正在想象类似以下的事情 input type email type password 然而 属性选择器的工作方式似乎将其解释为 输入 其中类型同时是 电子邮件 and
  • Firefox 忽略背景大小的 css

    尝试使用背景大小 CSS 规则缩小图像 但 Firefox 3 5 似乎会忽略该规则 CSS privatejoker background aqua url styles images home privatejoker png no r
  • 输入和文本字段中的背景颜色

    我想更改表单文本和输入字段中的颜色背景 但是当我这样做时 它也会影响提交按钮 是否可以通过其他不影响按钮的方式来完成 我用过这段代码 input textarea background color d1d1d1 input type tex
  • CSS 中 calc() 的结果是什么

    我们现在已经开始使用calc 在CSS中 用于设置计算结果的宽度 例如 div div div div parent width 100px calcWidth width calc 100 3px height 100px backgro
  • 使组合高度等于浏览器窗口的高度

    http featuredfotografer com http featuredfotografer com Codemirror div 与 header div 结合占用的高度超过了浏览器的高度 我怎样才能使它们的总高度达到浏览器窗口
  • 仅水平 CSS 视差效果,层数大于 100vw

    如何用水平引导网站仅 CSS 视差效果 要求 仅 CSS 视差 父层必须具有宽度 高度 100vw 100vh 子层的宽度 高度必须 gt 100vw 100vh child layers must visually align 100 w
  • 使用溢出时无法隐藏滚动条:auto

    我有这个CSS div background color red position relative height 414px overflow auto width 902px margin 0px auto 我尝试过overflow y
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • 在 IE 8 及以下版本中动态添加 @font-face 规则

    我使用 IE stylesheet addRule 方法添加 font face 规则 但是 符号对于该方法的 选择器 参数来说是不允许的字符 因此我收到 无效参数 错误 s addrule font face font family Fo
  • CSS 的波浪形状

    我正在尝试使用 CSS 重新创建此图像 我不需要重复它 这就是我开始的 但它只有一条直线 wave position absolute height 70px width 600px background e0efe3 div div 我认
  • 删除数据表列中的额外填充

    你好 我创建了 JQuery DataTables 如下所示 所以我的问题是如何删除 图片 列中过多的填充 这就是我初始化表的方式 violators tbl DataTable aoColumnDefs bSortable false a
  • 如何更改bootstrap中form-control弹出窗口中必填字段的默认消息?

  • CSS 是否有不等于选择器?

    CSS中有类似 不等于 的东西吗 例如 我有以下代码 input 但对于某些输入 我需要将其作废 我想通过将类 reset 添加到输入标签来做到这一点 例如

随机推荐