玄客) 2024-09-03 22:06 采纳率: 0%
浏览 5

sql-lab靶场 sql注入

想问一下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)#
就能成功?
为什么数字可以而字符串不行啊

  • 写回答

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会被添加到结果上,从而产生正确的输出。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月3日

悬赏问题

  • ¥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驱动,如何解决?