blackbox sqli:mysql“sql语法错误”大于“unsigned bigint”

2ul0zpep  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(356)

我试图黑盒pentest一个网站,网址有形式http://example.com/a/[整数值]/其他东西
尝试将[integer\u value]更改为引号(双引号和单引号)时,请输入个字符。它没有任何影响。但是,当[integer\u value]大于unsigned bigtint时,会抛出一个sql错误。也就是说:
如果0<=[整数值]<=(无符号bigtint,即2^64-1)=>无错误
if[integer\u value]>unsigned bigtint=>error:例如,“您的sql语法有错误;请查看与您的mysql服务器版本对应的手册,以获取在第1行的'18446744073709551616'附近使用的正确语法。”
有什么想法吗?
这是可利用的吗?

8iwquhpp

8iwquhpp1#

这可能是不可直接利用的,如果
这确实是唯一一个传入请求会导致mysql服务器抛出错误的场景,并且
该网站仅对这些URL执行无副作用的选择操作。
但是,这些都是重大的假设。当你做黑盒测试时,原则上你不能知道它们是否正确。
另外,当您的系统抛出错误时,它会显示有关网站工作方式的信息。这在肮脏的网络上是不明智的,也被称为公共互联网。
在将这些值交给mysql服务器之前,最好对它们进行一些健全性检查。例如,您可以尝试将传入的字符串转换为64位数字。如果转换失败,您可以停止。或者,您可以检查数字中的位数,并拒绝长度超过应用程序要求的数字。
你的网站应该用一个简单的 404 not found ,就像它无法处理任何其他请求的url一样。
你不是偏执狂。积极性高,非常聪明的罪犯正在努力工作,以pwn你的网站。

相关问题