关于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变乱码无法执行应该带有空格的查询语句 的相关文章

  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • Bootstrap 导航栏与 Google 位置重叠自动完成下拉菜单

    我有一个导航栏 我试图在其中添加一个地点搜索框 除了谷歌位置提示框的一小部分被导航栏重叠 如下图所示 之外 一切几乎都有效 我尝试过改变z index输入框的值改为10或2000或90000但似乎没有效果 我还缺少其他需要做的事情吗 这是
  • 为什么使用 iPhone 或 iOS 设备在“iframe”中查看“position:fixed”时不起作用?

    我研究过 stackoverflow 似乎position fixed在 iOS 移动设备的 iframe 中 https stackoverflow com questions 15874910 position fixed and if
  • chrome 中选择选项元素的额外填充

    我有一个选择元素 用户可以在其中选择分类和描述 仅在 Chrome 浏览器中 我有一个额外的填充 无法使用 padding 0 或其他 css 标签删除它 Chrome 的屏幕 https i stack imgur com m3iIb p
  • Gmail 无法在电子邮件上正确呈现字体

    我已经建立了一个 html 电子邮件并使用了 Google 字体 我已使用以下方法将字体包含在 head 标签中 if mso endif 并使用字体 即我这样做了
  • CSS3变换:悬停时翻译,带有过渡[重复]

    这个问题在这里已经有答案了 这应该很简单 我的 HTML 中有一堆锚点 如下所示 a href Link 1 a a href Link 2 a a href Link 3 a a href Link 4 a a href Link 5 a
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • GWT 主题/模板 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 GWT 开发一个应用程序 尽管 GWT 是基于 JAVA 的媒介 但外观和感觉只能通过 CS
  • 使 Material UI Grid 项目的子项拉伸以适合父容器的剩余高度

    1 现状 我有一个包含 4 个网格项的 Material UI 网格容器 每个 Grid 项中都有一个 Typography 组件 其中包含标题和包含一些内容的 Card 如下所示 2 期望的外观 我希望卡片填充网格项目的剩余高度并且不超过
  • 增加数字输入、CSS、HTML 上的向下和向上箭头的大小

    有没有办法利用CSS来增大数字输入框右侧的上下箭头的大小 只是向上和向下箭头 而不是整个输入框 或者至少是按比例的 看这个例子 size 36 font size 36px size 12 font size 12px
  • 根据变量值将 LESS 编译为多个 CSS 文件

    有一个指定颜色的变量variables less文件 例如 themeColor B30F55 和一个 json构成实体列表的文件 其中每个键是一个实体 ID 键的值是该实体的颜色 例如 8ab834f32 B30F55 3cc734f31
  • 为什么需要重置浏览器?

    好吧 我知道这可能不是最好的标题why我们需要重置浏览器 因为浏览器有不同的默认设置 我的问题太长 无法放入标题中 如果每个人 90 的时间都需要使用重置样式表 为什么浏览器需要设置默认样式 无论如何我们都会删除它们 对吗 因为某些规则默认
  • 如何为背景图像添加边距?

    我想向背景图像添加边距 以便将其与屏幕中间保持距离 但将其添加到该类中会为整个主体添加边距 body poppage background url Imagenes tip3 png 50 200px no repeat E2E4E9 我怎
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • 覆盖并重置 CSS 样式:auto 或 none 不起作用

    我想覆盖为所有表定义的以下 CSS 样式 table font size 12px width 100 min width 400px display inline table 我有一个特定的表 其类名为 other 最后的餐桌装饰应该是这
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • 为范围旋钮 ionic-range 添加边框颜色

    我正在使用离子范围添加范围滑块 并想向范围旋钮添加边框 由于它的 ionic4 和范围旋钮是 Shadow dom 的一部分 我无法使用范围旋钮的 border 属性直接更改边框 我已附上我想要实现的图像 范围旋钮周围有白色边框 现有属性只
  • 显示覆盖以覆盖整个页面

    我有一个正在加载的网络应用程序iframe 我需要显示一个覆盖 div 来覆盖整个页面 问题是叠加层当前仅显示在iframe区域而不覆盖整个页面 我们的应用程序 子应用程序 是加载的一组应用程序的一部分iframe 你可以做这样的事情 di
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4

随机推荐