如何在 PostgreSQL 的 tsquery 中进行 SQL 注入?

信息安全 Web应用程序 攻击 数据库 sql注入
2021-08-26 13:58:23

我认为我正在测试的应用程序中存在 SQL 注入漏洞。当我在搜索表单中输入格式错误的参数时,就会出现这种情况。所有异常都以格式显示:

PHP raised unknown error: pg_query() [http://php.net/function.pg-query]: Query failed: ERROR: syntax error in tsquery: "query" (more details about error - in log file)

所以看起来使用了PostreSQL的tsquery函数。在研究了一些情况后,例如:

The Fat & Rats:C

--> ERROR: syntax error in tsquery: "the & fat & & & rats:c"

我认为plainto_tsquery用于将查询转换为tsquery's 格式。

这个漏洞在多大程度上可以被利用?在不进行额外清理的情况下使用这些 PostgreSQL 函数是否安全?

1个回答

看起来这里听起来与您所看到的非常相似,这不是直接的 SQL 注入,而是对 tsquery 中使用的查询语言的注入。同样从可能出现在类似 [已关闭] 问题中的示例中,有一些奇怪的东西并没有让我觉得是标准 SQL 注入问题。

所以并不是说它不能以某种方式被利用,而是标准的 SQL 注入技术不太可能产生有用的结果。