gpt4 book ai didi

mysql - 黑盒 SQLi : MySql “error in your SQL syntax” when larger “UNSIGNED BIGINT”

转载 作者:行者123 更新时间:2023-11-29 02:41:35 24 4
gpt4 key购买 nike

我正在尝试对一个网站进行黑盒测试,URL 的形式为 http://example.com/a/[integer_value]/something_else

尝试将 [integer_value] 更改为引号(双引号和单引号)时,字符。它没有任何影响。但是,当 [integer_value] 大于 UNSIGNED BIGTINT 时,将抛出 SQL 错误。也就是说:

  1. if 0 <= [integer_value] <= ( UNSIGNED BIGTINT, is 2^64-1) => 没有错误

  2. if [integer_value] > UNSIGNED BIGTINT => 错误:例如“您的 SQL 语法有误;请查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的‘18446744073709551616’附近使用的正确语法”

有什么想法吗?

这是可利用的吗?

最佳答案

这可能无法直接利用,如果

  1. 这确实是传入请求会导致您的 MySQL 服务器抛出错误的唯一情况,
  2. 该网站仅执行无副作用的 SELECT 操作来响应这些 URL。

但是,那些都是很大的如果。当您进行黑盒测试时,原则上您无法知道它们是否正确。

此外,当您的系统抛出错误时,它会显示有关网站工作方式的信息。这在脏线(也称为公共(public)互联网)上是不明智的。

在将这些值传递给 MySQL 服务器之前,最好对这些值进行一些完整性检查。例如,您可以尝试将传入的字符串转换为 64 位数字。如果转换失败,您可以就此停止。或者,您可以检查号码中的位数并拒绝长度超过您的应用程序要求的号码。

您的网站应该使用简单的 404 not found 来响应此类 URL,就像它响应它无法处理的任何其他请求的 URL 一样。

你不是偏执狂。积极进取且非常聪明的犯罪分子正在努力破解您的网站。

关于mysql - 黑盒 SQLi : MySql “error in your SQL syntax” when larger “UNSIGNED BIGINT” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50773087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com