想问一下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 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
- ¥20 想用ollama做一个自己的AI数据库
- ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
- ¥15 请问怎么才能复现这样的图呀